※ 이 프로그램은 구형입니다.

아래 최종 완성본을 사용해주세요.


http://snoopybox.co.kr/1403


아이폰 4가 갤럭시 S에 비해 불편한 점은 바로 동영상 재생 부분입니다. 갤럭시 S는 AVI나 MKV 파일을 인코딩하지 않아도 바로 재생할 수 있지만, 아이폰 4는 반드시 MP4 컨테이너에 AAC 오디오 코덱을 써야만 재생이 가능합니다. 그래서 일반적으로 아이폰 유저들은 다음팟이나 유마일 등의 인코딩 프로그램을 사용하여 MP4로 변환하실텐데요, 저사양 유저들의 경우 동영상을 인코딩하는데 시간이 꽤 오래 걸리기 때문에 매우 짜증나실 것입니다. 그래서 제가 오늘 특별히 아이폰 4 유저들을 위해 작은 선물을 마련했습니다. 아이폰 4 유저들에게 필수 아이템이 되기를 기대해봅니다. ^^





※ 수정 내역

2010.09.25.
- 오디오 호환성 향상을 위해 eac3to 대신 ffmpeg 도입

2010.09.24.
- SMI 자막이 UTF-8 인코딩인 경우 발생했던 문제 해결

2010.09.23.
- 원본의 오디오가 AAC인 경우 인코딩 없이 바로 MP4로 먹싱하도록 변경
- SMI 자막의 갯수와 상관없이 동일한 이름의 MKV 파일이 있는 경우에만 먹싱하도록 변경
- 출력 파일 확장자가 mkv.mp4로 표시되던 방식을 mp4로 단순화

2010.09.22.
- SMI 자막이 유니코드인 경우 SRT 변환에서 발생하던 오류 해결



먼저 프로그램 소개부터 간단히 하겠습니다. 이걸 프로그램이라고 하기엔 좀 거시기하지만 어쨌든 저는 이거 만드는데 하루종일 걸렸습니다. 스크립트가 짧으니까 금방 만든거 아니냐고 생각하실지도 모르겠는데, 여기에 사용된 툴은 대부분 평소에 사용하지 않던 것들이라서 사용법을 익혀가며 만들었기 때문에 시간이 많이 걸렸습니다. 특히 자막 자동 통합과 FPS를 자동으로 인식해서 MP4에 적용하기 위해 mkvinfo를 사용하는 작업에 많은 시간을 투자했습니다. 제가 프로그래밍 언어를 조금이라도 알았다면 이리 고생하지는 않았을 텐데, 단순히 윈도우 커맨드로 다 해결하려니 참 애로사항이 많더군요.


※ 사용된 프로그램

1. MKVtoolnix 4.3.0
2. FFmpeg version SVN-r25168
3. Nero AAC Codec 1.5.4
4. MP4Box 0.4.6
5. LibIconv for Windows 1.92
6. smi2srt converter (버전 미상, 러시아 제작자의 원본을 개인이 개조한 것으로 보임)

작업이 진행되는 과정을 설명드리겠습니다.

1. SMI 자막이 있는 경우 UTF-8 인코딩의 SRT로 변환한다.
2. MKV 파일에서 비디오와 오디오를 분리 추출한다.
3. FFmpeg, NeroAacEnc를 사용하여 오디오 파일을 2채널의 AAC로 인코딩 한다.
   (이때 원본이 AAC라면 인코딩하지 않고 그냥 넘어간다.)
4. MP4Box로 .h264 파일과 AAC 파일을 합치면서 AVC 레벨을 3.1로 변경한다.
   이때 동영상과 같은 이름의 자막이 존재하는 경우 MP4에 같이 합쳐준다.

동영상 인코딩에 대해 조금 아시는 분들은 위 과정을 보면 대충 이해가 되실 것입니다. 이 프로그램은 동영상을 인코딩 하지 않습니다. 즉 원본 MKV 동영상과 동일한 품질을 가진 MP4 파일로 단순히 변환만 해주는 것입니다. 다만 오디오 파일의 경우 어쩔 수 없이 아이폰 4가 요구하는 스펙인 AAC로 변환을 합니다. 듀얼코어 정도의 사양이라면 다음팟인코더나 유마일로 720p 드라마 한편을 인코딩하는데 아마 수십분 정도 걸릴 텐데요, 이 프로그램은 인코딩을 하는게 아니라 단순히 변환만 하기 때문에 5분 안에 끝납니다. 가장 시간이 많이 걸리는 작업은 오디오를 변환하는 작업입니다. 나머지 작업은 전부 단순 파일 복사 과정이기 때문에 하드디스크 속도만 빠르다면 광속으로 끝낼 수 있습니다.

