스마트 폰

아이폰 4 AVI, MKV 동영상을 MP4로 한방에 변환하기

snoopybox 2010. 9. 26. 13:52


많은 분들의 요청에 의해 최종 통합버전을 올려드립니다. 며칠동안 수많은 테스트와 수정을 반복하여 드디어 완성본을 만들게 되었습니다. 이제 더 이상의 수정은 없습니다. 오류가 발생한다면 그것은 사용된 툴의 한계이거나 원본 동영상의 문제이기 때문에 제 힘으로 어찌할 방법이 없습니다. 잘 되는 동영상은 잘 되는 대로 변환해서 감상하시면 되고, 안 되는 동영상은 따로 다음팟 인코더유마일 인코더 등을 사용하여 변환하시기 바랍니다.



1. 프로그램 소개

이 프로그램은 제가 아이폰 4를 구매한 이후 동영상을 변환하는 일이 귀찮아서 고민을 하다 만들게 되었습니다. 사실 제 컴퓨터에서는 동영상 변환에 그렇게 시간이 많이 걸리지 않습니다. 현재 인텔 코어 i5 750 린필드 CPU를 4GHz로 오버클럭 해서 사용중이기 때문입니다. 하지만 일반적인 듀얼코어 CPU 또는 완전 구세대 컴퓨터에서는 아이폰 4에서 재생하기 위한 동영상을 MP4로 변환하는데 시간이 상당히 많이 걸립니다. 게다가 일단 동영상은 인코딩을 하게 되면 무조건 화질의 손실을 입게 됩니다. 그리고 인코딩 프로그램에 익숙하지 않은 분들에게는 인코딩에 사용되는 용어와 설정이 꽤 어렵고 복잡하게 느껴지실 것입니다.

이 프로그램은 동영상을 인코딩하지 않습니다. 정확히 표현하자면 비디오는 건드리지 않고 그대로 두고, 오디오만 인코딩을 합니다. 아이폰 4의 내장 아이팟 프로그램은 "MP4 컨테이너 + AAC 오디오" 규격의 동영상만 재생을 지원하기 때문에 어쩔 수 없이 오디오는 인코딩을 해야 합니다. 왜냐하면 일반적으로 동영상에는 AC3 (Dolby Digital), DTS, MP3 등이 많이 사용되기 때문입니다. (MP4 동영상에는 AAC도 많이 사용됩니다.)

이렇게 동영상에서 오디오만 인코딩하여 MP4로 변환하는데는 제 컴퓨터에서 한시간짜리 드라마 한편을 기준으로 2~3분 정도밖에 걸리지 않습니다. 아마 사양이 낮은 컴퓨터라 할지라도 5분 안에 작업이 끝날 것입니다. 하지만 다음팟 인코더를 사용하여 MP4로 변환하려면 시간이 얼마나 걸릴까요? 컴퓨터 사양에 따라 천차만별이겠지만 적게는 10분에서 많게는 수 시간까지 걸릴 것입니다. 또한 이 프로그램을 사용하면 모든 작업이 한번에 자동으로 이루어지기 때문에 매우 편리합니다.




2. 사용된 프로그램

1. MKVtoolnix 4.3.0
2. MediaInfo CLI 0.7.35
3. FFmpeg version SVN-r25168
4. Nero AAC Codec 1.5.4
5. MP4Box 0.4.6
6. LibIconv for Windows 1.92
7. Subtitle Workshop 2.51



3. 지원하는 동영상

1. MKV - H.264/AVC 코덱
2. AVI - H.264/AVC, XviD, DivX 코덱
3. 오디오의 경우 거의 모든 코덱을 지원합니다.
4. MP4 - 이미 변환된 MP4 파일에는 자막만 통합해줍니다.



4. 사용 방법

사용 방법은 매우 쉽습니다. 압축을 푸신 다음 폴더 안에 변환하려는 동영상과 자막을 넣고 "MP4로 변환하기" 파일을 실행하시면 됩니다. 처음 화면에서 아무 키나 눌러주시면 모든 작업이 자동으로 진행됩니다.

가장 일반적으로 사용되는 동영상들을 예제 파일로 모아봤습니다. 아래 그림을 보세요.



8가지 경우를 모아봤는데 저렇게 한꺼번에 모아두고 변환기를 실행해도 됩니다. AVI, MKV, MP4 다 섞여있어도 되고, 자막이 있는 파일과 없는 파일이 섞여있어도 됩니다. 자막이 있는 경우 동일한 이름의 동영상이 있다면 자동으로 통합을 해줍니다. 이때 자막은 SMI, SRT 둘다 지원합니다. 단 SRT인 경우 UTF-8 인코딩만 지원합니다.

