iPhone中支持的video文件格式
iPhone OS支持哪些video文件格式?
谢谢
引用iPhone OS技术概述 :
iPhone OS通过Media Player框架(MediaPlayer.framework)提供对全屏video播放的支持。 该框架支持播放带有.mov,.mp4,.m4v和.3gp文件扩展名的电影文件,并使用以下压缩标准:
- H.264video,高达1.5 Mbps,640×480像素,每秒30帧,H.264 Baseline Profile的低复杂度版本,AAC-LCaudio最高可达160 Kbps,48kHz,立体声audio为.m4v。 mp4和.mov文件格式
- H.264video,高达768 Kbps,320×240像素,每秒30帧,基准剖面高达1.3级,AAC-LCaudio高达160 Kbps,48kHz,立体声audio为.m4v,.mp4和.mov文件格式
- MPEG-4video,高达2.5 Mbps,640×480像素,每秒30帧,简单configuration文件,AAC-LCaudio高达160 Kbps,48kHz,立体声audio.m4v,.mp4和.mov文件格式
- 众多的audio格式,包括“audio技术”
有关Media Player框架类的信息,请参阅Media Player框架参考。
简短的回答:H.264 MPEG(MP4)
来自Apple.com的长篇答案:
支持的video格式:H.264video,高达1.5 Mbps,640×480像素,每秒30帧,
H.264 Baseline Profile的低复杂度版本,带有AAC-LCaudio,高达160 Kbps,48kHz,立体声audio,格式为.m4v,.mp4和.mov; H.264video,高达2.5 Mbps,640×480像素,每秒30帧,
基线轮廓达到3.0级,AAC-LCaudio速度高达160 Kbps,48kHz,立体声audio采用.m4v,.mp4和.mov文件格式。 MPEG-4video,高达2.5 Mbps,640×480像素,每秒30帧,
AAC-LCaudio简单configuration文件,最高可达160 Kbps,48kHz,.m4v,.mp4和.mov文件格式的立体声audio
简短的答案是iPhone支持H.264video,高分辨率和AACaudio ,容器格式为.mov
, .mp4
或MPEG Segment .ts
。 MPEG段文件用于HTTP实时stream媒体 。
- 为了最大限度地兼容Android和桌面浏览器,请在
.mp4
容器中使用H.264 + AAC。 - 对于长度超过10分钟的扩展长度的video,您必须在一系列小的
.ts
容器文件(请参阅App Store Review Review规则2.5.7)中使用HTTP Live Streaming,它是H.264 + AAC。
video
在iPhone上, H.264是城里唯一的游戏。 [1]
H.264中有几个不同的function层或“ configuration文件 ”。 所有现代iPhone( 3GS及以上 )都支持高调。 这些configuration文件基本上是用于压缩video的三种不同级别的algorithm“技巧”。 更多的技巧提供更好的压缩,但需要更多的CPU或专用硬件来解码。 这是列出不同configuration文件之间差异的表格。
[1]有趣的是,苹果自己的Facetime 使用了更新的H.265(HEVC)video编解码器 。 然而,现在(2017年8月),没有一个苹果提供的库允许开发人员访问HEVC编解码器。 预计这一点会有所改变 。
在谈论iPhone所支持的video格式时,应该区分硬件能够支持什么,以及在networking上传输时播放的限制(低得多)。
苹果公司提供的关于当前iPhone(SE,6S,6S Plus,7,7 Plus)硬件video支持的唯一数据是它们支持
4K [3840×2160] 30 fpsvideo录制
1080p [1920×1080] 30 fps或60 fps的高清video录制。
显然手机可以播放它可以录制的内容,所以我们可以猜测,30fps的3840×2160和60fps的1920×1080代表了手机的devise极限。 另外,6S Plus和7 Plus的屏幕尺寸是1920×1080。 所以如果你有兴趣在手机上播放,发送更多的像素,然后屏幕可以绘制是没有意义的。
但是,stream式video是另一回事。 由于networking速度较慢且video很大,因此使用比设备理论最大值更低的分辨率,比特率和帧速率是很典型的。
为stream式传输提供build议的最详细文档是TN2224为Apple设备创build和部署HTTP实时stream式媒体的最佳实践 。 该文件中的图3给出了推荐的stream参数表:
这张表从2016年5月起 。
正如您所看到的,Apple推荐使用相对较低的768×432分辨率作为蜂窝networking上stream式传输的最高分辨率。 当然这只是一个build议和YMMV。
audio
问题是关于video,但是video通常有一个或多个音轨。 iPhone支持一些audio格式 ,但是最现代的和最广泛使用的是AAC 。 iPhone 7/7 Plus,6S Plus / 6S,SE均支持8至320 Kbps的 AAC比特率。
容器
audio和video轨道进入一个容器 。 容器的目的是将不同的轨道组合(交错)在一起,存储元数据,并支持search。 iPhone支持
- QuickTime
.mov
, - MP4 ,和
- MPEG-TS 。
.mov
和.mp4
文件格式密切相关 ( .mp4
实际上基于 .mov
),但是.mp4
是一个ISO标准,具有更广泛的支持。
如上所述,您必须对超过10分钟的video使用MPEG-TS。