背景
在对编码器的Context进行反复折腾,设置各种bit_rate, bit_rate_tolerance, rc_max_rate, rc_max_available_vbv_use,发现平均码率似乎能够降低,但是峰值码率总是很高。
后来想了一下如果在质量相同的情况下对一个视频进行编解码,似乎很难将做到编码的码率小于解码的码率。因为H264压缩做得那么好,已经压缩后的H264视频,应该几乎无法进行再次压缩了。
所以换一个思路来进行控制码率,就是控制视频质量,如果允许降低部分视频质量,码率自然可以得到降低。
实验
通过观察一般的视频文件,发现其 q:2-31,于是对编码器的 Context->qmin 及 Context->qmax 进行调整,期望通过修改这两个值实现质量的更改.
qmin 最小量化系数 Q值越小,压缩程度越小,画面越清晰,文件大小越大
qmax 最大量化系数 (该参数对码率也会有影响,但是如果qmax过大,会存在明显间歇性的清晰度下降)
实验结果如下:
| id | gop | rate | inputBps | qmin | qmax | outMinBps | outMaxBps | outAvgBps |
|---|---|---|---|---|---|---|---|---|
| origin | 12 | null | 660K | 2 | 31 |

文章探讨了在编码器Context中调整bit_rate等相关参数未能有效控制峰值码率的问题,提出通过改变qmin和qmax来调整视频质量以降低码率。实验结果显示,设置qmin能降低部分峰值码率,而qmax对平均和峰值码率降低效果显著。未测试qblur和qcompress参数对质量控制的影响。
最低0.47元/天 解锁文章
4129

被折叠的 条评论
为什么被折叠?



