Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ffmpeg为h.26x视频的各个帧提取量化参数_Ffmpeg_H.264_Ffprobe - Fatal编程技术网

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

使用ffmpeg为h.26x视频的各个帧提取量化参数,ffmpeg,h.264,ffprobe,Ffmpeg,H.264,Ffprobe,如果我执行这样的命令: $ 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 @ 0x7f

如果我执行这样的命令:

$ 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或相关工具(如ffprobe)?

看起来ffmpeg并不是现成的

然而:此处的工具:非常有用

您可以请求每宏块打印输出:

./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-debug:v qp-i input-an-v 48-f null-
,确实如此。答案中的工具很好地解析了输出,并很好地呈现了输出。@Gyan我不知道如何在该命令中包含其他宏块级调试信息,如类型、交错、分段等。我应该可以通过将日志级别设置为56来实现这一点,但它似乎不起作用。你知道怎么做吗?ie:类似这样的东西:
[h264@0x7f93ba800000]新帧,键入:I[h264@0x7f93ba800000]24i 24i 24i 24i 24i 24i 24i 24
包括
-nostats
,Gyan的命令将删除输出帧中的杂散状态日志。不过,ndtreviv的正确之处在于,该工具具有良好的格式选项。