Cod*_*rer 21 mp4 video-encoding h.264
我看到很多关于将moov原子从MP4视频容器的末端重新定位到开头的问题,以使视频"网络优化"或更容易流式传输.似乎大多数工具在首次编码视频时都需要一个明确的选项才能执行此操作(如果它完全可用).
如果将原子置于开头使得流式传输工作更好,并且事后做到这一点成本很高,为什么我最初想要用原子对视频进行编码?有什么好处?
Sir*_*ius 18
在文件末尾编码MOOV通常是视频编码器的默认操作,因为它们倾向于通过一次写入输出文件来操作,并且MOOV原子的确切内容和大小只有在写入音频后才能知道完全和视频数据,因为它包含绝对文件大小.
这个例子的主要例子是FFMpeg,在这个答案中有一个解释:https://stackoverflow.com/a/8066089/393701
FFMpeg可以选择为这个原子保留空间,但不能保证数据完全适合.
在最后使用MOOV原子没有特别的好处,在本地回放情况下并不那么不方便,在回放之前在文件结尾处搜索不像在渐进式下载传送中那样昂贵.
您总是希望将索引信息放在文件的开头,除了唯一的一个,这个布局没有隐藏的成本:在进行捕获/转码时,您可能无法预先知道该MOOV需要多少空间原子开头,它的数据也不太好用.因此,您通常将有效负载直接写入文件,并通过添加MOOV并更新文件的其余部分来完成写入.