동영상에 외부 레코더로 녹음한 음성을 합칠 때 싱크가 밀리는 이유

제목에서 비디오 촬영 장비와 음성 녹음 장비를 따로 써서 합치는 경우라고 한정했지만, 본질을 따져보면 상황을 나눌 이유는 없습니다. 단일 장비(스마트폰 하나)로 촬영한 동영상을 편집할 때도 영상과 음성의 싱크가 안 맞는 것을 경험했다면 이 글이 도움이 될 겁니다. 적어도 원인은 파악하실 수 있을 거예요.

싱크가 틀어지는 현상이 어디에서 발생하는지를 생각해보면… ①음성 샘플링 레이트가 다를 경우, ②영상이 가변 프레임 레이트로 제작되었을 경우, ③영상이 드롭 프레임(Drop-Frame)을 쓰기 때문에 외부 음성레코더가 계산하는 시간과 차이가 나는 경우. 이렇게 세 군데에서 문제가 생길 수 있다는 것을 추측 가능합니다. 하나씩 나눠서 설명해 볼게요.

 

① 음성 샘플링 레이트 차이

캠코더에서 음성 데이터를 1초당 48KHz(48000Hz)의 Sampling Rate로 기록한다고 설정합니다. 10초간 영상을 찍는다고 가정해보죠. 1초당 48000번씩 열심히 점을 찍어서 10초 동안 48만 개의 점이 기록될 겁니다.
(만약 기록 과정 중에 문제가 생겨서 47만 개의 점밖에 안 찍혔다? 그러면 음성 파일의 시간은 9.XX초가 되어 버립니다. 1만개 만큼의 시간이 비례해서 잘리는 거예요.)

한편, 외부 음성 레코더에서는 “CD 수준 음질이면 충분하지 뭐.” 하고 샘플링레이트를 44.1KHz(44100Hz)로 설정합니다. 동영상 촬영과 동시에 기록을 시작해서 10초간 녹음하면… 441000개의 점이 기록되겠죠?

이제 동영상 편집 프로그램에서 동영상을 불러옵니다. 동영상 스펙에 맞춰서 프로젝트 환경을 정해야 되니까 음성 샘플링 레이트를 48KHz라고 설정하겠죠? 따라서 프로젝트는 48000개의 점이 카운트 되었을 때 “1초”라고 인식합니다. 동영상에는 48만 개의 점이 있으니까, 타임라인에 영상의 길이는 10초라고 정상적으로 나옵니다.

여기에 외부 레코더로 녹음한 음성 파일을 프로젝트 파일에 불러옵니다. 441000개의 점이 불러들여집니다. 샘플링레이트 48KHz 환경에서는 480000 – 441000 = 39000 개의 점만큼 빠져서 시간이 계산되겠죠? 그래서 10% 가까이 줄어든 시간으로 타임라인에 표시됩니다. 영상이랑 합쳐서 출력하면 음성이 영상보다 9.XX%쯤 빠르게 끝나겠죠.ㅋ

SampleRate 차이에 따른 싱크 틀어짐은 음성파일의 샘플레이트를 동영상 파일 음성의 샘플레이트와 일치시키는 식으로 바꿔 저장한 다음 영상편집 프로그램에서 불러오는 식으로 대처하면 소리 변화 없이 시간을 정상화할 수 있을 것입니다.

음성파일의 시간을 엿가락처럼 늘이고 줄이는 식으로 대처하는 것도 가능하긴 하죠. 대신 카세트테이프 배속재생 했을 때 피치가 변하는 것처럼 음성파일도 피치가 변할 수 있습니다. 사운드 편집 프로그램이 피치 조정 기능을 제공한다면 이걸 억제할 수 있겠지만요.

 

② 가변 프레임 레이트(VFR)로 녹화하는 경우

VFR은 Variable Frame Rate의 약자. 가변 프레임 레이트.
CFR은 Constant Frame Rate의 약자. 고정 프레임 레이트.

디지털 영상의 용량 절감 노력은 눈물겹습니다. 용량 = 트래픽 = 전송 효율.
그런데 우리는 고정 프레임에 익숙하죠? 방송들이 전부 고정 프레임으로 뿌려지고 있으니까요. 영상편집 프로그램도 방송용 영상 제작을 전제로 설계되었기 때문에 CFR만 지원하는 경우가 거의 다입니다.

그런데 VFR은 어디에서 쓰이냐? 반디캠, 오캠 같은 PC화면 녹화 프로그램들이 유용하게 쓰겠죠. 컴퓨터 화면은 많이 안 바뀌니까요(게임 제외). 아니면 인강 같은 정적 화면 위주의 영상. 아니면 고화질 영상을 손수 모바일 용으로 인코딩해서 보는 경우 등… 재편집할 일이 없는데 용량은 많이 줄이고 싶은 경우라면 VFR이 유용하겠죠. 영상 VFR이나 음성 VBR은 그런 이유로 쓰는 겁니다.

