MKV 영상을 AVI 컨테이너로 바꾸기 (H264/AVC)

2012. 8. 2. 22:04IT/Computer Tips

이전에 MKV 파일 자르기, 합치기, 자막 합치기MKV 동영상 음성 바꾸기 (DTS → AAC)에서 아주 기초적인 mkv 다루기에 대해 살펴보았다. mkv란 컨테이너는 생각보다 재가공이 편하지만, 평소 사용해왔던 영상 편집 프로그램에서 지원하지 않는다면 무용지물이다. 그럼 mkv 컨테이너를 좀 더 익숙하고 가공이 쉬운 avi로 바꾸면 어떨까? 물론 영상이나 음성의 퀄리티는 그대로 유지한 채 말이다.

mkv 컨테이너를 내용물은 그대로 유지한 채 avi로 바꾸는 방법은 몇 가지가 있다. 크게 mkv에 포함된 영상, 음성 등을 추출하는 단계, 추출한 영상과 음성을 avi 컨테이너에 담는 단계 두 가지로 구분할 수 있는데 각 단계에 사용할 수 있는 프로그램 역시 몇 가지씩 있다. 여기선 내가 개인적으로 편하다고 느끼는 프로그램으로 mkv 영상을 avi로 바꿔보자.

준비물

오늘 사용할 프로그램은 위에서 이야기한 다섯 가지다. MKVToolNix와 AVI-Mux GUI는 이전에 사용했던 MeGUI를 설치하고 실행하면 tools 폴더에 업데이트되니 참고한다.

1. mkv 동영상에서 음성과 영상 추출하기

MKVExtractGUI

MKVToolNix를 내려받아 압축을 풀고 mmg.exe 파일이 있는 메인 폴더에 MKVExtractGUI2를 복사한 다음 실행한다. 먼저 Input File 오른쪽의 [...] 단추(①)를 눌러서 원본 mkv 파일을 선택한다. Tracks에 영상, 음성 등 mkv 파일에 포함된 요소가 표시되는데 여기서 필요한 영상과 음성을 선택한다.(②) 보통 모두 다 선택하면 된다. 선택을 마치고 [Extract](③)를 누르면 영상과 음성 추출이 시작된다.

H264, AAC 파일 추출

처음의 mkv 파일이 h264(영상)와 aac(음성) 두 개의 파일로 분리되었다. 이렇게 분리된 파일은 h264는 영상 정보, aac는 음성 정보만 담고 있으며 원본 mkv에서와 화질 및 음질이 같다.

2. 추출한 영상을 avi 컨테이너로 변환하기

MediaInfo

mkv 영상에서 h264(영상) 파일을 추출했지만, h264는 뭐 어디 쓸래도 딱히 쓸데가 없다. 웬만한 동영상 편집 프로그램에선 다 안 되니 미련없이 avi로 변환하자. avc2avi란 프로그램으로 h264 파일을 avi로 변환하려면 변환에 앞서 영상의 프레임 비율을 알아야 한다. MediaInfo를 내려받고 실행해서 변환할 mkv 파일을 불러온다. [비디오] 부분을 보면 위 그림처럼 프레임 레이트란 부분을 확인할 수 있다. fps 29.970을 기억하자.

avc2avi all files

이제 avc2avi_gui.exe 파일을 더블클릭해서 avc2avi를 실행한다. 일단 먼저 File to Mux 오른쪽의 [...]를 눌러 1에서 추출한 영상을 연다. 그런데 앞에서 추출한 영상 확장자는 h264인데 avc2avi는 264, avc 확장자만 선택할 수 있다. 그러니 파일 선택 창이 나타나면 오른쪽 아랫부분의 확장자 선택 메뉴에서 All files(*.*)를 선택한 다음 앞에서 추출한 h264 파일을 선택한다. FPS에는 앞에서 MediaInfo로 확인한 fps 값을 입력한다. 이제 [Mux] 단추를 누르면 h264 확장자의 영상이 avi 파일로 변한다. 물론 영상 정보 자체는 원본과 그대로 유지된다.

H264를 AVI로 변환

잠시 후 h264 파일이 avi로 바뀐 것을 확인할 수 있다. MediaInfo로 확인해보면 음성은 없고 영상만 포함되어 있다. 이 과정 역시 영상을 추출하고 컨테이너에 넣는 먹싱 과정만 거쳐서 원본의 품질에 변화가 없다.

3. avi 컨테이너에 음성 병합하기

AVI-Mux GUI AVI-Mux GUI 설정

2에서 h264 영상을 avi로 바꾸는 것까지 끝났다. 그러나 마지막에 MediaInfo에서 확인한 것처럼 이 avi 파일엔 영상만 있을 뿐 음성이 없다. 이제 음성을 추가해보자. 먼저 ③의 Settings를 클릭해서 default output format을 AVI로 설정한다. 그다음 2에서 만든 AVI 영상 파일과 1에서 추출한 음성 파일을 끌어놓기로 ①의 네모 칸에 추가한다. 파일을 추가하면 그 아래 ② 부분에 음성 정보만 표시될 것이다. 그땐 ① 칸의 영상 파일(AVI 파일)을 더블클릭하면 위 그림처럼 ②에 음성 정보와 함께 영상 정보도 표시된다. 이 과정을 빠뜨리면 안 되니 주의한다!! 이제 ④의 Start 단추를 눌러 음성을 합친 동영상을 저장할 위치 및 이름을 정한다. 잠시 기다리면 mkv 파일의 영상과 음성을 그대로 유지한 avi 파일이 생성된다.

변환 완료된 AVI 파일

최종적으로 완성된 avi 파일이다. 원본 mkv의 영상과 음성이 그대로 유지된 채 컨테이너만 mkv → avi로 바뀌었다.

참고로 2번째와 3번째 과정은 위에서 이야기한 프로그램 말고 다른 프로그램을 사용할 수도 있다. 일단 [2. 추출한 영상을 avi 컨테이너로 변환하기]에서는 avc2avi 대신 MatroskaSplitter에 포함된 mkv2vfr.exe를 사용할 수 있다. MatroskaSplitter가 설치된 폴더에서 mkv2vfr.exe, mkunicode.dll, mkzlib.dll 세 파일을 영상이 저장된 폴더로 복사하고 명령 프롬프트를 실행한다. 그다음 아래의 명령어를 입력한다.

mkv2vfr test.mkv test.avi

위와 같이 입력하면 잠시 후 mkv 파일에서 영상만 포함된 avi 파일이 생성된다. 내가 테스트한 영상은 mkv2vfr로 제대로 변환되지 않았지만, 많은 사람이 문제없이 변환된다고 하는 방법의 하나다.

VirtualDub의 h264 코덱 오류

다음 [3. avi 컨테이너에 음성 병합하기]에서는 AVI-Mux GUI 대신 VirtualDub을 사용할 수 있다. VirtualDub은 워낙 오래전부터 널리 사용되는 프로그램이라 안정성은 검증되었지만, 시스템에 편집할 파일에 사용된 코덱을 설치해야 한다. h264에서 avi로 변환한 파일을 VirtualDub에서 열 때 위의 오류 메시지가 나오면서 파일이 열리지 않으면 x264vfw 코덱을 설치한 다음 다시 작업한다.