이 글은 동해랑님의 질문에 대한 답변 트랙백입니다.

 

질문 : 동영상과 오디오의 싱크를 맞출 때, 파일을 잘라내지 않고 싱크만 맞춘다면?

 

먼저 오디오의 원본 상태를 유지한다는 말에 대해 2가지 해석이 가능합니다. 말 그대로 원본 해시값 그대로 동일한 파일을 보존하고 싶다는 것인지, 아니면 재인코딩 과정을 거치지 않고 원본의 음질을 그대로 유지하고 싶다는 것인지 입니다.

 

저는 후자의 뜻으로 해석했습니다.

 

예를 들어 MeGUI에 들어있는 Aften이나 FFmpeg로 딜레이만 컷팅 한다면 이는 재인코딩 과정을 거치게 되므로 동일한 비트레이트를 유지하더라도 음질의 손실을 입게 됩니다. 하지만 DelayCut 프로그램은 그렇지 않습니다. 이 프로그램은 재인코딩 과정 없이 바이너리 컷팅으로 파일을 다룹니다. 따라서 아무런 음질의 손실 없이 원본의 음질 그대로 유지가 됩니다.

 

샘플로 HDTV 녹화해서 ac3 파일 1분 분량을 추출했습니다. 그리고 DelayCut 프로그램으로 앞부분 30초를 잘라냈습니다. 즉 원본은 1분짜리이고 수정본은 30초짜리입니다.

 

그리고 Compare It 이라는 프로그램으로 비교를 해봤습니다.

 

 

 

위 스샷의 좌측 막대를 보면 절반은 녹색이고 절반은 흰색입니다. 즉 앞부분 절반은 전혀 다르다는 말이고 뒷부분 절반은 완전 동일하다는 말입니다. 우측 수정본은 앞부분이 공백인데 실제로 파일 앞부분이 공백이라는 뜻이 아니라 Compare It에서 동일한 패턴이 나올 때 까지는 공백으로 보여주는 것입니다. 30초를 잘라냈으니 당연히 앞부분 30초동안은 원본과 동일한 패턴이 나올 수 없겠지요.

 

그리고 30초 뒤로 가보면 이제 드디어 동일한 패턴이 시작됩니다.

 

 

 

 

이렇게 동일한 내용이 계속 진행되고 파일 끝부분에서 다시 조금 달라집니다.

 

 

 

 

제가 ac3 파일의 구조같은건 모르기 때문에 설명은 못 드리겠지만 아무래도 파일 시작 부분과 끝 부분에는 그 파일에 대한 전체 정보같은게(러닝타임, 코덱, 채널, 비트레이트 등등...) 들어있겠지요.

 

따라서 DelayCut 프로그램은 재인코딩 과정 없는 바이너리 컷팅 방식이기 때문에 원본과 동일한 음질을 유지한다는 결론을 내릴 수 있습니다.

 

 

 

 

 

이제 파일을 자르지 않고 딜레이 값을 넣었을 때를 생각해보겠습니다. 예를 들어 mkvmerge 로 먹싱할 때 딜레이값을 -30초 넣어주는 것과 DelayCut 프로그램으로 앞부분 30초를 잘라낸 경우가 어떻게 다른가에 대한 답변입니다. 결론부터 말씀드리자면 같습니다. 사실 avi에 대해서 질문하신 것이라면 실험을 해보지 않아서 잘 모르겠습니다만 적어도 mkv에선 같습니다. 즉 mkvmerge로 영상과 음성을 먹싱할 때 음수의 딜레이값을 넣어주면 오디오 파일은 앞부분이 컷팅되면서 먹싱됩니다. 즉 원본 그대로 들어가는데 딜레이 값에 대한 정보가 남아있어서 알아서 당겨서 재생되는 것이 아닙니다. 먹싱하면서 딜레이만큼 앞부분을 컷팅하면서 먹싱됩니다.

 

반대로 양수의 딜레이 값을 넣었을 경우에는 상황이 다릅니다. 이 경우에는 원본 오디오가 그대로 유지됩니다. 그대로 유지되면서 단지 오디오 재생만 늦게 시작될 뿐입니다. 뒤쪽에 남은 시간만큼의 분량이 컷팅되지도 않습니다. 그대로 유지됩니다. 다만 KMP + 할리 스플리터 조합에서 재생해보니 비디오 파일이 끝나는 부분에서 재생이 그냥 끝나더군요. 오디오는 뒤에 더 남아있지만 더이상 재생되지 않았습니다. 물론 여기서 오디오를 다시 추출해보니 뒤쪽이 잘리지 않고 원본 오디오 그대로 추출되었습니다.

 

원래의 글 HDTV 영화 인코딩에 DVD 음성 넣기 에서 DelayCut 프로그램을 사용하는 이유는 명확합니다. 앞부분이야 먹싱하면서 음수의 딜레이값을 넣어서 컷팅하면 되겠지만 뒷부분에 남는 오디오는 말 그대로 용량 낭비가 됩니다. 게다가 타겟 용량을 정확히 맞추기 위해 2패스 인코딩을 하는 경우 인코딩을 시작하기 전에 정확한 오디오 용량을 뽑아내야 비트레이트 계산을 할 수 있습니다.

 

 

 

이것으로 동해랑님의 질문에는 답변이 되었을 것 같습니다.

비로그인 댓글 제한에 대해서는 공지사항에 적어두었습니다.