한땀한땀 확인한 아이폰4에서 재생가능한 MPEG-4 비디오 규격


사용자 삽입 이미지

iPhone4에서 재생가능한 비디오 포맷… (정말?)


컨테이너 포맷: mpeg4(.m4v, .mp4, .mov)
H.264: 720p, 30fps, Main Profile level 3.1 / AAC-LC 오디오 스테레오, 48kHz, 160kbps
MPEG-4: 2.5Mbps, 640x480, 30fps, Simple Profile / AAC-LC 오디오 스테레오, 48kHz, 160kbps
Motion JPEG: 어쩌고 저쩌고 (아오안)

공식적인 아이폰 재생 동영상 규격을 대략 정리하면 위와 같다.
그런데, 아이튠즈로 아이폰에 올릴 수 있는 비디오 검토 결과 에서도 얘기했듯이, 실제론 이 규격과 차이가 있다.
훨씬 복잡한 룰에 의해 결정되는데, 애플답게 홈페이지에는 간략히만 정리해둔 것이다.


1. H.264 비디오와 오디오

H.264 비디오와 오디오 규격은 공개된 스펙과 차이가 없다.

비디오 해상도는 720p 이내면 문제 없다. profile level 역시 3.1 이하면 된다.
혹시 3.2라면 muxing 과정에서 3.1로 속이면 된다.

오디오 역시 AAC-LC, 48kHz, 160kbps 이하의 스테레오 오디오만 인식한다.


2. MPEG-4 비디오

그런데, MPEG-4 비디오로 가면 얘긴 다르다.

최대 압축률(bit rate)은 명시된 바와 동일하다. 2.5Mbps 이하만 재생 가능하다.

그런데, 해상도와 profile은 좀 많이 다르다.
MPEG-4 비디오는 H.264에 비해 옵션이 좀 더 다양한데, 이 중 지원되는 내용이 좀 들쑥날쑥한 것이다.

아이폰4에서의 공식적인 지원 profile은 SP(Simple Profile)이다. 하지만, 실제로는 ASP(Advanced SP)를 일부 지원한다.

ASP와 SP의 차이는 대략 다음과 같다.

Support for "MPEG"-style quantization
Support for interlaced video
Support for B pictures (a.k.a. B Frames)
Quarter Pixel motion compensation (Qpel)
Global motion compensation (GMC)

아이폰에서는 이 중 B picture를 지원한다.
즉, ASP라도 나머지 4가지 옵션을 사용하지 않은 경우는 업로드 및 재생이 가능한 것이다.

사용자 삽입 이미지

한편, 해상도 문제는 좀 미묘하다.

애플에서 공식적으로 밝힌 바[각주:1]와는 달리, 720x404도 재생이 가능했다.
그래서 다양한 해상도에 대해 테스트를 했다.

사용자 삽입 이미지

조커 장인이 한땀한땀 변환해서 확인한… 뭐 그런 거임


이렇게나 다양한 해상도에 대해 업로드 테스트를 해본 결과 업로드 가능한 해상도는 아래 화면과 같았다.

사용자 삽입 이미지

다양한 해상도를 확인한 결과 아이튠즈에서 아이폰4로 업로드 가능한 MPEG-4 비디오의 해상도는 다음과 같다.

- 가로: 720px 이하
- 세로: 576px 이하
- 가로x세로: 307200 이하

덧. 아이폰3GS의 MPEG-4 비디오 재생 해상도는 아이폰4와 동일하다.
그리고, 아이폰3GS의 H.264 비디오 재생 해상도는 720p 이내가 아니라 MPEG-4 비디오 해상도와 같다.

  1. 공식 지원 해상도는 640x480 이내. 앞의 포스트에선 세로 480 이내라고 했는데, 확인 결과 오류다. [본문으로]