使用MPEG4编码器时,以编程方式设置qscale(用于恒定质量/ VBR)

时间:2019-02-14 14:56:22

标签: ffmpeg video-encoding

我实现了使用MPEG4编解码器对各种自渲染视频帧进行编码并创建.mp4视频文件的可能性。这很好。现在,我想添加定义质量滑块(0-100%)以参数化恒定质量(VBR)的可能性。我不知道该怎么做。

我发现-qscale似乎可以满足我的要求,所以我在ffmpeg_opt.c中查看了发生的情况并尝试了相同的操作:

config.codecContext->flags |= AV_CODEC_FLAG_QSCALE;
config.codecContext->global_quality = FF_QP2LAMBDA * QualityLvl;

具有:

  • “ config.codecContext”是代码上下文
  • “ FF_QP2LAMBDA”为118
  • “ QualityLvl”是“恒定质量的因子”(根据此,它必须是1到31之间的整数: https://trac.ffmpeg.org/wiki/Encode/MPEG-4

问题是,“ QualityLvl”是否为1,2或30并不重要,它始终会导致文件大小相同且视频文件视觉上相同(?)。我会期望文件大小和质量有所不同吗?!

0 个答案:

没有答案