关于FFmpeg使用intel核显编码的讨论?

以前我只有NVIDIA独显,想使用FFmpeg硬件编码的时候不能用-crf控制码率
搜到的资料是NVIDIA不支持这个参数,只能用平均码率
但是用命令行控制平均码率太麻烦了
所以我很长一段时间都用shotcut先libx265软编码一段短片,得到平均码率之后在用nevc_nvenc编码

最近新换了cpu有核显,在shotcut里直接用nevc_qsv时,好像可以用crf自动控制码率,测试了几个素材,cpu软编码和核显编码之后得到的码率都差不多

最后问题来了,因为有些素材短,我就想直接FFmpeg命令行
ffmpeg -y -i %1 -c:v hevc_qsv -vf format=yuv420p -crf 26 -c:a aac -ar 44100 -b:a 128K -strict -2 %shuchu%
转换后得到的码率又偏高

搜了一圈后改为
ffmpeg -y -i %1 -c:v hevc_qsv -vf format=yuv420p -global_quality 26 -c:a aac -ar 44100 -b:a 128K -strict -2 %shuchu%
这次转换的码率符合质量了

shotcut不是基于FFmpeg吗,为什么shotcut里能用-crf控制,FFmpeg里不能用?

有没有懂哥来补充点其他资料?谢谢

你所认识的crf 只是实现 constant-quality(恒定质量) 的一种常见实现方式的参数名称
它在 nvenc 里面对应的实现方式的参数名称是 cq
在 qsv 里面对应的实现方式是 ICQ / LA_ICQ,参数名称为 global_quality

同为质量控制的参数还有 QP、CQP

所以可能是 shotcut 在后台修正了你的命令

好的,谢谢

我不搞编码但知道intel是除了 ffmpeg的文档 外,有额外自己维护的一份如何优化编码参数的文档的

如果你想更深入理解qsv可以把doc目录下的其它文档也过一遍。

地址收藏了,谢谢

intel核显编码有点东西啊,以前用1050ti的时候核显编码和uhd730速度差不多,因为参数差不多觉得是正常的

刚淘个2060s矿卡,性能参数是1050ti的3倍,同质量编码(无滤镜),测试素材53分钟,uhd730导出是9分20多秒,2060s是9分,几乎没什么差别,软件是shotcut

难道是我没用对?

asic编码用的是专用单元,和你说的显卡性能没有关系