gpt4 book ai didi

streaming - 什么是 "streaming-enabled"A/V 容器格式?

转载 作者:行者123 更新时间:2023-12-01 01:21:32 24 4
gpt4 key购买 nike

Matroska 和 MPEG-4 Part 14 等支持流式传输的容器文件格式与 AVI 等不支持流式传输的容器文件格式有何区别?

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

或者这甚至是一个必须由音频和视频编解码器而不是容器提供的功能? (我猜不是,因为 MPEG-4 (A)SP 似乎在 MPEG-4 Part 14 容器中是可流式传输的(无论这意味着什么),但在 AVI 中却不行。)

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

更新:
我发现 MPEG 传输流似乎提供了诸如定期同步和元数据帧之类的功能,以使客户端能够从数据丢失或损坏中恢复,而 MP4 和 Matroska 似乎只在文件头中提供该信息。

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

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

最佳答案

像 AVI 这样的文件格式将不同媒体 block 偏移和长度的完整编译放在专用索引中。该索引放置在文件的末尾。因此,如果您想播放 AVI,播放器需要先到达文件末尾以获取此索引,然后才能进行任何播放。这就是使 AVI 可流式传输的原因。

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

streambale 内容的第二个重要方面是具有时间戳。每个媒体片段都必须有一个准确的时间戳,以确保如果您播放一个 session 5 小时 - 它不会由于音频和视频播放速率之间的相对滑动而导致 LipSync 逐渐丢失。 AVI 通常假定有标准速率 (25 fps) 的显示和音频播放,并且随着时间的推移由设备来管理它。这使它变得可怕!

关于streaming - 什么是 "streaming-enabled"A/V 容器格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com