【发布时间】:2020-09-24 02:16:27
【问题描述】:
我试图确定 h264_nvenc 视频编码器的各种 cq(“恒定质量”)值的最终产品质量。
要通过 ffmpeg 并以目标质量使用 h264_nvenc 编码器,我按照链接锚的最后一段 Nvidia's documentation 中的说明进行操作。
我指定了可变比特率控制模式 (rc=vbr_hq) 和目标质量 (cq=
但是,对于任何 cq 值,它只会输出相同质量的超大尺寸视频。 (使用 cq=1、cq=20 和 cq=51 都输出具有相同哈希的文件。)
根据文档,我还可以指定一个 maxBitRate (maxrate=
如果未指定 maxBitRate,编码器将使用尽可能多的比特来达到目标质量。
但这不是我观察到的行为。我看到编码器使用尽可能多的位,而不是需要的位。生成的视频的总比特率约为 100Mb/s。将源视频翻倍。
如果我确实设置了一个最大速率,它会被编码器观察到。但是,如果我必须为每个 cq 值正确设置比特率,那么 cq 值的意义何在?我只需设置 cq=1 并测试各种比特率,然后这些比特率仅适用于特定视频。
是否有一些警告或输出表明比特率不足以达到我没有看到的目标质量?这至少可以让我暴力破解。
还是我误解了这些设置之间的关系?
【问题讨论】:
-
同样的hash部分肯定很奇怪,能把你用的完整的
ffmpeg命令贴出来吗?
标签: ffmpeg rendering nvidia x264 nvenc