아무튼 위 상태로 제가 프로그램을 실행한 결과 아래와 같이 되었습니다. 파일이 많아서 확장자로 정렬했는데, 보시다시피 8가지 경우 모두 MP4 파일이 잘 생성되었습니다. 그리고 없던 SRT 파일들이 생겨났는데 통합을 위해 SMI를 SRT로 변환한 것들입니다.



그런데 저기 보시면 자막 통합에 실패한 파일 목록이 있지요? 저 목록에는 SRT 자막에 문제가 있어서 MP4 통합에 실패했거나, 통합은 되었지만 하여튼 자막에 좀 문제가 있는 것들이 들어있습니다. Subtitle Workshop 프로그램과 LibIconv 프로그램이 불완전해서 어쩔 수 없습니다. 이렇게 자막 통합에 실패한 MP4 파일들은 따로 모아놓고 잘 변환된 SRT 파일을 만들어서 다시 통합해주세요. 제 경험상 SMISyncW 프로그램이 가장 좋았습니다.

http://simiy.cafe24.com/

SMISyncW 프로그램으로 SMI 자막을 연 다음, 다른 형식으로 내보내기 해서 SRT로 저장해주시면 됩니다.

 

이렇게 잘 변환된 SRT 파일을 아래 그림처럼 MP4 파일과 함께 두고 프로그램을 다시 실행하면 됩니다.



이때 기존 파일에 이미 자막이 통합되어 있는 경우라면 뒤에 new가 붙은 새로운 MP4 파일이 생성됩니다. 만약 통합되어있지 않던 깨끗한 MP4 파일이라면 파일 이름 변경 없이 기존 파일에 자막만 추가됩니다.



5. 아이폰에 넣기

이렇게 변환된 MP4 파일들은 아이튠즈로 넣어주시면 되는데, 아이튠즈로 넣을 수 있는 파일은 H.264/AVC 코덱밖에 없습니다. 그러니까 MKV를 변환한 파일들은 아이튠즈로 바로 넣을 수 있습니다. 하지만 AVI로 변환한 파일 중 XviD, DivX 코덱들은 일반적으로 아이튠즈로는 못 넣습니다. 일단 640*480 해상도를 넘는 XviD, DivX 코덱의 파일은 아이튠즈로 넣을 수 없구요, 해상도 조건을 충족했다 하더라도 프로필 문제로 거부하는 경우가 많습니다. 따라서 아이튠즈가 거부하는 동영상을 아이폰에 넣으려면 CopyTrans Manager 프로그램을 사용해보세요.

다운로드 페이지
http://www.copytrans.net/download.php

위 페이지로 가셔서 무설치 버전을 받으시면 되겠습니다. 편의를 위해 여기에도 파일을 올려두겠습니다.





사용법은 저도 사용한지 얼마 되지 않아서 잘 모릅니다. 그냥 변환된 MP4 동영상을 아래 그림처럼 드래그해서 넣어주시면 됩니다. 동영상을 넣은 다음 업데이트 버튼을 누르면 동기화가 되면서 동영상 전송이 시작됩니다.





6. 자막 켜는 방법

자막이 있는 동영상은 자동으로 아래 그림처럼 말풍선 모양이 표시됩니다. 그 버튼을 눌러서 자막을 켜주시면 됩니다.








그동안 댓글과 이메일로 오류를 제보해주신 분들께 감사드립니다. 덕분에 꽤 쓸만한 프로그램을 완성하게 되었습니다. 며칠 고생했더니 처음 만들었던 스크립트보단 확실히 많이 발전했음을 느낍니다. 덕분에 평소에 사용하지 않던 MP4Box랑 FFmpeg 옵션도 익히게 되었습니다.

※ 추가

요청하신 분이 계셔서 이 스크립트만 따로 올려드립니다. 아래 파일을 위 변환기 위치에 넣고 실행하시면 H.264 코덱을 사용한 MP4 동영상의 레벨을 3.1로 변경해주고 SRT 자막이 있는 경우 자동으로 합쳐줍니다. 이때 SRT 자막에 문제가 있는 경우 실패한 리스트를 따로 출력해주고 MP4는 3.1로 레벨만 패치해줍니다. 패치된 파일은 기존 파일 뒤에 new가 붙습니다.




이 글을 마지막으로 당분간 블로그 쉬겠습니다. 취직 준비 하려구요. 혹시 저 데려가실 분 계시면 연락 주시구요. ^^ 그런데 가만 생각해보니 취직하고 나서는 바쁘다는 핑계로 블로깅을 자주 못할 것 같습니다. 결국 이러나 저러나 이제는 블로그를 쉬엄쉬엄 해야할 때가 온 것 같습니다.