iOS 4.2에서의 자막 문제 해결 삽질기

by BLUEnLIVE | 2010/11/20 04:07

아이폰 동영상 한방에 변환하는 툴: 완벽 버전 by BLUEnLIVE | 2010/11/15 01:21 아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을...


토요일을 꼬박 투자해서 VCi를 수정했다.
인터페이스에 Status Bar를 사용하는 등 디자인에 대한 수정이 좀 있었다.
하지만, 무엇보다 iOS 4.2에서 비정상적으로 나오는 일부 자막 문제를 해결하는 것이 가장 큰 일이었다.

두둥! Status Bar를 활용한 인터페이스의 위용.


이전 버전 VCi에서 변환한 동영상의 자막에 <font> 태그가 사용되면 iOS 4.2에서는 아래와 같이 표시된다.

font 글꼴 돋네… 아니… 돋움이네…


이 문제는 사실 아이폰 쪽의 문제가 전혀 아니다. (그래서 더 골치가 아프다)

MP4Box는 srt 자막을 동영상에 추가시킬 때 TTXT[각주:1]라는 포맷으로 변환한다.
그런데, MP4Box의 변환 기능이 완벽하지 않아서 <font> 태그를 전혀 처리하지 못한다.

이전 버전인 iOS 4.1에서는 <font> 태그를 (억지로) 인식했는데, 이것은 TTXT 포맷의 개념과 상충하는 면이 있다.
TTXT 포맷 내에 글자 스타일을 지정하는 필드가 있는데, 이를 놔두고 다시 글자 스타일을 지정하면 안되는 것이다.

이런 원론적인 문제를 해결하기 위해 TTXT 파일을 읽어들여 <font> 태그를 찾아 글자 스타일에 적용하도록 했다.
물론, <font> 태그 자체는 삭제한다.

이런 방법을 통해, 꼼수가 아닌 정공법으로 iOS 4.2의 자막 기능을 잘 적용할 수 있도록 수정했다.

마지막 줄도 빨강으로 나와야 되는데, 흰색인 건 아이폰 쪽의 버그임


덧1. <font>에서 실제로 처리하는 속성은 color 하나 뿐임. 다른 속성(글자 크기 등)은 아이폰에서 전혀 인식하지 않음

덧2. color 속성은 #000000 포맷은 물론, HTML 4.01 및 X11 color 값을 모두 처리함. 즉, <font color=SteelBlue>도 인식

덧3. TTXT 필드 중에 글꼴의 크기를 지정하는 부분이 있음. 기본값이 18인데, 기본값을 32로 올려봤지만, 크기는 똑같음.
     즉, 아이패드를 위해 뭔가를 더 할 수 있는 방법이 없는 것 같음.

덧4. 이미 만들어진 mp4 파일은 새 버전의 VCi로 다시 인코딩하면 자막을 수정해줌. 물론, 오디오 재인코딩은 불필요

덧5. iOS 4.1에선 해보진 않았지만, 잘 될 것이라 판단됨. 혹시 iOS 4.1 쓰시는 분중에 테스트해주실 분 안계신가요?

덧6. iOS 4.2에서 자막을 정상적으로 출력할 수 있도록 변환해주는 도구는 VCi가 유일한 것 같음!

  1. Apple SimpleText file이라고도 하는, 애플 컴퓨터에서 만든 XML 기반의 자막 포맷 [본문으로]