in iOS

iOS RTMP 视频直播开发笔记(4)- 关于 AVVideoProfileLevelKey

iOS的Video参数中有一个叫做AVVideoProfileLevelKey的参数,说明太简单,只说了NSString, H.264 only,只好自己Google了。

既然是H.264专用参数,那么参数名很可能是专有名词,查查看。

这货代表了画质级别,从低到高分别是BP、EP、MP、HP:

  1. BP-Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
  2. EP-Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;
  3. MP-Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;
  4. 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 扫盲

原创文章,采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
转载请注明:转载自 Tony's blog,原文网址:https://itony.me/810.html
  • alt

    楼主的https://github.com/tony7day 打不开

    • 感谢提醒,已更新