哪个ffmpeg命令行将列出关键帧?

哪个ffmpeg命令行将列出关键帧?,ffmpeg,Ffmpeg,什么ffmpeg命令行将列出现有.MP4到标准输出中关键帧的索引号 我在上尝试了唯一适用的答案,但无效。使用 ffmpeg -i in.mp4 -v trace 2>&1 | grep -B 1 "distance 1, keyframe 0" | grep "distance 0, keyframe 1" 这将发出表单的行 [mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000405740] AVIndex stream 0, sample 3961, of

什么ffmpeg命令行将列出现有.MP4到标准输出中关键帧的索引号

我在上尝试了唯一适用的答案,但无效。

使用

ffmpeg -i in.mp4 -v trace 2>&1 | grep -B 1 "distance 1, keyframe 0" | grep "distance 0, keyframe 1"
这将发出表单的行

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000405740] AVIndex stream 0, sample 3961, offset 2e0d298, dts 2028032, size 37168, distance 0, keyframe 1
其中,采样后的数字是帧计数,索引为零


我有两个grep,因为通常所有音频样本都被标记为关键帧,所以第一个grep搜索关键帧之后的帧,第二个grep只在匹配帧之前发射线,即KF。如果您知道视频的流索引,您可以制作一个正则表达式并使用一个grep。

谢谢,但在这里使用“无效的日志级别”跟踪失败。您的ffmpeg版本可能太旧了。谢谢。切换到最新版本可以解决这个问题。但在(MKS)grep-B未知选项上失败。。您有在OOTB Windows上使用最新ffmpeg的解决方案吗?否则,如何将ffmpeg列表捕获到文件中?通常的重定向对我不起作用。谢谢。向命令添加-报告;它将在工作目录中生成一个日志文件。谢谢。我发现我一定是把重定向搞砸了,因为现在我发现2>起作用了。很遗憾看到ffmpeg在这里滥用stderr。