숏츠 만드는 일을 자동화하려다 입모양에 일주일을 썼습니다 — 원인은 영상이 아니었습니다

📌 3줄 요약

  • 파리스샹송레디오 영상 1편에 2.5~3.5시간이 들어서, 그 시간을 줄이려고 숏츠 자동화 도구를 직접 만드는 중입니다.
  • 입모양이 안 맞아 일주일째 설정만 바꿔 봤는데, 원인은 영상이 아니라 “영상이 노래 어디서부터인지 앱이 몰랐던 것”이었습니다.
  • 고친 뒤에도 렌더해 보니 여전히 0.5초 빨랐어요. 안내 기능 자체가 숨어 있었던 겁니다. 다시 고치고 오차 0ms까지 맞췄습니다.

파리스샹송레디오는 원래 평일 매일 올렸어요. 그런데 영상 한 편 만드는 데 2.5~3.5시간이 들어서 10월부터 주 2회로 줄였습니다. 그 시간을 조금이라도 줄여 보려고, 음원을 넣으면 숏츠용 50초 내외 영상을 뽑아 주는 도구를 Claude와 바이브 코딩으로 만들고 있어요. 이름은 샹송무비메이커입니다.

만드는 건 아직 안 끝났습니다. 그런데 한 가지 문제에서만 일주일을 썼어요. 입모양과 노래가 안 맞는 문제였습니다.

왜 입모양이 자꾸 어긋났나

립싱크 영상은 젠스파크로 만듭니다. 여기서 받은 영상은 50.1초짜리였는데, Claude와 같이 영상 속 소리를 노래와 맞대 보니 노래 전체(3분 40초)가 아니라 1분 5.5초부터 시작하는 한 구간이었어요. 앱의 “노래 구간과 같이 맞추기” 기능은 이 영상이 노래 0초부터 담겨 있다고 가정하고 있었습니다. 젠스파크는 길이 제한 때문에 전체가 아니라 구간만 만드는데, 앱은 그걸 몰랐던 거예요.

그래서 영상이 노래 어디서 시작하는지를 저 혼자 손으로 맞혀야 했습니다. 10월 1일 하루에만 시작점을 6번 바꿔 봤어요 — 0초, 0초, 0초, 14.8초, 65초, 65.49초. 마지막 65.49초가 사실은 맞았습니다. 오차 0.01초였거든요. 그런데 그게 맞는지 확인할 방법이 없었어요.

날짜 한 일 결과
10/1 시작점 손으로 6번 시도 65.49초가 맞았는데 확신 못 함(오차 0.01초)
10/2 낮 영상 속 소리를 노래와 맞대 위치 자동 탐지하게 고침 “1:05.5~1:55.6 구간이에요” 자동 표시
10/2 17:09 시작점 65초, 동기화 꺼짐 상태로 렌더 입 0.5초 빠름
10/2 17:16 시작점 65.5초로 재렌더 맞음 (5~35초 0ms)

고쳤다고 했는데, 렌더해 보니 여전히 빨랐습니다

위치를 자동으로 찾게 고친 그날(10/2) 오후, 다시 렌더해 보니 입술이 조금 더 빠른 것 같았어요. Claude에게 렌더된 영상을 재 보게 했더니 정말로 0.5초 빨랐습니다. 동기화가 꺼져 있으면 영상은 65.5초(= 진짜 시작점)부터 나오는데, 소리는 65초부터 나왔거든요.

⚠️ 고친 기능이 안 보였던 이유Claude가 만든 안내·버튼은 동기화가 켜져 있을 때만 보이게 돼 있었어요. 그런데 저는 일주일 동안 숫자를 맞춰 보면서 대부분 프로젝트에서 동기화를 꺼 둔 상태였습니다. 그래서 경고도 버튼도 아예 안 보였던 거예요. 기능을 만든 쪽(Claude)과 실제로 쓰는 쪽(저)이 서로 다른 설정에서 움직인 셈이에요.

동기화가 꺼져 있어도 안내가 보이게 고치고, “지금 시작점이면 입이 0.5초 빨라요”처럼 몇 초 어느 쪽으로 어긋나는지 알려 주게 바꿨습니다. 65.5초로 다시 렌더하니 5~35초는 0ms, 45초는 34ms(1프레임 안)였어요. 제 귀가 측정보다 먼저 어긋남을 알아챈 셈이죠.

가사 자막도 같은 날 꼬여 있었습니다

원인을 찾는 김에 자막도 들여다봤어요. Whisper는 가사를 꽤 정확히 알아들었는데(“Paris, ma chanson de minuit” 정확히 인식), 앱이 그 덩어리를 순서대로 한 줄씩 이어 붙이는 방식이라 문제가 생겼습니다. 한 줄이 둘로 쪼개지거나 메아리 소리가 한 덩어리로 잡히면, 그 뒤 줄들이 통째로 밀려 나왔어요. 가사 글자와 Whisper가 들은 단어를 비교해서 맞추게 고쳤습니다.

최종 영상 — “너무 잘된 것 같다”

17:16 영상을 다시 보고 제가 직접 “괜찮아 보여”라고 확인했어요. 입모양 문제는 여기서 해결됐다고 봅니다. 같은 날 저녁, 젠스파크에서 소리가 들어간 버전을 받아 다시 올렸더니 앱이 위치를 자동으로 찾았고, 경고 없이 렌더됐어요. 이 영상을 보고는 “너무 잘된 것 같다“고 했어요.

샹송무비메이커로 렌더한 최종 영상 첫 장면
샹송무비메이커로 렌더한 최종 영상의 첫 장면 — 위 곡명은 3초 무렵 서서히 사라지고, 아래에 프랑스어 원문과 한국어 번역 자막이 노래를 따라 나와요 (인물은 젠스파크로 만든 AI 영상)

이때 곡명이 3초에 갑자기 사라지는 게 어색하다는 점도 같이 발견했어요. 쓰던 템플릿에 페이드가 없어서 한 프레임 만에 바뀌었던 거예요. 곡명은 2.0초 또렷하다가 2.6초부터 옅어지고 3.1초에 사라지게, 자막도 0.2초 부드럽게 바뀌게 고쳤습니다. 입모양 오차는 3초 0ms · 12~22초 12ms · 32~40초 45ms · 46초 112ms 정도로 줄었어요.

원인은 영상을 잘못 만든 게 아니라, 영상이 노래의 어디서부터인지 앱이 몰랐던 것이었습니다.

솔직한 한계

입모양 문제는 풀렸지만 샹송무비메이커 자체는 아직 완성되지 않았습니다. 마지막 5초쯤 입이 0.1초 늦는 현상은 남아 있어요 — 젠스파크 영상 자체가 10초마다 조금씩 밀리는 탓인데(40초 이후 79ms), 이건 제 앱의 위치 계산으로는 못 고칩니다. 7번 줄 자막이 1초쯤 늦게 뜨는 것도 손으로 고쳐야 하고요. 그리고 이 도구로 만든 영상을 아직 채널에 올리지는 않았어요. 시험 렌더까지만 해 본 단계입니다.

다음에 할 일

  • 젠스파크 영상 자체의 10초 단위 밀림을 다른 방식으로 보정할 수 있는지 알아보기
  • 7번 줄 자막처럼 손으로 고쳐야 하는 부분 줄이기
  • 이 도구로 실제 영상 몇 편을 뽑아서 파리스샹송레디오에 올려 보기

댓글 남기기