
자사 서비스인 여행에이전트를 만들며 유저가 방문할 장소들을 간접체험하기 위한 간단한 영상제작 기능을 내가 맡아서 구현하기로 하였다..(MVP 맞나..?ㅎ)
생성형 AI가 난리인 요즘같은 시대에 회사돈이 있어야 이런것도 해보지!라는 긍적적인 마음으로 시작하게 되었다. 리서치를 통해 가장 최근 2025년 7월부터 구글에서 런칭한 따끈따끈한 Gemini (veo3)를 써보기로했다. 방법은 그렇게 어렵지 않았다. 이런 재미나이~ 재밌나~ (ㅈㅅ)
까다로웠던 점:
1. 현재 초기단계라 그런지 영상은 반드시 8초만 가능 더 짧게나 더 길게 불가능.
2. prompt에서 장소가 4개이상시 될때도 있고 안될때도 있음. 게다가 에러가 항상 "prompt text의 위험도때문에 영상생성 불가능"라고만 반환해줘서 prompt를 올바르게 여러번 테스트해봐야함. (아래 이미지 참조)

꿀팁:
1.영상 하나 제작시 초당 $0.4기 때문에 8초짜리는 디폴트 $3.2가 붙기때문에 신중하게 테스트 해야함.
2. prompt text에 영상이 4개 이상이 들어가 있을 경우 영상생성이 안되는 경우다 다수.
veo3을 활용한 영상재작은 반드시 8초만 가능하고 장소도 4개 이상이 어려우므로 반드시 여러개를 붙이는 형식으로 해야함.
ffmpeg는 영상을 하나로 붙여주는 라이브러리이다.
최초에 veo3으로 영상을 생성하면 HTTP URL로 Google Cloud 내부 임시 저장소에 저장이 됨. 단, ffmpeg를 활용시, 반드시 로컬에서 생성된 영상들(자사 서비스 기획 최대 32초이므로 4개)다운로드 받아서 로컬에서 붙여줘야 함.
즉, 도커로 떠있는 컨테이너에서 영상을 다운받은 후 ffmpeg로 붙여서 버킷에 올린 뒤 지우는 형식으로 진행해야 함. 이렇게 될 경우, 한번의 처리시 영상 새당 대략 15MB, 최대 4개이므로 60MB, 10개의 요청을 동시에 하면 600MB, 100번의 요청이면 6000MB이므로, 서버를 한개 더 띄워서 관리를 하던지 해야하는 이슈가 발생.
**참고로 생성된 임시영상을 stream으로 메모리에 띄운뒤 붙이는것도 시도 해봤지만 이 방법은 ffmpeg 라이브러리로는 구현이 불가능 했다..
첫번째 방법은 로컬에서 영상을 다운로드 받아서 진행해야 하므로 너무 리스크가 크다는 생각에 혹시 veo3를 만들면서 구글이 영상을 길게 만들고 싶은 사람들을 위한 장치를 만들어 놓지 않았을까 하는 생각이 들었다. 역시나.. 위해단 구글.. 방법이 존재했다 ㅎㅎㅎㅎ 바로 Transcoder를 활용하는 것이다.
필수 인프라(infra) 준비사항:
1. 버킷생성 (Key생성을 통한 엑세스 권한 제어 필요)
2. transcoder를 활용하기 위한 해당 프로젝트에 관련 설정.
이렇게, 두번째 방법을 사용하니 로컬에 영상을 저장해서 붙이고 다시 지워야 하는 번거로움이 완전히 사라짐! GCP 클라우드에서 완전처리 가능!
