iOS RTMP 视频直播开发笔记(4)- 关于 AVVideoProfileLevelKey
in iOS
iOS RTMP 视频直播开发笔记(4)- 关于 AVVideoProfileLevelKey
iOS的Video参数中有一个叫做AVVideoProfileLevelKey的参数,说明太简单,只说了NSString, H.264 only,只好自己Google了。
既然是H.264专用参数,那么参数名很可能是专有名词,查查看。
这货代表了画质级别,从低到高分别是BP、EP、MP、HP:
- BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
- EP-Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;
- MP-Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;
- HP-High profile:高级画质。在main Profile 的基础上增加了8×8内部预测、自定义量化、 无损视频编码和更多的YUV 格式;
实时直播:
- 低清Baseline Level 1.3
- 标清Baseline Level 3
- 半高清Baseline Level 3.1
- 全高清Baseline Level 4.1
存储媒体:
- 低清 Main Level 1.3
- 标清 Main Level 3
- 半高清 Main Level 3.1
- 全高清 Main Level 4.1
高清存储:
- 半高清 High Level 3.1
- 全高清 High Level 4.1
iPad 支持:
- Baseline Level 1-3.1
- Main Level 1-3.1
- High Level 1-3.1
iphone 支持 H.264 视频最高可达 720p,每秒 30 帧,Main Profile level 3.1
来源:H.264的档次和级别
在iOS7.0以上,可以直接选择AVVideoProfileLevelH264BaselineAutoLevel
,之前的版本既然我们是实时直播,那就应该选择Baseline级别的了,根据视频分辨率和比特率,选择编码标准,例如标清视频使用AVVideoProfileLevelH264Baseline30
。
扩展阅读:H264 GOP 扫盲