使用 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
如果我执行这样的命令:
$ 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