제가 처음에는 위 과정을 전부 수동으로 하도록 가이드를 작성했습니다. 그런데 손이 너무 많이 가더군요. 물론 그래도 이렇게 변환하는게 인코딩하는 것보단 훨씬 빠르지만, 어쨌든 초보 분들이 따라하기엔 너무 복잡하게 보일 것 같았습니다. 그래서 작성했던 가이드를 완전히 삭제하고 GUI 대신 CLI로 한방에 처리하는 방법을 연구한 끝에 드디어 이놈을 완성하게 되었습니다.



프로그램 사용 방법

사용법은 간단합니다. 위 파일을 압축 푼 다음 MP4 변환기 폴더 안에 MKV 파일을 넣고 MP4로 변환하기.cmd 파일을 실행하면 됩니다. 그러면 한방에 알아서 모든 작업을 다 해줍니다. 게다가 여러개의 MKV 파일을 한꺼번에 넣어도 됩니다. 아래 그림을 보시죠.




저렇게 5개의 MKV 파일을 모아놓고 MP4로 변환하기.cmd 파일을 실행하면 아래 그림처럼 됩니다.




만약 SMI 자막이 있다면 자막도 같이 영상에 합쳐줍니다. 이때 자막이 있는 동영상과 없는 동영상이 섞여있어도 관계가 없습니다. 동일한 이름의 동영상 파일이 있는 자막들만 알아서 합쳐줍니다. 예를 들어 아래와 같은 상황이라면 1,3,5번 동영상에만 자막이 합쳐집니다. 기존 방식에서 개선된 점입니다.




원본 MKV 파일은 삭제하지 않기 때문에 설령 오류가 나서 실패한다 하더라도 아무런 문제가 없습니다. 제가 스크립트를 만들면서 예상할 수 있는 오류는 딱 한가지 밖에 없습니다. 메인 화면에도 나와있지만, 비디오는 첫번째 트랙이어야 하고 오디오는 두번째 트랙이어야 합니다. 일반적으로 MKV 동영상을 인코딩하는 분들은 실수하지 않는 이상 보통 이렇게 합니다. 당연히 비디오를 첫번째 트랙에 넣고 오디오를 두번째 트랙에 넣습니다. 하지만 만약 그렇지 않은 동영상이 있다면 위 프로그램으로는 실패하게 됩니다. 이 부분만 주의하시면 됩니다. 물론 실패해도 원본 MKV 파일은 삭제되지 않으니까 실패에 대해 걱정하지 않으셔도 됩니다.

※ 제 컴퓨터에서 720p 1시간짜리 드라마 한편 변환하는데 3분이 채 걸리지 않습니다.


그레이 아나토미 40분짜린데, 1분 30초 안에 변환이 끝나버렸습니다.





1080p는 이걸로 변환해도 아이튠즈에서 거부합니다. 제 생각엔 비트레이트가 너무 높아서 거부하는 것 같은데 탈옥이나 다른 툴을 쓰지 않고도 1080p를 넣을 수 있는지는 잘 모르겠습니다. 하지만 어차피 아이폰 4의 해상도가 960*640이기 때문에 1080p를 그대로 넣는 것은 아무런 의미가 없다고 생각합니다. 720p도 사실 해상도를 넘어가는 스펙이긴 하지만, 아이폰 4가 재생을 지원하는 스펙이기 때문에 변환 속도도 빠르고 한방에 모든 작업이 자동으로 진행되는 이 프로그램을 사용하는 편이 다음팟인코더나 유마일로 인코딩 하는 것 보다 훨씬 낫다고 생각합니다.


제가 많은 동영상을 테스트해보진 않았지만 확실히 가장 오래 걸리는 작업은 오디오 변환입니다. 하지만 기존에 사용하던 eac3to를 버리고 FFmpeg + NeroAacEnc 조합을 선택하니 오히려 작업 시간이 더 빨라졌습니다.

아래는 제가 MeGUI 기본 옵션으로 급조한 MKV 파일을 다시 MP4로 변환한 것입니다. 인코딩 할때는 일부러 High@L5.1로 했으나 변환된 MP4 파일은 보시다시피 High@L3.1입니다.



혹시 변환된 MP4 파일이 3.1로 잘 패치되었는지 확인해보고 싶다면 미디어인포를 사용해보세요.
http://mediainfo.sourceforge.net/ko



자막을 표시하려면 아이폰을 가로로 두었을 때 재생바 좌측에 있는 말풍선 모양을 클릭하시면 됩니다.



