网站首页 > 博客文章 正文
问题:在做视频编码时,当我们给定编码器一个目标码率的时候,编码器内部是怎么达到码率要求的那?
概况:关于码率控制有两个目的,第一:兼容传输,播放条件。第二:获取更高的视频质量。
码率控制分为两类:CBR:constant bit rate,固定码率。 VBR:variable bit rate 可变码率。
VBR:可变码率是一类码率控制算法的统称,他们的特点是局部的码率可变的,常用的可变码率子类包括如下:
1:abr:average bit rate,控制整个文件的平均码率。
2:crf:constant refactor ,恒定质量。总码率不可控
3:cqp:constatnt qp,恒定量化参数。关闭一切码率控制算法,与crf的区别在于,crf允许x264对每一帧,每一个宏块进行选取qp,从而产生一个恒定的质量。
对应的x264参数如下:
#define X264_RC_CQP 0
#define X264_RC_CRF 1
#define X264_RC_ABR 2
//恒定QP
int i_qp_constant; /* 0 to (51 + 6*(x264_bit_depth-8)). 0=lossless */
int i_qp_min; /* min allowed QP value */
int i_qp_max; /* max allowed QP value */
int i_qp_step; /* max QP step between frames */
//恒定质量
float f_rf_constant; /* 1pass VBR, nominal QP */
float f_rf_constant_max; /* In CRF mode, maximum CRF as caused by VBV */
//平均码率
int i_bitrate;
恒定码率CBR:
并不是每个瞬间码率都相同,也不是每一秒码率相同。固定码率指的是固定信道容量。此时就涉及到了VBV(video buffer verifier)视频缓冲区校验器。vbv模型:编码码率通过一个容量受限的信道传输到解码设备,解码设备在解码前有一个缓存,解码器实时从缓存区读取数据解码,保证即不上溢也不下溢(即拿取速度过快或过慢)。
对应参数如下:最终生成的mp4文件可以看出码率为147kbps.,buffer_size的带下取决于容忍的延迟以及播放器的硬件内存限制。
int i_vbv_max_bitrate;//缓冲区最大填充速度
int i_vbv_buffer_size;//缓冲区大小.
FFmpeg.exe -i q.mp4 -crf 21 -maxrate 150k -bufsize 450k -codec:v:0 libx264 -s 320x240 -r 15 out.mp4
- 上一篇: ffmpeg视频直播编解码流程
- 下一篇: FFmpeg使用小结
猜你喜欢
- 2024-11-28 RTC业务中的视频编解码引擎构建
- 2024-11-28 JavaCV的摄像头实战之五:推流(我的直播梦)
- 2024-11-28 Nginx 直播服务部署(直播 + 分流 + 画面水印)
- 2024-11-28 5 分钟完成 Nginx 直播服务部署(直播 + 分流 + 画面水印)
- 2024-11-28 JavaCV的摄像头实战之六:保存为mp4文件(有声音)
- 2024-11-28 FFmpeg功能命令集合(超详细)
- 2024-11-28 如何将两个视频合并成一个视频?在线教学
- 2024-11-28 淘宝直播技术干货:高清、低延时的实时视频直播技术解密
- 2024-11-28 剪辑视频时发现音画不同步的解决方法
- 2024-11-28 音视频开发之旅(31) -FFMPEG常用命令
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)