이 방법은 H264 (AVC, x264) 코덱으로 인코딩 된 파일 중에 확장자가 (컨테이너) mkv인 파일을 avi로 변환하는 방법입니다. 유의하실 사항은 컨테이너를 바꾼 다고 해서 크게 달라지는 것은 없습니다. 즉 mkv 파일이라서 끊기는데 avi로 바꾼다고 끊기지 않는가? 그렇지 않습니다. 왜냐하면 mkv라서 끊기는 것이 아니고 H264라서 끊기는 것이기 때문입니다.

그럼에도 불구하고 초보자들에게 가장 널리 사용되는 곰 플레이어의 경우 mkv 파일 자체를 정상적으로 스플리팅 하지 못 합니다. 지금은 좀 개선되었을지 모르지만 예전엔 아무리 고사양 컴퓨터라도 곰 플레이어로 mkv 파일 재생시에는 뭔가 어색하고 버벅이는 느낌이 있었습니다. 하지만 같은 파일을 avi로 변경하면 그나마 좀 나아지곤 했습니다. 그건 곰 플레이어의 내장 스플리터 성능 문제이지 KMP에선 전혀 문제가 없습니다.

컨테이너라 함은 글자 그대로 상자라고 생각하시면 됩니다. 영상, 오디오, 자막, 쳅터 등의 내용물을 포장하고 있는 상자 입니다. 그 상자의 종류에는 mkv, avi, mp4, mpg, wmv 등등 수 없이 많이 있습니다. 가장 일반적으로 사용되는 상자가 avi 입니다. 하지만 최근에는 HD 영상의 대중화와 x264 cli 의 지속적인 개발/업데이트 때문에 720p x264 mkv 라는 형식이 많이 사용되고 있습니다. mkv는 avi와 달리 자막을 포함할 수도 있고 챕터 기능도 있기 때문에 앞으로도 널리 사용될 것으로 생각됩니다.

이 과정은 크게 3가지 단계로 구분됩니다.
1. mkv 파일 안에 들어있는 영상과 오디오 내용물을 밖으로 꺼낸다.
2. 꺼낸 영상을 avi로 변환한다.
3. 변환된 avi에 음성도 같이 집어넣는다.



1. MKV Extract GUI를 이용해서 영상과 음성 추출하기




먼저 mkvtoolnix 라는 프로그램을 설치합니다.

그리고 설치된 폴더에 (C:\Program Files\MKVtoolnix)
다음 mkvextractGUI 프로그램을 압축 풀어서 집어넣습니다.



원래는 mkvextract.exe 라는 프로그램이 mkvtoolnix 안에 들어있습니다만
CMD 창을 띄워서 직접 커맨드를 입력하는 것보단 GUI 기반의 프로그램에 다들 익숙하시고
저 역시 후자가 사용하기 편리하기 때문에 mkvextractGUI 프로그램을 사용해서 설명드립니다.

사용자 삽입 이미지



2. avc2avi GUI로 영상을 avi로 변환하기




지난번엔 avc2avi로 설명드렸는데 역시 CMD 창에 익숙하지 않은 분들도 계시고 해서 찾아보니
간단하게나마 GUI 프로그램이 있더군요.

참고로 이 GUI 프로그램은 .NET Framework 2.0이 설치되어 있어야 사용 가능합니다.
http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe

avc2avi_gui.exe 를 실행하고 추출한 영상을 불러옵니다.
추출한 영상은 h264 라는 확장자를 가졌는데 처음에 불러올 때 기본값으로 264 라는 확장자로 설정되어 있으므로
파일 찾을실 때 파일 형식을 All files로 하시고 찾으시면 됩니다.

사용자 삽입 이미지

여기서 FPS를 조심하셔야 하는데 원본 영상의 FPS를 알고 있어야 합니다.
일반적으로 HDTV 립인 경우 29.97을 입력하시면 되고 영화인 경우 23.976을 입력하시면 됩니다.
간혹 유럽 방송중엔 25fps도 있기 때문에 원본의 FPS가 뭔지 확인하시고 입력해주세요.
Mux 누르면 avi로 변환이 됩니다.



3. 변환된 영상과 음성을 합쳐주기

이 방법은 여러가지가 있습니다. 버추얼 덥을 사용해도 되고 AVIMux_GUI 라는 프로그램을 사용해도 됩니다. 여기서는 후자로 설명드리겠습니다.




사용자 삽입 이미지

파일을 드래그 해도 되고 마우스 우클릭해서 add로 넣어주셔도 됩니다. 먼저 아까 변환했던 avi 비디오 파일을 불러옵니다. 그 다음 불러온 비디오를 선택하시고 그 아래 generate data source from files 버튼을 눌러줍니다. 그럼 아래 창에 뭔가 추가됩니다.

오디오 파일 역시 같은 방법으로 불러줍니다. 오디오는 generate data source from files 버튼 누르지 않아도 바로 아래에도 추가됩니다.

그 다음 start 누르시면 저장할 파일 이름 묻는 창이 나옵니다. 저장하시면 끝!!

이상으로 허접한 설명을 마치겠습니다.



3-1) 버추얼 덥으로 영상과 음성 합치기

3번 단계에서 영상을 불러오는데 오류가 난다고 하시는 분들이 계시길래
버추얼 덥으로 하면 괜찮을까 싶어서 내용 추가합니다.
기존 네이버 블로그에선 버추얼 덥으로 방법을 설명했는데 그대로 옮기겠습니다.




그런데 버추얼 덥에서 바로 H264 영상을 불러오면 에러가 납니다.
따라서 코덱을 설치해주어야 합니다.
필요한 코덱은 FFDSHOW 라는 코덱입니다.




코덱을 설치하시고 버추얼덥 MOD로 2단계에서 변환했던 영상을 불러옵니다.
그 다음 Streams - Stream list

사용자 삽입 이미지


여기다가 Add 눌러서 1단계에서 분리했던 음성을 넣어주시면 됩니다.
딜레이가 없는 경우에는 그냥 OK 하시면 되는데 딜레이가 있는 경우에는 설정을 해줘야 합니다.
음성에다가 우클릭 하시면 Interleaving이 나옵니다. Delay audio track by 부분에다가
딜레이값을 ms 단위로 적어넣으시고 OK 하시면 됩니다.

사용자 삽입 이미지



이제 저장만 하시면 됩니다.
그 전에 한 가지 해야 되는게 있는데 저장 하실때 설정해도 되고 지금 설정해도 되는데 지금 설정하겠습니다.
Video - Direct stream copy 를 선택합니다.
새로 인코딩을 하지 않고 동영상을 그대로 저장하겠다는 말입니다.

사용자 삽입 이미지



이제 File - Save As 로 저장하시면 끝입니다.

사용자 삽입 이미지

사용자 삽입 이미지


AVI-Mux GUI로 영상을 불러오는 부분에서 에러가 난다고 하시길래
이 방법을 설명드렸습니다.
만약에 이 방법으로도 되지 않는다면 저도 모르겠습니다 ^^