如何判断视频的快速启动是否使用 ffmpeg 或 ffprobe 设置

How to tell if faststart for video is set using ffmpeg or ffprobe

我无法弄清楚如何确定 MP4 视频是否设置了快速启动。

我了解 "moov atom" 是需要位于文件开头以启用快速启动的数据,而不是文件末尾。

我特别想用ffmpeg或ffprobe来判断是否已经移到开头

附带说明一下,我知道我可以 运行 以下命令将它从末尾移动到开头(但我想知道它是否已经存在):

ffmpeg -i infile.mp4 -map 0 -c:v copy -c:a copy -c:s copy -c:d copy -c:t copy -movflags +faststart outfile.mp4

运行

ffmpeg -v trace -i file.mp4 2>&1 | grep -e type:'mdat' -e type:'moov'

这将产生如下输出,

[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000036ca40] type:'mdat' parent:'root' sz: 62740 48 65044 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000036ca40] type:'moov' parent:'root' sz: 2264 62788 65044

由于 moov 出现在第二位,因此在本示例中它位于末尾。

在 bash-like shell 上,转义单引号:

ffmpeg -v trace -i file.mp4 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'


对于Windows,可以使用findstr,

ffmpeg -v trace -i file.mp4 2>&1 | findstr /l "type:'moov' type:'mdat'"