MKV 동영상 음성 바꾸기 (DTS → AAC)

2011. 4. 17. 03:37IT/Computer Tips

얼마 전 17년 동안 사용하던 TV를 바꿨다. 요즘 나오는 TV는 영상 재생을 기본으로 지원한다. 저렴한 보급형이지만, 우리 집 TV 역시 USB 장치를 연결하기만 하면 영상 파일을 재생할 수 있다. 조그마한 모니터가 아닌 TV로 영상을 볼 수 있으니 좋구나. 그런데 웬걸. 영상을 재생하니 음성이 나오지 않는다. 알고 보니 TV에서 DTS 음성 코덱을 지원하지 않는다. MKV 영상 중 720p나 1080p 등의 고화질 영상은 음성 코덱이 DTS인 것이 꽤 된다. 컴퓨터라면 코덱을 내려받아 사용할 수 있지만, TV는 내 마음대로 할 수 없다. 그래서 MKV 파일에 포함된 DTS 음성을 TV에서 지원하는 AAC로 바꾸기로 했다.

AAC(Advanced Audio Coding)는 MP3와 같은 손실 압축 형식으로 파일 크기가 같을 때 MP3보다 품질이 좋다. 음성을 AAC로 변환할 때 Nero AAC와 FAAC를 많이 사용한다. Nero AAC는 Nero Burning Rom을 만든 Nero 사에서 무료로 공개한 AAC 인코더다. Nero AAC가 FAAC보다 변환된 음성의 품질이 좋기 때문에 Nero AAC를 주로 사용한다. 그럼 MKV 컨테이너에 포함된 DTS 음성을 추출한 다음 Nero AAC를 이용해 AAC 형식으로 변환하고 다시 MKV 컨테이너에 넣어보자.

준비물


네 가지 프로그램을 모두 내려받고 먼저 AviSynth를 설치한다. 설치가 끝나면 MeGUI 파일 압축을 풀고 MeGUI.exe를 실행한다. MeGUI를 실행하면 업데이트하라는 메시지가 나온다. 일단 [예]를 클릭해서 업데이트를 시작한다. 업데이트 세부 과정은 아래의 [업데이트 과정 보기]를 클릭해서 확인할 수 있다.



MeGUI가 다시 실행되면 업데이트 창이 또 나온다. Nero AAC를 아직 복사하지 않아서다. 업데이트 선택 창에 [아니오]를 선택한 다음 내려받은 Nero AAC 코덱의 압축을 풀고 파일 탐색기를 실행해서 win32 폴더의 neroAacEnc.exe 파일을 MeGUI\tools\neroaacenc 폴더에 복사한다.

이제 내려받은 MKVExtractGUI-2 파일 압축을 풀고 모든 파일을 MeGUI\tools\mkvmerge 폴더로 복사한다. 이제 사전 준비는 끝났다. 실제 작업을 시작해보자.


1. MKV 컨테이너에서 DTS 음성 추출하기


MeGUI\tools\mkvmerge 폴더로 이동한 다음 MKVExtractGUI2.exe 파일을 실행한다. 이 파일은 MKV 파일 자르기, 합치기, 자막 합치기 게시물에서 사용한 MKVtoolnix를 사용해서 MKV 컨테이너의 각 요소를 꺼내는 작업을 한다. [Input File] 오른쪽의 [...] 단추를 눌러 mkv 영상 파일을 추가한다. 같은 방법으로 [Output Dir]에 추출한 파일을 저장할 폴더를 지정한다. [Tracks]에서 추출할 음성 부분을 선택하고 [Extract] 단추를 누른다.

잠시 기다리면 위 그림처럼 프로그램 창 맨 아래에 [Extracted OK.]란 메시지가 나온다. 이제 Output Dir에 지정한 폴더로 이동하면 음성 파일이 추출된 것을 확인할 수 있다.


2. DTS 음성을 AAC로 변환하기


이제 DTS 파일을 AAC 코덱을 사용해 변환할 차례다. MeGUI를 실행한 다음 위 그림의 1에 추출한 음성 파일을 선택하고 2에 변환한 파일을 저장할 폴더를 지정한다. 3에 Nero AAC: *scratchpad*를 선택하고 4에 MP4-AAC를 선택한다. 4는 컨테이너를 지정하는 부분으로 MP4-AAC는 결과물이 MP4 파일이고 M4A는 결과물이 m4a 형식이다. 그러나 어차피 음성 코덱 자체는 AAC이고 컨테이너는 중요하지 않으니 아무것이나 선택한다. 이제 Nero AAC 코덱 설정을 위해 5의 [Config]를 클릭한다.

