实时视频流和常规视频文件编码之间的编码有什么区别?

时间:2014-05-23 21:13:04

标签: video-streaming video-encoding live-streaming

我是新手。希望找到一些有用的链接或求助来解决我的难题。 对于常规视频文件编码,例如对于mp4文件,它需要在编码结束时插入moov原子。

对于实时视频流,每个数据包中的帧可以自行播放,而不需要moov原子。

那么上面两个编码之间有什么区别呢?

1 个答案:

答案 0 :(得分:1)

有编解码器和容器。通常,live和vod(视频点播)的编解码器是相同的。这有一些例外,但与此讨论无关。

MP4容器(不是编解码器)使用moov原子,该原子包含有关文件中的时序,帧大小和位置(以字节为单位)的元数据。这使得在文件中移动非常容易(就像索引数据库一样,可以轻松搜索)。活容器不这样做。例如,FLV使用一个"标签"每帧,其中帧的元数据与帧本身一起存储。这通常会创建稍大的文件。它也使得难以在文件中搜索。没有索引,如果我想提前60秒,应该跳过多少字节?像未编制索引的数据库一样,我需要查看每个记录(帧)以确定这一点。但这使得跳入中间并开始播放成为可能,而无需事先获得信息。这是我们实时视频所需的特质。

在碎片化的ISO(mp4)文件中也使用了混合方法。每隔几秒就有一个单独的索引。在这种情况下,元数据原子称为moof。