H264 中 Profile
- 定义: H264 标准中规定了 多种档次
Profile
, 每种Profile
都规定了一个算法特征和限制的子集,任何遵守某个Profile
的解码器都应该支持与其相应的子集。 - 维基百科中解释:
The standard defines several sets of capabilities, which are referred to as profiles, targeting specific classes of applications. These are declared using a profile code (profile_idc) and sometimes a set of additional constraints applied in the encoder. The profile code and indicated constraints allow a decoder to recognize the requirements for decoding that specific bitstream. (And in many system environments, only one or two profiles are allowed to be used, so decoders in those environments do not need to be concerned with recognizing the less commonly used profiles.) By far the most commonly used profile is the High Profile. - Profile 表
-
非可伸缩 2D 视频应用:
-
对于摄像机、编辑和专业应用程序,该标准包含四个额外的只包含帧内的
Profile
,它们被定义为其他相应Profile
的简单子集。这些大多是专业应用(例如相机和编辑系统):
-
SVC(
Scalable Video Coding
)扩展
-
MVC(
Multiview Video Coding
) 扩展
-
MFC(
Multi-resolution Frame-Compatible
) 扩展
-
3D-AVC 扩展
- 特定 Profile 中特性支持表
Base
、Main
和Extended
之间编码功能差距
x264中 Profile 使用
- x264 中支持 六种
Profile
设置,在base.h
文件中声明。
- 解析外部设置的
Profile
的字符串匹配到x264
内部对应的枚举,调用函数profile_string_to_int()
来完成。
- 具体的
Profile
应用的 API 通过函数x264_param_apply_profile()
来完成,可以看到,如没有特别指定Profie
,默认的就是High
级别。可以看到 x264 中设置Profile
为Base
、Main
、High
之间的编码参数差距。
VideoToolBox中 Profile 使用
- 通过 查看
FFmpeg
源码,可以看到VideoToolBox
中关于 H264 标准的Profile
的解释;和Level
绑定应用。
参考
- 维基百科
- x264编码参数详细介绍:profile、preset、tune、level、码控