Nero AAC 코덱 설정 창에서 중요한 것은 채널, 샘플링 비율, 비트 전송률이다. 만약 음악을 위한 인코딩이라면 이 세 가지를 적절히 조절해서 파일 크기를 줄일 수 있지만, 영상에서 사용할 음성이므로, 게다가 TV에서 보기 위한 용도이므로 원본 DTS와 최대한 비슷하게 만드는 것이 낫다. 일단 Output channels와 SampleRate는 [Keep Original]을 선택한다. 원본 채널과 원본 샘플링 비율을 유지하는 옵션이다. 비트 전송률은 Variable Bitrate를 선택하고 Q 값은 1로 지정한다. 이제 [OK]를 눌러 AAC 코덱 설정을 마친다.

Nero AAC 코덱 설정이 궁금하면 아래를 참고하자.

  • Apply DynamicRange Compression는 간단히 이야기하면 음성 높낮이를 잘 들리게 적절히 조절하는 옵션이다. 음성 자체에 변화가 생기므로 적용하지 않는 것이 좋다. TV에서 사용하지 않고 이동식 기기에서 사용할 땐 적용해도 된다.
  • Output Channels는 채널을 바꾼다. 2.1 채널이니 5.1 채널이니 하는 이야기를 들어본 적이 있을 것이다. Keep Original Channels는 원본 채널을 유지하는 것이고 Stereo 등으로 다운믹스(채널을 줄임)하거나 2채널을 5.1 채널로 업믹스(채널을 늘림)할 수 있다.
  • Normalize Peaks to '숫자'는 음량을 평준화하고 크기를 조절하는 옵션이다. 원한다면 사용해도 좋다.
  • Adaptive Bitrate는 시스템 상태에 따라 정해진 범위 안에서 자동으로 비트 전송률을 조절하는 방식이다.
    Constant Bitrate는 사용자가 지정한 비트 전송률을 음성 전체에 적용하는 방식이다. MP3의 128kbps, 320kbps 등으로 부르는 방식이다.
    Variable Bitrate는 사용자가 지정한 Q 값 내에서 가변적으로 비트 전송률을 조절해서 인코딩하는 방식이다.
  • AAC Profile은 AAC가 지원하는 프로파일 종류인데 Automatic으로 지정하면 된다.


코덱 설정 창을 닫았으면 이제 [Enqueue] 단추를 눌러서 작업 목록에 음성 변환을 추가한다.

[Queue] 탭으로 이동하면 추가된 작업을 확인할 수 있다. [Start]를 클릭하면 오른쪽과 같은 창이 나타나며 변환 작업이 진행된다.

변환이 끝나면 상태가 [done]으로 바뀌고 변환된 파일을 저장하도록 지정한 폴더로 이동하면 변환된 음성 파일을 확인할 수 있다.


3. MKV 동영상 파일에 AAC 음성 추가하기


이제 마지막 단계다. 원본 동영상에 방금 만든 AAC 음성을 추가하면 모든 작업이 끝이다. MeGUI 메뉴 중 [Tools] - [Muxer] - [MKV Muxer]를 선택하거나 단축키 [Ctrl+4]를 누른다. [Video Input]에 원본 MKV 영상을, [Audio1] - [Input]에 방금 만든 AAC 음성을, [Muxed Output]에 새로 만들 MKV 파일을 지정하고 [Queue]를 클릭한다. 만약 원래 포함되어 있던 DTS 음성과 새로 만든 AAC 음성을 모두 삽입하려면 Audio 1에 DTS를, Audio 2에 AAC를 지정한다. 자막도 같은 방식으로 삽입할 수 있다.

이제 [Queue] 탭으로 이동해서 [Start] 단추를 누르면 새로운 MKV 파일이 생성된다.

새로 생성된 파일을 MediaInfo를 이용해서 확인했다. 음성 코덱 형식이 AAC로 바뀐 것을 확인할 수 있다.

음성 코덱을 바꾼 영상을 TV에서 재생하니 문제없이 잘 재생된다. 이렇게 작업할 시간에 그냥 HDMI 연결선 하나 사서 노트북이랑 TV 연결해서 보면 되는데 무슨 사서 고생인지... 뭐, 어쨌든, 이런 방법으로 MKV 파일에 음성을 바꿀 수 있다.