我有一个视频库,应该通过将moov
原子置于视频其余部分的前面,对所有这些视频进行调整以进行网络流传输。这样可以在客户端完全下载视频之前开始播放。
有没有一种可靠的方法来确定某个视频是否已通过定位moov
原子中出现了多少个字节进行了调整?这仅用于调试目的。
我有一个视频库,应该通过将moov
原子置于视频其余部分的前面,对所有这些视频进行调整以进行网络流传输。这样可以在客户端完全下载视频之前开始播放。
有没有一种可靠的方法来确定某个视频是否已通过定位moov
原子中出现了多少个字节进行了调整?这仅用于调试目的。
Answers:
FFmpeg不会向您显示此信息。
您可以使用AtomicParsley来解析文件,例如:
AtomicParsley input.mp4 -T
这将向您显示原子在树中的位置。如果moov
原子位于文件的开头,则它必须紧接在ftyp
原子之后,因此您可以尝试解析输出,例如在Bash中,仅打印第二行并检查其是否包含moov
:
AtomicParsley input.mp4 -T | sed -n 2p | grep -q "moov" && echo "yup" || echo "nope"
使用此名称qtfaststart
(与ffmpeg的名称不同qt-faststart
),qtfaststart
-l
输入 .mp4将显示顶级原子的顺序。
$ qtfaststart -l bad.mp4
ftyp (32 bytes)
free (8 bytes)
mdat (559619 bytes)
moov (52916 bytes)
$ qtfaststart -l good.mp4
ftyp (32 bytes)
moov (52916 bytes)
mdat (559619 bytes)
$
pip
安装,则可以qtfaststart
使用pip install qtfaststart
brew install qtfaststart
-movflags faststart
选项或qt-faststart
工具ffmpeg
。