我正在使用ffmpeg将视频转换为mp4 H.264,而不是使用qt-faststart将moov原子转换为前端,因此我可以对视频进行流式处理。
小视频5-10分钟一切正常,但是当大型视频播放1-2小时时,可能需要很长时间才能开始播放。它加载6-10mb,而不是开始播放视频。
在flv中并非如此,无论视频有多大,它都会立即播放。我该如何解决这个问题?
答案 0 :(得分:0)
这只是格式的本质。 moov原子包含文件中每个音频或视频帧的所有元数据。因此,帧越多,moov越大。通过将所有这些元数据放在一个位置,它使得在文件中搜索变得更加容易。一旦你下载了moov,播放器就会确切地知道文件中的哪个字节要求寻找特定的帧或时间。 FLV文件一次发送一帧,没有帧位置索引,这使得玩家的搜索非常困难。
您可以尝试通过确保视频不是可变帧速率并且没有嵌入元数据中的不必要数据(例如电影海报)来使moov更小。让服务器发送gzip流可能会有所帮助,而moov应该可以很好地压缩。