如何使用 ffmpeg 获取最接近给定时间(相对于视频开头)的帧号? 视频具有可变帧速率。我不需要任何其他元数据或实际帧(图像)本身。速度比精度更重要(除非可能的误差超过几秒)。
示例:
输入
输出
ffmpeg -t 01:05 -i input.mp4 -nostats -vcodec copy -y -f rawvideo /dev/null 2>&1 |\
grep frame |\
awk '{print $2}'
这个 ffmpeg 命令获取您的 input.mp4,将其截断为 -t (在上面的示例中 01:05,并将文件写入 /dev/null。
-y
会覆盖 / 上的所有内容)开发/空.
grep命令获取帧数,awk为您提供该行的第二个“单词”(以空格分隔)。
输入:
ffmpeg -t 01:05 -i baywatch.mp4 -nostats -vcodec copy -y -f rawvideo /dev/null 2>&1 | grep frame | awk '{print $2}'
输出:
1559