FFmpeg 视频编解码基本概念
发布时间
阅读量:
阅读量
SPS
H264 Profile
对视频压缩特性的描述,Profile越高,就说明采用了越高级的压缩特性
-
H264 Profile(一)

-
H264 Profile(二)

H264 Level
Level 是对视频的描述,Level 越高,视频的码率,分辨率、fps(帧率)越高

SPS重要参数
-
分辨率相关

宏块默认 16 * 16 -
帧相关
- 帧数 :log2_max_frame_num_minus4
- 参考帧数:max_num_ref_frames
- 显示帧序号:pic_order_cnt_type
-
帧率的计算
framerate = (float)(sps-vui.vui_time_scale)/(float)(sps->vui.vui_num_units_in_tick)/2
PPS

Slice Header
- 帧类型
- GOP中解码帧序号
- 预测权重
- 滤波
H264分析工具
- Elecard Stream Eye(付费)
- CodecVisa(付费)
- VideoEye雷神开发的功能
- H.264分析器
参考资料

H264编码
- 打开编码器
- 转换NV12到YUV420P
- 准备编码数据 AVFrame
- H264编码
H264 参数详解
- 预设值
- 帧相关参数
- 码流的控制
- 编码分析
- 输出
预设值
- preset fast/slow :快速/慢速编码,编码快质量会降低,编码慢质量较好
- tune :编码质量,电影、动画、图片
帧相关的参数
- keyint:GOP_SIZE,默认250组成一个gop
- min-keyint:在一组帧中最小插入I的间隔,场景切换时当图像有很明显变化时自动插入 I 帧
- scenecut :设置临界值,根据临界值判断是否有场景切换
- bframes:B帧数量,一般为 3 帧
- ref:参考帧数量,解码器的缓冲区可存放的参考帧数量
- no-deblock:不使用滤波器去块平滑处理。解码时会进行预测,预测结果解码出来的数据会有块(马赛克),就需要进行去块化
- deblock:使用去块话滤波器平滑处理
- no-cabac:是否使用cabac 进行熵编码,使用cabac 编码压缩比会更高
流控
- Qp:设置量化器参数,关注量化器,比crf码流大且与bitrate/crf互斥
- Crf:关注视频质量,默认是23, 数越低越好
- Bitrate:关注平均码流,无法控制质量,码流越大,视频质量越好
- Qmin:最小量化器,默认10
- Qmax:最大量化器,默认51
- Qpstep:两帧之间量化器的最大变化,默认为4
编码分析
- Partitions:宏块划分p8 8、b8 8、i8 8、i4 4
- Me运动评估算法:砖石算法、六边型算法那
输出
- SAR 设置输出的宽高比
- fps 帧率
- level
参考资料

全部评论 (0)
还没有任何评论哟~
