2010년 11월 15일 월요일

아이폰 동영상 한방에 변환하는 툴: 완벽 버전

새 버전이 공개되었습니다. 새 버전을 이용해주시기 바랍니다.

아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을 보기 위해서는 재압축을 해야 된다는 것이다.
이 점은 이미 없어져버린 진정한 스마트폰 없냐부터, 곧 없어질 갤럭시[footnote]벌써 갤럭시2에 대한 언플이 솔솔 들려온다. 갤S도 금방 버려질 거란 뜻. 하지만, 아이폰 3GS는 여전히 지원된다.[/footnote]까지 계속 애플 공격의 소재로 사용된다.

실제로 아이폰에서 동영상을 볼 수 있도록 재압축해주는 프로그램을 이용해보면 몇 시간씩 걸리는 게 사실이다.

하지만, 조금만 생각해보면, 굳이 이런 프로그램을 이용해서 긴 시간을 낭비할 필요가 없다.
동영상 파일은 비디오+오디오+자막으로 되어있고, 재압축 소요 시간의 대부분은 비디오(+자막) 재압축에 소요된다.
이 중 비디오 부분은 재압축할 필요가 없는데 굳이 재압축되는 것이 일반적이다.
PC에 저장된 동영상 중 비디오 스트림은 거의 H.264 또는 MPEG-4 Visual로 되어있기 때문이다.
(MPEG-4 Visual이라는 표준을 구현한 코덱이 바로 DivX, XviD 등등임)

iPhone 4에서 재생 가능한 동영상. apple.com에서 발췌.


이러한 점을 이용하면 큰 시간을 낭비하지 않고 아이폰에서 재생되는 동영상을 만들 수 있다.
즉, 오디오 부분만 쏙 빼서 다시 AAC로 인코딩해서 .mp4 컨테이너에 저장하면 되는 것이다.
또한, 자막은 smi 파일을 srt 포맷으로 변환하면 된다.

이 아이디어를 최초로 구현한 프로그램이 @snoopybox 님의 아이폰 4 AVI, MKV 동영상을 MP4로 한방에 변환하기이다.
이 프로그램은 순전히 공개 S/W만 이용해서 이런 작업을 한방에 변환하는데, 프로그램은 무려 배치파일[footnote]일부 기능은 간단한 프로그램을 통해 별도로 구현됨.[/footnote]로 작성되었다.

하지만, 그 프로그램은 배치파일이라는 태생적 약점으로 기능의 한계[footnote]비디오/오디오 딜레이 보정 기능이 없고, 변환할 수 있는 동영상이 제한됨. 또한, 자막 처리에 많은 한계가 있음.[/footnote]가 좀 있었다.

이제, 거의 모든 동영상을 손쉽게 아이폰 용으로 변환할 수 있는 툴을 공개한다.
이 프로그램은 avi, mkv, ogm, flv, mp4 포맷의 동영상을 아이폰에서 재생가능한 포맷으로 변환해준다.
변환시 싱크 오류를 최대한 보정하며, 자막 역시 거의 완벽하게 변환해준다.

파일을 추가할 땐 드래그 앤 드롭 기능을 사용하면 됨


이 프로그램의 특성은 아래와 같다.

1. 소스 파일의 비디오 정보를 확인해서 아이폰에서의 재생 가능 여부를 최대한 확인함

2. 원본 파일의 딜레이 정보를 확인해서 싱크를 완벽히 맞춤

3. 원본과 변환된 동영상의 길이 정보를 확인해서 싱크를 추가로 보정한 버전을 별도 생성

4. smi 자막을 정말 완벽히 변환함

자막을 굳이 비디오에 끼워넣고 재인코딩할 필요는 전혀 없음


   거의 모든 자막 변환 프로그램은 유니코드 포맷의 smi/srt 파일을 제대로 처리하지 못한다.

   사실, smi 파일 중에 유니코드 포맷도 있으며, 아이폰에서는 UTF-8 포맷의 srt 파일을 지원한다.
   즉, 유니코드에서만 사용할 수 있는 문자를 두 포맷 모두 지원하는 것이다.
   하지만, SubtitleWorkshop을 비롯한 자막 변환 프로그램들은 단지 ANSI 버전의 srt만 지원한다.
   심지어 그 프로그램은 자막에 적용된 글자 속성들도 모두 파괴해버린다.

   하지만, 본 프로그램은 ANSI/유니코드 BOM/UTF-8 포맷 smi를 완벽히 인식하고, 유니코드 UTF-8 srt로 변환한다.

   또한, smi 파일에 여러 언어의 자막이 들어있는 경우 모든 자막을 함께 변환한다.

2개국어 동시 지원


5. mkv, avi는 물론 ogm, flv 포맷까지 지원함.
   요즘은 보기 드문 ogm은 물론, 유튜브에서 다운받은 flv까지 변환함으로써 거의 모든 동영상을 지원한다.
   심하게 말하면 지원되지 않는 동영상은 wmv 계열 뿐이다.

6. 같은 파일명의 오디오 파일이 있으면 파일 내부에 들어있는 오디오 대신 그 오디오를 사용함
   (여러 개의 오디오 파일이 있으면 aac → wav → dts → ac3 → mp3 → mp2 순으로 적용)

7. 같은 파일명의 자막 파일이 있으면 그 자막 파일을 사용함.
   (파일 내에 들어있는 자막은 사용하지 않음)


본 프로그램은 아래 링크를 클릭하면 다운받을 수 있다.



