如何判断视频的快速启动是否使用 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'"
我无法弄清楚如何确定 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'"