首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是“支持流”的A/V容器格式?

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

Stack Overflow用户
提问于 2012-01-17 20:39:37
回答 1查看 935关注 0票数 4

像Matroska和MPEG-4这样的支持流的容器文件格式和那些被认为不是“流准备”的文件格式(如AVI )到底有什么区别呢?

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

或者,这甚至是必须由音频和视频编解码器而不是容器提供的功能吗?(我想不是,因为MPEG-4 (A)SP在MPEG-4第14部分容器中似乎是可流的(不管这意味着什么),而不是在AVI中。

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

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

是否真的有两种流格式,“可流”格式仍然需要可靠的传输协议(例如,MP4和Matroska ),以及“适当的”流格式(如MPEG-TS ),它们可以容忍流中的数据丢失,并允许客户在任何时候通过周期性地包含头和元数据来调整数据?

RTP是怎么适应这里的?它似乎提供了许多特性(帧编号、格式描述头、编解码器如何解释帧(B-或I-帧)的提示),这些特性也存在于MPEG-TS中,但在MP4和Matroska中却没有。

EN

回答 1

Stack Overflow用户

发布于 2012-01-18 03:55:17

像AVI这样的文件格式将不同媒体块、偏移量和长度的完整编译放在一个专用索引中。此索引放在文件的末尾。因此,如果您想玩AVI,玩家需要先到达文件的末尾才能得到这个索引,然后才能播放。这就是AVI流光的原因。

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

流内容的第二个重要方面是具有时间戳。每个媒体段必须有一个准确的时间戳,以确保如果您播放一个会话,比如5个小时-它不应该导致LipSync的逐渐丢失,因为音频和视频播放率之间的相对偏差。AVI通常假设有一个标准的显示和音频播放速率(25 fps),并留到设备来管理这一过程。这太可怕了!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8901440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档