덧1. 앞에 간략히 얘기했듯이 이 프로그램은 많은(정확히는 7 종의) 프리웨어를 사용하는 프론트엔드이다.
ffmpeg, MKV Extract, Media Info, MP4Box, FLV Extract, Nero AAC Encoder, OGM Demuxer를 사용한다.

이 중 FLV Extract는 .NET Framework 2.0 환경에서 개발된 프로그램이다.


덧2. 샘플에 사용된 동영상은 1963년의 걸작 007 영화 [위기일발]이다.
예전에 리뷰 쓰면서 립해둔 것을 지우지 않고 재활용했다. 물론, 개인 용도로 쓸 뿐 재배포는 결코 하지 않는다.

댓글 30개:

  1. 커맨드 라인으로도 가능하게 해주시면 참 좋을텐데 말이죠.. [emo=055]

    답글삭제
  2. @zasfe - 2010/11/15 07:35
    인터페이스를 구현하는 게 어려워서 패스요. ^^;

    답글삭제
  3. @희주 - 2010/11/15 09:08
    고맙습니다. 잘 쓰세요. ^^;

    답글삭제
  4. 감사합니다. 만들려 했던 프로그램에서 watchfolder 기능 빼고는 똑같네요. watchfolder 기능이 추가된다면 좋을거 같습니다.

    답글삭제
  5. Win7 인데요.. mp4box 가 자꾸 오류 발생하네요..

    답글삭제
  6. 아이폰 3gs도 사용 가능 한가요??

    답글삭제
  7. 님 짱입니다.

    저장위치 지정도 만들어주셨스면...

    아무튼 잘 쓸께요.^^

    아참.. 그리고 인코딩하면

    VCI 파일네임

    VCI-DC 파일네임

    이렇게 두개파일이 생기네요??

    답글삭제
  8. 찾고있었는데 감사합니다 ^^ 잘쓰겠습니다

    답글삭제
  9. @xeroplus - 2010/11/15 13:58
    watchfolder 기능은 별 필요 없을 것 같아 애초에 고려도 하지 않았습니다.

    답글삭제
  10. @mahnee - 2010/11/15 14:30
    mp4box가 W7과 충돌이 있는지는 모르겠습니다.

    이 프로그램은 단순히 호출할 뿐이라 오류에 대해선 처리할 수 없네요.

    답글삭제
  11. @토네이동 - 2010/11/15 14:34
    네. 640x480 이하의 해상도라면 문제 없습니다.

    답글삭제
  12. @토런 - 2010/11/15 15:55
    두 개가 생성되면 둘 중 싱크가 잘 맞는 쪽을 사용하시면 됩니다. 최대한 싱크를 맞추기 위해 이리저리 노력한 흔적입니다.

    답글삭제
  13. @시껌디 - 2010/11/15 17:24
    잘 쓰세요~

    답글삭제
  14. 영어/한국어 통합자막 smi 파일과 함께 작업하여 생성된 mp4 파일에서 자막 종류가 둘다 한국어로 표시되는 결과를 얻었습니다. smi 파일을 확인해 보아도 encc는 영어로, krcc는 한국어로 잘 명시가 되어 있고요.

    어떤 경우에 이러한 문제가 발생 할까요?

    답글삭제
  15. @재구 - 2010/11/15 21:30
    헉. 대문자 E만 영어로 인식하게 해뒀는데, 소문자 e였던 것 같네요. 수정중입니다. ㅎㅎ

    답글삭제
  16. 아이패드도 가능한가요? 아이패드에서 쓸수있는 이런 프로그램을 원했는데..아쉽게도 아이폰용이네요 ㅠㅠ

    답글삭제
  17. @kkochi - 2010/11/15 22:32
    물론 재생 가능합니다.

    답글삭제
  18. 그럼 720p 화질의 tp도 간단한 변환으로 재생이 가능하단 말씀?! ㅠㅠ;; 님은 정말... 神임 흐얿 ㅠㅠ;;

    답글삭제
  19. @은근낢 - 2010/11/16 00:08
    tp파일은 지원하지 않습니다.

    답글삭제
  20. @토런 - 2010/11/15 15:55
    아하~ 저도 궁금했었는데 그런 심오한 뜻이 담겨 있었군요 ㅎㅎ 고맙습니다 ^^

    답글삭제
  21. 저는 왜 파일변환후에 음성이 안나올까요?

    컴퓨터에서도 안나와서

    아이폰에 넣어봤는대도 음성이 안나오네요..

    답글삭제
  22. @강동윤 - 2010/11/17 19:07
    그것만으로는 알 수가 없네요.

    답글삭제
  23. 자막이 안나와요~

    답글삭제
  24. 저도 자막이 합쳐지지가 않네요 ㅠㅠ

    답글삭제
  25. 아 댓글 읽어보니 곰플레이어라서 확인 안되는거였군요; 플레이어 추천 하나만 해주세요!

    답글삭제
  26. @저도 - 2010/11/24 20:10
    저는 다음 팟플레이어를 사용합니다.

    전체적인 기능이 제일 나은 것 같습니다.

    답글삭제
  27. 플레이어 추천 감사드립니다. ^^

    질문 하나만 더 할게요~ 혹시 에어비디오 사용하시나요?

    제공해주신 프로그램으로 mp4생성하니 에어비디오에서는 자막이 안보이는 경우가 발생해서요;

    혹시 해결책 있으시면 말씀 부탁드릴게요~~

    답글삭제
  28. @저도 - 2010/11/25 10:30
    에어비디오는 안 써봤습니다.

    나중에 한번 테스트해보겠습니다.

    답글삭제
  29. 소문 듣고 왔습니다... 정말이지 감사하구요... 잘 쓰겠씁니다^^

    답글삭제