我通常使用ffmpeg 1通CRF 22对某些电影进行转换,使其转换为720 p,并生成质量最好的最小尺寸,我使用的参数如下:
c:v libx264 -vf format=yuv420p,scale=1280:-2 -crf 22 -maxrate 1400k -bufsize 7000k这样做太多,我发现,除了黑条,降低比特率,颜色主题,高动作场景的数量…等等对比特率的影响太大了,CRF 22确保了每个场景的质量不变,使得在某些场景中的比特率达到了我的最大值1400 K,而一些电影中的场景重置仅为800 K,因此同一部电影的平均比特率达到1100 K左右,对于这些电影,我再次以较低的最大速率(Ex:1100 K)进行编码,以较低的平均码率1000 K获得相同的质量。
现在,我想知道在2次传递中是否有任何自动的方法来获得相同的结果?例如,在CRF 22中执行第一遍,以第一次的平均比特率执行第二次,以降低第一次通过时这些比特率狂暴的质量?
发布于 2022-09-28 02:51:23
我是新手,但我有个主意。
3通过编码可能对你有帮助。
第一次根据分辨率和crf压缩比计算比特率。
ffmpeg -i abcd1.mp4 -an -s 720*404 -vcodec libx264 -crf 18 -pass 1 -f mp4 -y NUL
[libx264 @ 051106c0] kb/s:23.31这个比特率根据crf计算。
将其与最大比特率进行比较,使用较小的比特率进行代码转换。
发布于 2022-09-28 10:19:34
我发现我可以分别做2遍,做第一遍,检查日志中的结果比特率,做第二遍基于平均比特率。
https://stackoverflow.com/questions/73864302
复制相似问题