신고

  1. 이전 댓글 더보기
  2. tora
    2010.10.10 13:01 신고

    프로그램 사용시에 원본이 삭제되지는 않는다고 하셨는데 혹시 원본파일에 손상이 갈수도 있나요??

  3. misterio
    2010.10.10 22:57 신고

    1080이 안된다니 안타깝네요~

  4. Bombom
    2010.10.16 21:15 신고

    먼저 진짜 대단하시다고 생각해요 ㅋㅋㅋ어떻게 이런프로그램을!!
    근데 이상한게 컴퓨터에선 정상이던 자막이 변환하고 아이폰에 넣으면 자막 한줄나오고 몇분안나오고 그러네요;; 자막이 거의안나와요
    그리고 다른파일은 재생구간을 못바꿔요. 34분으로 돌려놓으면 다시 처음부터 재생시키네요;;;

  5. kekero
    2010.10.31 01:28 신고

    근데 avi 파일은 안되는건가여?

  6. 뭘까?;;
    2010.11.09 17:33 신고

    아..ㅡㅡ;;; 나는 왜! 변환기폴더가 안뜨는건가 윽;;;

  7. kkk
    2010.11.12 23:00 신고

    변환기폴더가 안떠요 어떻게 해야 폴더가 뜨나요?;;; 알려주세요 플리즈

  8. zzzz
    2010.12.02 00:06 신고

    mkv파일을 폴더에 넣고 변환하기 누르면 순식간에 사라지고 아무것도 안되네요

  9. illsam
    2011.01.12 13:33 신고

    흠.. 지금 글을 올려도 보실 수 있으려나??
    인코딩 아주 잘되고 훌륭합니다.

    혹시 전 지금 아이패드를 쓰는데요.
    영상 사이즈를 1280x720 사이즈로도 변환이 가능할까요??

  10. kurkuru
    2011.04.05 18:27 신고

    아주 예전부터 스누피님의 윈도우 XP 버전을 사용했었는데...
    정말 대단하십니다.
    저도 나름 방법을 알아내고서 한스텝한스텝 수동으로 했었는데...
    이걸 자동으로 직접만들어 주시다니.....
    정말 사랑합니다. 스누피님.....^_^;;;

  11. 사무엘
    2011.11.08 19:34 신고

    지금 받아서 코딩중인데 결과는 모르겠어요.ㅎㅎ
    저는 아이패드2 유저인데 IOS5로 업뎃 되면서 1080p지원한다기에,
    MP4열심히 코딩 중인데, 어찌될지 궁금하네요.ㅎㅎ
    무튼 감사합니다^^

  12. 잠자는여동생
    2012.03.26 12:27 신고

    음.. 오래된글이지만 전 지금 av 플레이어 쓰고 맨날 릴 봐가면서 다운받아보고 그러는데.
    이걸로 MKV도 어느정도 해결할수있겠네요 ㅎㅎ
    유용한정보 감사드립니다 ㅋ

  13. 이믹키
    2012.04.24 08:59 신고

    우와. 진짜 님 대단하세요! 님덕분에 괜히 mkv받았다고 짜증냈다가 한번에 해결됐어요.ㅎㅎ
    감사합니다. 정말 고마워요~

  14. BlogIcon 변하귀
    2013.04.06 13:32 신고

    진짜 감사드립니다ㅠㅠ 인코딩하면서 용량 문제 때문에 엄청난 스릴감으로 복닥복닥했습니다w;;
    근데 mp4 인코딩 끝나고 뒤에 iso 생성하는 건 뭐죠? 그거 만들다가 결국 용량 딸려서 종료되었습니다만 mp4는 무사했습니다ww
    어쨌든 이런 좋은 프로그램 만들어 주셔서 감사합니다 수고하셨습니다ㅠㅠㅠ 덕분에 신역홍앵편 통짜로 아이폰에 구겨 넣었습니다^p^(<퍽) 감사합니다!

  15. 덕ㄷ쿠
    2013.08.16 18:35 신고

    영상을 만들고 변환하고나니 소리 싱크가 안맞는건 어떻게해야하나요?

  16. 2rsa
    2014.11.01 23:01 신고

    와 진짜 대단하신.. 댓글을 안남길수가 없네요 왠진 모르겠지만 다음팟인코더 mkv를 mp4로 변환하는데 몇분 인코딩하는데 자꾸 튕기더라구요
    그런데 이런 프로그램을 만드셨다니 진짜 감사할 따름이네요

  17. 개똥이얍
    2015.05.07 23:58 신고

    지금 다운로드 했는데 잘 될지 봐야겠네요
    아무튼 그냥 갈라다가 너무 좋은 정보인것 같아
    쓰고 가는게 매너인 것 같아 이렇게 달고 갑니다~^^

  18. 얄랴얄랴
    2015.06.21 17:29 신고

    감사합니다!! 덕분에 쉽게 변환했네요. 대단하십니다

  19. 초코칩
    2015.10.16 12:40 신고

    감사합니다!! 정말 편리하게 변환 성공했어요!!


  20. 2015.10.20 00:23

    비밀댓글입니다

  21. a
    2016.11.19 16:05 신고

    제가 다음 팟 인코더로 mkv 파일을 mp4 파일로 변환하면, 화면이 검게 나오네요.
    그런데 snoopybox님이 만드신 프로그램으로 하니까 파일 인코딩이 매우 빠르고, 화면도 잘 나오네요.
    정말로 감사합니다.^^ 굉장하시네요.