MP4 启动时间太长

use*_*132 2 mp4 ffmpeg streaming flv

我正在使用 ffmpeg 将我的视频转换为 H.264/MP4。然后我用 将 moov atom 移动到文件的开头qt-faststart,这样我就可以流式传输视频了。

对于 5-10 分钟的小视频,一切正常,但对于 1-2 小时的大视频,开始播放可能需要很长时间。它加载了 6-10 MB 并且我只能开始播放视频。

对于 FLV 视频,情况并非如此;无论视频有多大,它都会立即播放。我该如何解决?

slh*_*hck 5

您可以使用AtomicParsley检查 MOOV 原子的大小。运行atomicparsley file.mp4 -T并查找如下内容:

Atom moov @ 20 of size: 1653815, ends @ 1653835
Run Code Online (Sandbox Code Playgroud)

例如,这里的原子大小为 1653815 字节(大约 1.5 MB)。可能是因为您的文件原子太大了。

您可以尝试在编码期间减小其大小。在 ffmpeg 中,您可以使用-moov_size选项设置原子的最大大小。话虽如此,您的文件可能太大了,您应该考虑更改流媒体方法。

一种方法是使用 ISMV“平滑流”格式。它会创建碎片化的 MP4 文件。您可以通过设置片段选项之一并选择一个空的 MOOV 来启用它。例如:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict experimental \
-b:v 1M -b:a 128k -movflags frag_keyframe+empty_moov \
output.mp4
Run Code Online (Sandbox Code Playgroud)