mpeg-ts基础

时间:2012-06-25 20:07:07

标签: stream mpeg transport

我阅读了一些关于mpeg传输流的教程,但有两个基本问题我不明白: 1. mpeg-ts muxer接收来自音频和视频的pes数据包,并输出mpeg-ts数据包。它是如何做这个多路复用的?是否每当来自任何程序的数据包等待其输入时,多路复用器就会唤醒并处理pes切入mpeg-ts? 2.用户是否可以选择mpeg-ts muxer输出的比特率?编码速率与mpeg-ts速率之间的联系是什么?

非常感谢,

1 个答案:

答案 0 :(得分:0)

MPEG2-TS多路复用是一种复杂的艺术形式。建议阅读:MPEG2-TS规范,SPTS / MPTS,VBR与CBR,假设参考解码器和缓冲器(EB,MB,TB),抖动和漂移。

您的问题的简短答案可以概括如下: 对于每个编码器,在线路的另一端有一个解码器,它希望每帧间隔显示一个视频帧(或音频帧)。该帧需要在其呈现时间之前被解码。如果此帧使用其他帧作为参考,则还需要在呈现之前对其进行解码。 在多路复用时,数据必须在呈现之前到达足够的时间。在时间n处呈现的视频帧必须在解码器处在时间n-x处可用,其中x是时间的度量,取决于解码器的缓冲器速率(参见MB,TB,EB)。如果TS比特率太低,则发生“下溢”,视频不在解码器中。如果TS比特率太大,则会发生“溢出”,并且缓冲区必须丢弃数据包,这也会产生视觉伪像。