首页 文章

什么是“支持流媒体”的A / V容器格式?

提问于
浏览
4

究竟是什么区分了支持流媒体的容器文件格式,如Matroska和MPEG-4 Part 14,以及那些据称不是“流式传输”的容量文件格式,如AVI?

他们只是提供元数据和数据的排序,使得解码软件能够在不随机访问媒体文件或大缓冲区的情况下工作,或者它们是否包含一些同步头以使客户端能够容忍一定量的数据包丢失(降低保真度) ?

或者甚至是一个必须由音频和视频编解码器而不是容器提供的功能? (我猜不是,因为MPEG-4(A)SP似乎可以在MPEG-4 Part 14容器内流式传输(无论如何),但不能在AVI内部流传 . )

我想知道是否可以通过有损连接发送“流式就绪”文件(UDP没有任何其他同步或元数据层),并且合理地期望客户端容忍中等数据包损坏和/或丢失而不会永久失去同步,或者是否需要一些中间层 .

Update: 我发现MPEG传输流似乎提供周期性同步和元数据帧等功能,使客户端能够从数据丢失或损坏中恢复,而MP4和Matroska似乎只在文件头中提供了这些信息 .

是否真的有两种流式格式,“可流式”格式仍然需要可靠的传输协议(例如HTTP),如MP4和Matroska,以及“适当的”流式格式,如MPEG-TS,可以容忍中流中的数据丢失,并通过定期包含 Headers 和元数据使客户端能够在任何时间点收听?

RTP如何适应这里?它似乎提供了许多功能(帧编号,格式描述 Headers ,编解码器关于如何解释帧(B或I帧)的提示),这些功能也存在于MPEG-TS中,但在MP4和Matroska中不存在 .

1 回答

  • 4

    像AVI这样的文件格式在专用索引中提供了不同媒体块偏移和长度的完整编译 . 此索引位于文件的末尾 . 因此,如果你想玩AVI,播放器需要首先到达文件的末尾以获得该索引,然后才能进行任何游戏 . 这就是使AVI流畅的原因 .

    在可流式文件格式中,元数据(媒体类型,时间位置,编码和长度)主要以段的 Headers 的形式交织 .

    streambale内容的第二个重要方面是有时间戳 . 每个媒体片段必须有一个准确的时间戳,以确保如果您说话时间为5小时 - 由于音频和视频播放速率之间的相对滑动,它不应导致LipSync逐渐丢失 . AVI通常假设有一个标准速率(25 fps)的显示和音频播出,并留给设备随时间管理 . 这太可怕了!

相关问题