X264代码走读
文章平均质量分 65
X264代码走读
CrystalShaw
向下扎根,向上结果,只要一步一个脚印的走,所经历的日子都不会白白度过的。
展开
-
X264代码走读一(ABR算法码控)
一、码控简介x264码率控制主要分为单次编码(1pass)和多次编码(2pass)两大类,其中单次编码主要分如下三种:CRF(constant Rate Factor):恒定质量编码(运动/纹理复杂场景,码率上升;静态/纹理简单的画面,码率下降) CQP(constant quantization parameter):固定的量化参数,随着视频运动情况,码率会上升和下降。但是码率不可控,...原创 2019-04-12 13:35:44 · 3013 阅读 · 1 评论 -
X264代码走读二(intra_refresh实现)
一、概述1、码率稳定。所有的P帧由于都有一条区域使用帧内预测模式,其他区域运行率失真优化选择最优模式,因此每个P帧的大小波动不会太大。2、降低时延。时延降低主要体现在没有I帧上,I帧通常较大,在网络传输的时候需要将一帧分成很多个包来传输,而在解码端必须等所有的包都到达后才能开始解码,所以I帧是造成视频码流传输时延大的主要原因,也就是说瓶颈在I帧这里。在帧内刷新技术上,虽然P帧比传统GOP结构的P帧要大一些,但总体趋于平稳,并且比I帧要小很多,因此可以快速传完一帧并解码。根本上来讲其实就是类似传输一个大原创 2021-04-29 09:58:35 · 1320 阅读 · 0 评论 -
X264代码走读三(b_annexb参数)
一、简介1)协议说明使能b_annexb参数:X264编码器输出的码流格式符合《T-REC-H.264-201704-I!!PDF-E》Annex B Byte stream format+《T-REC-H.264-201704-I!!PDF-E》NAL unit syntax定义格式 关闭b_annexb参数:X264编码器输出的码流格式符合 “四个字节的长度字段“+《T-REC-H....原创 2019-04-03 17:18:14 · 1391 阅读 · 0 评论 -
X264代码走读四(无法解析的外部符号 x264_encoder_open_155错误)
一、问题现象webrtc升级X264的时候,发现一个挫挫事,就是怎么编译都报错无法解析的外部符号 x264_encoder_open_155。二、问题原因后来发现是自己的X264.h文件没有更新导致。在X264.h的头文件中,会定义build的版本号,在编译x264_encoder_open函数时,会将该版本号加进去。三、解决办法1、若是webrtc调用ffmpeg...原创 2019-03-26 16:26:25 · 2874 阅读 · 0 评论 -
X264代码走读五(编码器扩边)
一、概述 实际测试时,会发现输入编码器的是一组分辨率,但是编码出来的是另外一组分辨率。比如使用NV硬编码时,发现输入编码器的是1280*720的分辨率,但是实际输出的是1280*728的分辨率。这里面是为了模式遍历、模式选择,进行了扩边操作。 因为硬件的内存一般都是64对齐,NV为了硬件解码的方便,按照64倍数对齐的。软件编码会按照标准协议约束进行扩边操作。 下面走读X264代码,查看扩边的具体实现。二、实现1、x264_sps_init确定一个宏块的宽和高...原创 2021-07-13 12:52:36 · 389 阅读 · 0 评论