-
Seedance 2.0 fast 영상의 음성이 1.3초 빨리 나왔다 — 재생성 0원, ffmpeg adelay로 5초만에 해결IT 2026. 5. 24. 23:00
🔧 이 글은 BytePlus Seedance 2.0 fast로 만든 영상을 ffmpeg로 후처리하는 사용자를 위한 글입니다. "재생성 vs 후처리" 비용 비교는 API paid 호출을 직접 다루는 환경에서 가장 명확하게 의미가 있습니다. ModelArk 콘솔로 한 편씩 만드는 분이라면 재생성 비용이 다르게 다가오지만, adelay 후처리 자체는 어떤 환경에서 만든 mp4에도 동일하게 적용 가능합니다.
"시작!"을 외치는데 손동작이 늦다
탐정 컨셉으로 노는 아이가 "시작!"을 외치며 한 손을 sharp하게 뻗는 클립을 Seedance로 만들었습니다. 결과를 받아 들어 보니 묘하게 어긋나 있었습니다.
음성 "시작!"이 먼저 나오고, 1.3초쯤 뒤에야 손이 뻗습니다. 마치 누군가 외친 다음 한 박자 늦게 동작하는 어색한 영상이 되어 버렸죠. 모델이 prompt의 "외침"과 "손 동작"을 시간 비트로 잘 정렬하지 못한 결과입니다.
해결책으로 처음 떠오르는 건 "다시 생성"입니다. prompt에 시간 비트를 더 명확하게 적고, paid 호출을 한 번 더 돌립니다. 단점은 명확합니다.
- 비용: 결코 싸지 않습니다. AI 비디오 생성은 텍스트 LLM과 다른 자릿수의 토큰을 소모합니다. 10초 클립 한 개의 한 번 생성이 20만~50만 토큰대. 한 편의 짧은 영상(약 1분 50초, 10~15개 클립으로 구성)을 처음부터 한 번씩 만들면 200만~750만 토큰이 소비됐습니다. "몇 센트" 수준이 아니라, 자주 재생성하면 한 영상에 수십~수백 달러로 빠르게 누적되는 비용입니다.
- 시간: submit → polling 90~110초 → 결과 → 다시 들어보고 확인 → 또 어긋났으면 또 시도.
- 결과 불확실: 모델이 두 번째 생성에서 sync를 잘 맞춰줄 보장은 없음. AI 모델 reference 충실도가 비결정적이라는 사실은 잘 알려져 있죠.
이 사이클을 두세 번 반복하면 한 클립에서만 40만~150만 토큰이 사라지고, 한 시간이 깨집니다. 다른 길이 있어야 했습니다.
다른 길 — audio와 video는 분리 가능하다
mp4 같은 container의 좋은 성질 중 하나는 video stream과 audio stream이 독립적으로 들어 있다는 점입니다. 두 stream을 같이 다루는 player가 그 둘을 한 영상으로 보여주지만, 파일 레벨에선 분리해서 따로 처리할 수 있습니다.
이 사실이 비대칭적인 자유를 줍니다. 영상 stream은 매우 비싼 자산입니다 — AI 모델이 paid 호출로 만들어 줬고, 10초짜리 클립 한 개에 20만~50만 토큰이 들어간 결과물이니까요. audio stream은 비교적 싸게 다시 만들 수 있는 자산입니다 — silence padding, EQ, delay 같은 처리는 로컬 ffmpeg로 토큰 0개, 비용 0원에 가능하니까요.
그렇다면 sync가 어긋난 클립에 대해서는 영상은 그대로 보존하고, audio만 1.3초 지연시키면 됩니다.
다이어그램의 핵심은 두 박스의 비교입니다. 영상 재생성은 비싼 자산을 통째로 다시 만드는 일이고, adelay 후처리는 싼 자산만 살짝 조정하는 일입니다. 같은 문제(sync 어긋남)에 한쪽은 클립당 20만~50만 토큰 + 100초가, 다른 한쪽은 0 토큰 + 5초가 듭니다. 비용 차이는 단순히 "100배"가 아니라 사실상 유한한 자원과 0의 차이입니다 — 영상 한 편을 만드는 동안 한 사람의 재생성 budget이 정해져 있는 환경에서는 이 차이가 production을 굴릴 수 있는지 없는지를 가르는 수준입니다.
코드로 보면 — 한 줄짜리 ffmpeg 명령
ffmpeg의
adelay필터는 audio 트랙에 N 밀리초의 지연을 추가합니다. 채널이 stereo면1300|1300처럼 각 채널별로 지정하고, mono면1300하나만 적어도 됩니다.def shift_audio_later(mp4_path: Path, delay_ms: int) -> None: """video는 copy로 보존, audio만 delay_ms만큼 지연.""" tmp = mp4_path.with_suffix(".shift.mp4") subprocess.run([ "ffmpeg", "-y", "-i", str(mp4_path), "-filter_complex", f"[0:a]adelay={delay_ms}|{delay_ms}[a]", "-map", "0:v", "-c:v", "copy", # video는 손대지 않음 "-map", "[a]", "-c:a", "aac", "-b:a", "192k", str(tmp), ], check=True) tmp.replace(mp4_path)처리 후 silencedetect를 돌려 보면 어떻게 동작했는지 명확히 보입니다.
항목 adelay 적용 전 적용 후 원본 voice의 leading silence 0.7s 0.7s + 1.3s = 2.0s 영상 안의 첫 audio 무음 구간 0~0.7s 0~2.01s 손동작 발생 시점 1.3s 1.3s (변경 없음) 음성 "수사 개시!" 시작 시점 0.7s 2.0s 손동작과 음성의 sync가 사실상 맞아 떨어지는 거죠. 영상 재생성도, paid 호출도, 90초 polling도 없이 5초만에 해결됐습니다.
adelay만이 아니다 — audio toolkit으로 확장
같은 원리가 다른 audio 후처리에도 적용됩니다.
atrim+apad: audio를 video 길이에 정확히 맞춰서 silence padding/trim.adelay: audio 전체를 N ms 지연.volume=0.8: audio 볼륨 조정.afade=t=out:st=4:d=1: audio fade-out (4초부터 1초간).loudnorm: EBU R128 표준에 맞춰 loudness normalize.
모든 필터의 공통 패턴은 같습니다 —
-c:v copy로 video는 보존하고, audio만 재인코딩합니다. 한 번 이 패턴이 손에 익으면 영상 후처리에서 audio 관련 문제는 거의 다 재생성 없이 풀 수 있게 됩니다."재생성 vs 후처리"의 의사결정
매번 sync나 audio 이슈를 만날 때 한 질문을 빠르게 던지는 습관이 도움이 됩니다.
- "이 문제는 audio만의 문제인가, video까지 잘못 만들어졌나?"
- audio만의 문제(sync, 볼륨, 노이즈 등)면 → ffmpeg 후처리. 0 토큰 / 0원 / 5초.
- video까지 잘못된 문제(동작이 다름, prompt 안 통함 등)면 → 재생성 필요. 클립당 20만~50만 토큰 / 100초.
대부분의 sync 이슈는 audio만의 문제로 분류됩니다. video 안에서 손동작 자체는 문제 없이 만들어져 있고, 단지 audio가 그 손동작 시점에 안 맞춰 들어와 있을 뿐인 경우가 많기 때문이죠. 즉 토큰을 한 줄도 안 쓰고 해결될 문제를 재생성으로 풀면, 한 영상 budget(200만~750만 토큰)의 약 5~10%를 sync 한 건에 태우는 셈이 됩니다.
결과 — production 비용의 다른 차원
이 패턴이 production에 박힌 뒤로 일어난 변화는 단순합니다.
- sync 이슈가 더 이상 재생성 트리거가 아닙니다. 처음엔 "어, sync 어긋났네, 다시 생성하자"였는데 이제는 "어, 1.3초만 지연시키면 되겠네"가 첫 반응이 됩니다.
- paid 호출 횟수가 줄어듭니다. "한 번 만든 영상은 audio 후처리로 가능한 한 살린다"는 원칙이 비용을 직접 줄여줍니다. 한 편 영상 budget(200만~750만 토큰) 안에서 sync 이슈 5건을 후처리로 흡수하면, 100만~250만 토큰이 그대로 살아남아 진짜 video 재생성이 필요한 자리에 쓰일 수 있습니다.
- 클립 수정 사이클이 짧아집니다. 5초 처리는 즉시 결과를 들어 볼 수 있으니, 1.3초가 너무 길면 1.2초로, 1.1초로 빠르게 미세 조정할 수 있습니다. 재생성 사이클로는 한 번 시도에 클립당 20만~50만 토큰 + 100초가 들어가기 때문에 불가능한 fine-tuning입니다.
마지막으로 한 줄 — "AI가 만든 자산이라고 통째로 다시 만들어야만 고칠 수 있는 건 아닙니다." AI 영상의 결과는 결국 mp4 파일이고, mp4 파일은 우리가 잘 아는 도구로 비파괴 편집할 수 있는 표준 컨테이너입니다. 10초 클립 한 번 생성에 수십만 토큰이 들어가는 시대에, 비싸게 만든 영상은 그대로 두고 그 위에서 audio toolkit으로 다듬어 나가는 게 production budget을 살려 쓰는 핵심 습관입니다.
이 글은 생성형 AI의 도움을 받아 작성되었습니다. 원본 자료를 기반으로 AI가 초안을 생성하고, 작성자가 검토·편집하였습니다.
'IT' 카테고리의 다른 글