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

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

아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을 보기 위해서는 재압축을 해야 된다는 것이다.
이 점은 이미 없어져버린 진정한 스마트폰 없냐부터, 곧 없어질 갤럭시[각주:1]까지 계속 애플 공격의 소재로 사용된다.

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

하지만, 조금만 생각해보면, 굳이 이런 프로그램을 이용해서 긴 시간을 낭비할 필요가 없다.
동영상 파일은 비디오+오디오+자막으로 되어있고, 재압축 소요 시간의 대부분은 비디오(+자막) 재압축에 소요된다.
이 중 비디오 부분은 재압축할 필요가 없는데 굳이 재압축되는 것이 일반적이다.
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만 이용해서 이런 작업을 한방에 변환하는데, 프로그램은 무려 배치파일[각주:2]로 작성되었다.

하지만, 그 프로그램은 배치파일이라는 태생적 약점으로 기능의 한계[각주:3]가 좀 있었다.

이제, 거의 모든 동영상을 손쉽게 아이폰 용으로 변환할 수 있는 툴을 공개한다.
이 프로그램은 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 영화 [위기일발]이다.
예전에 리뷰 쓰면서 립해둔 것을 지우지 않고 재활용했다. 물론, 개인 용도로 쓸 뿐 재배포는 결코 하지 않는다.

  1. 벌써 갤럭시2에 대한 언플이 솔솔 들려온다. 갤S도 금방 버려질 거란 뜻. 하지만, 아이폰 3GS는 여전히 지원된다. [본문으로]
  2. 일부 기능은 간단한 프로그램을 통해 별도로 구현됨. [본문으로]
  3. 비디오/오디오 딜레이 보정 기능이 없고, 변환할 수 있는 동영상이 제한됨. 또한, 자막 처리에 많은 한계가 있음. [본문으로]