使用 ffmpeg 为 h.26x 视频的各个帧提取量化参数

Extract Quantization Parameter for individual frames of h.26x video using ffmpeg

如果我执行这样的命令:

$ ffmpeg -i video.mp4 -qphist -vf codecview=qp=true video_qp.mp4

我得到了跨帧类型的平均 QP 直方图,如下所示:

[libx264 @ 0x7f8386803c00] frame I:5     Avg QP:21.65  size:  5960
[libx264 @ 0x7f8386803c00] frame P:172   Avg QP:23.90  size:  3449
[libx264 @ 0x7f8386803c00] frame B:204   Avg QP:26.77  size:  1168

我想为视频中的每个单独帧提取 QP,而不是获取总体平均值。

有没有办法使用(甚至实际上没有)ffmpeg 或相关工具(例如 ffprobe)来做到这一点?

看起来 ffmpeg 不会开箱即用。

HOWEVER:这里的这个工具:https://github.com/slhck/ffmpeg-debug-qp 非常有用。

您可以请求打印每个宏块:

./ffmpeg_debug_qp video.mp4 2> qp-values.txt

然后转换成更友好的json:

./parse-qp-output.py -o qp-values.json -f qp-values.txt

或求每帧的平均值:

./parse-qp-output.py -o qp-values-avg.json -a -f qp-values.txt