VFR 기반 동영상 파일을 영상 편집 프로그램에서 불러왔을 때 싱크가 밀리는 현상은… CFR로 재인코딩이 근본적인 해결책이에요. 물론 프리미어처럼 푸티지 해석(Footage Interpret) – 이 프레임 속도 가정(60fps) 기능을 제공한다면 임시방편으로 적용할 수 있긴 한데, 이런 건 임시 방편용으로 나온 것이고… 영상 자체를 CFR로 만드는 게 정석이에요. 하지만 인코딩을 거칠수록 화질이 떨어질 수 있고 시간도 많이 쓰이니까 설정을 요령껏 하셔야 하겠네요.

아무튼 VFR 영상 싱크 밀림은 사운드 편집 프로그램으로 손볼 수 있는 부분이 없어요. 제일 까다로움. 영상편집에서 VFR은 천덕꾸러기.

 

③ 드롭 프레임 영상 – 논 드롭 프레임 프로젝트파일

사실 1번, 2번 케이스는 영상 편집을 염두에 두고 촬영하는 경우라면 실수에 가깝고, 이번 케이스가 진짜배기가 아닐까 싶습니다.

대 유튜브 시대라고 하지만 TV, 영화관은 영상매체의 대세죠. TV, 영화는 프레임을 떨궈서 원가를 낮춥니다.ㅋ 눈에 안 거슬리는 수준으로 프레임을 떨어뜨리니까 일반인이 대충 인코딩하는 것에 비해 화질 열화를 인지하기 어려운 거고요.

우리가 영상 프레임 얘기할 때 24fps / 30fps / 60fps 를 주로 언급하죠? 이것은 Non-Drop Frame.
그런데 TV/영화관에서는 23.976fps / 29.97fps / 59.94fps 로 송출. 이것은 Drop Frame.

전문 영상 촬영장비는 방송용 캠코더부터 시장이 커졌고, 이것들이 드롭프레임으로 영상을 생산하게끔 만들어졌습니다. 가정용 캠코더도 드롭프레임이고, 그러다 보니 디카/스마트폰 동영상도 따라가야 하니까 드롭프레임이고, 편집 프로그램도 드롭프레임이 기준이 될 수밖에 없었죠. 요즘은 논-드롭프레임 영상을 쓰는 경우가 조금씩 생겨나고는 있는데, 영상 스펙을 대충 적는 카메라회사(+편하게 받아들이는 소비자) 덕분에 FPS 스펙이 대충 적혀 있는 경우가 많습니다.

대충 익숙하니까 영상편집 프로그램에서 프로젝트 파일 생성하면서 30FPS를 선택했는데(Non Drop Frame), 정작 영상은 29.97fps 영상이면? 프로젝트 파일은 30프레임당 1초를 표시하는데 영상은 29.97프레임만 나오고. 29.97프레임에 해당하는 0.999~초에서 영상이 끝나겠죠? 1분간 쌓이면 59.94초에서 영상이 끝나겠고요(29.97÷30×60).

그런데 음성은 정해진 시간만큼 재생되겠죠? 영상보다 0.06초 늦게 끝나겠죠(60초에서 끝남). 10분이면 0.6초. 거의 1초쯤 차이나는 거라, 롱테이크로 갈수록 싱크 밀림을 확실히 감지할 수 있는 것이죠.

프로젝트 파일의 FPS와 영상파일의 FPS를 맞춤으로써 이 문제를 근본적으로 해결할 수 있는데, 일치시킬 수 없는 상황도 있으니까… 일치 못 시키는 상황에선 음성파일의 길이를 늘이고 줄이는 식으로 대응하는 수밖에 없습니다. 하지만 사운드 편집 프로그램에 피치보정 기능이 없다면 미세하게 소리의 높낮이가 변할 수 있겠죠?

 

대충 생각나는 원인들만 정리해봤는데, 이해가 잘 되게끔 글을 썼는지 모르겠네요.
도움이 되었으면 좋겠고…

혹시라도 싱크 문제를 해결하고자 사운드 파일의 샘플링레이트/길이 늘임(줄임)을 의뢰하고자 하신다면 010-979구-576셋 으로 문자를 주세요. 성의껏 도와드리겠습니다(자체 FTP서버, WebDav 서버 구동 중이라 타인/타 업체에 파일을 노출시키지 않습니다. 안심하고 의뢰해 주세요.).

CC BY-NC-ND 4.0