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 파일에 음성을 바꿀 수 있다.


  • 프로필사진
    Favicon of http://yourwebsite.com BlogIcon Ripper2011.07.03 02:23

    유용한 정보 정말 감사합니다~ 좋은 하루 되세요~

  • 프로필사진
    ddiplo2011.07.23 00:47

    TV에서 DTS가 지원을 안해서 정말 실망했었는데 덕분에 방법을 찾았어요~
    앞으로도 많이 써먹을듯합니다. 좋은 팁 감사합니다~

    • 프로필사진
      Favicon of https://circlash.tistory.com BlogIcon circlash2011.07.23 01:36 신고

      재밌는 영상 많이 보세요~
      사실 추출하고 변환하고 상당히 귀찮은 작업인데, 저도 HDMI 케이블 살 생각은 안하고 변환만 하고 있네요 ㅋㅋ
      주말 잘 보내세요!

  • 프로필사진
    Favicon of http://yourwebsite.com BlogIcon asdf2011.10.02 16:25

    업데이트 했는데 neroaacenc 파일이 없어요ㅠㅠ

    • 프로필사진
      Favicon of https://circlash.tistory.com BlogIcon circlash2011.10.02 22:43 신고

      글 맨 위에 [준비물]에서 Nero AAC 항목 맨 오른쪽의 '바로 내려받기'를 눌러서 따로 내려받으셔야 해요~
      내려받은 파일 압축을 풀면 neroaacenc,exe 파일이 있습니다.^^
      잘 쓰세요~

  • 프로필사진
    조래정2012.02.03 11:26

    업데이트하고 'MeGUI\tools\neroaacenc 폴더에 복사한다'고 되어 있는데 왜 전 neroaacenc폴더가 없을까요

    • 프로필사진
      Favicon of https://circlash.tistory.com BlogIcon circlash2012.02.03 12:19 신고

      그냥 해당 위치에 폴더 만드시면 되요~
      다른 폴더에 저장해도 상관은 없지만, 프로그램이 기본으로 인식하는 폴더가 위에서 이야기한 위치일겁니다.^^

  • 프로필사진
    ctrolll2012.02.09 21:11

    음성 추출 후 Extract OK 가 나왔는데도 아웃풋 디렉토리에 오디오 파일이 없네요. 여러번 시도해도 마찬가지 입니다. 무엇이 문제일까요..ㅠㅠ

    • 프로필사진
      Favicon of https://circlash.tistory.com BlogIcon circlash2012.02.10 13:18 신고

      추출 폴더를 잘못 확인하셨거나 그런건 아닐테고,,, 혹시 dts란 확장자를 가진 파일이 안생겼나요?
      혹시 모르니 http://circlash.tistory.com/264 등의 검색 프로그램으로 dts 확장자 가진 파일을 한번 검색해보세요.
      음성 정보가 포함된 파일이라면 분명 추출될텐데 이상하네요 ㅜㅜ

  • 프로필사진
    kuma2012.08.08 17:25

    저도 윗분처럼 음성추출 후 ok가 나왔는데도 오디오 파일이없네요...
    1시간째 시름중..

    • 프로필사진
      Favicon of https://circlash.tistory.com BlogIcon circlash2012.08.11 13:09 신고

      한번도 그런 적이 없었는데 이상하네요;;
      비슷한 문제가 있는지 찾아보고 해결책이 없다면 다른 추출방법을 소개해드릴께요!

  • 프로필사진
    Favicon of http://yourwebsite.com BlogIcon chess2012.10.03 18:20

    영화 DTS 코덱들을 AAC로 변환시키는건 안되네요 왜 그럴까요... 하나만 그러는게 아니고 지금 영화 5개 정도 DTS 추출해서 AAC로 바꾸려는데 계속 시간 흘러가는 것만 보여주고 정작 변환 작업 진행은 안되네요...

    • 프로필사진
      Favicon of https://circlash.tistory.com BlogIcon circlash2012.10.05 12:52 신고

      흠, Nero AAC를 넣었는데도 안되는거죠?
      그럼 다른 프로그램으로 변환하시는게 나을 것 같은데요.
      foobar2000이나 XRecodeII 같은 프로그램으로 변환할 수 있을텐데 필요하시면 찾아보고 알려드리겠습니다~

  • 프로필사진
    파바2013.02.16 00:41

    MeGUI창에서 Encoder Settings에 Nero AAC : *scrapped*가 없네요...

  • 프로필사진
    june2013.06.14 05:45

    (1) option - settings - External Program Configration 까지 가셔서 Enable NeroAacEnc 에 있는 체크박스에 체크해주세요.
    (2) 그리고 MeGUI 다시 실행해주시면 됩니다.
    (*) NeroAACCodec-1.5.1 은 아무곳에서나 압축풀어도 되고 neroAacEnc.exe 위치만 (1)에서 정확히 지정해주면 됩니다.

  • 프로필사진
    촘촘2021.04.30 10:28

    유용한 정보 감사 합니다. 대부분의 고화질 영상은 DTS가 전부라 다시 인코딩이 필요하더군요~ 이 비싼 미친 OLED 티비가 갑자기 쓰레기로 보입니다. 이전 고물티비에서도 잘만 재생되던게.. 신형 비싼 인공지능 티비에 코덱이 없어서 재생이 안된다니...

    혹시 질문 하나 드려도 될까요?? 인터넷에서 쉽게 구할수 있는 샤나 인코더나 다음팟 인코더 같은 프로그램으로 한번에 재코딩을 하는것이 좀더 효율적이지 않을까요? 작성자 께서 하신 방식이 복잡하기는 하나 분명 이유가 있을꺼라 생각되서요~(음질 문제라던가...)