流媒体 A/V:谁、在何地、何时进行多路复用和编码?

流媒体 A/V:谁、在何地、何时进行多路复用和编码?

我正在仔细阅读VLC 支持的视频/音频格式我意识到我对于流媒体的了解其实非常少。

当流媒体源包含音频和视频时,这些单独的信​​号如何合并/集成为一个?在某个时候,我假设视频帧(来自摄像机)和声音帧(来自麦克风)被多路复用到同一个信号中?

我会认为从那里,集成的 A/V 信号被编码了?

或者,它们是否分别进行编码,然后集成/多路复用在一起?

并且是多路复用甚至没有正确的词语/过程来描述它们是如何整合的?

提前致谢。

答案1

首先,你必须区分视频/音频编解码器以及多媒体容器我已经详细讨论了编解码器和容器之间的区别在另一个超级用户的回答中。简而言之,容器用于保存各种音频和视频(以及字幕、数据、图像等)比特流。

这种将比特流合并到一个容器中的过程实际上通常被称为“多路复用”。您可以将音频/视频交织到容器中的过程称为多路复用,但严格来说,这个术语适用于 MPEG-2 传输流多路复用。我们稍后会讲到这一点。

现在,有各种容器格式,但它们都具有相同的用途:处理内部流的同步。您需要确保属于同一部分的部分同时播放。容器携带元信息,具体告诉播放设备在哪里查看以及在什么位置播放,比如说 00:02:01.250。

容器还允许您执行其他操作,包括包含有关流本身的信息。例如,在许多流式传输环境中,播放器需要知道视频的大小、帧速率和其他各种信息。当您流式传输 MP4 文件时(MPEG-4 Part 14 是容器,而不是编解码器),您需要MOOV原子放置在文件开头,这样播放器就可以立即解析它。通常,这个数据“原子”会位于文件末尾,但实际上它没什么用,因为您必须在流式传输之前下载整个文件。这就是为什么有工具可以将其移动到开头,例如qt-快速启动

但重要的是,在任何将容器从各个比特流中复用的多媒体应用程序中,这些流首先被编码。没有经过编码的“集成 A/V 信号”——容器只会包装那里的内容,不会触及实际的音频和视频数据。因此,您的视频被馈送到视频编码器,您的音频被馈送到音频编码器。这两个任务的结果在容器中合并/交错。容器将负责组装可以在流式传输环境中传输或保存为文件的最终比特流。

现在,有许多适合不同应用的容器。MPEG-2 传输流常用于电视广播。在此,多个电视频道被复用到一个容器中,然后通过无线、有线或卫星传输。复用的方法是时分复用。此处,“多路复用”也是正确的技术术语。对于其他容器,则不使用经常。MPEG-4 第 14 部分另一方面,(MP4,我们之前曾简要提到过)在网络和移动环境中非常常见,并且它越来越成为交换文件的标准,甚至在专业领域也是如此。

还有其他容器,例如美军奥格MPEG 节目流音频视频等等。如您所见,选择哪一个取决于应用程序,但这远远超出了此处的范围。

相关内容