我读了一些关于mpeg传输流的教程,但有两个基本问题我不明白: 1. mpeg-ts复用器接收来自音频和视频的pes数据包,并输出mpeg-ts数据包。它是如何进行多路复用的?是否当来自任何程序的包等待其输入时,多路复用器就会被唤醒并将pes切片处理成mpeg-ts ? 2.用户是否可以选择mpeg-ts多路复用器将输出的比特率?编码速率与mpeg-ts速率之间的关系是什么?
非常感谢,
范围
发布于 2013-05-21 19:53:52
MPEG2-TS复用是一种复杂的艺术形式。建议阅读: MPEG2-TS规范,SPTS/MPTS,VBR与CBR,假设参考解码器和缓冲器(EB,MB,TB),抖动和漂移。
对您的问题的一个非常简短的回答可以总结为:对于每个编码器,在线路的另一端有一个解码器,它想要在每个帧间隔显示一个视频帧(或音频帧)。此帧需要在其呈现时间之前进行解码。如果此帧使用其他帧作为参考,则还需要在呈现之前对其进行解码。在多路复用时,数据必须在呈现之前到达足够的时间。在时间n处呈现的视频帧必须在时间n-x处在解码器处可用,其中x是取决于解码器的缓冲速率的时间度量(参见MB、TB、EB)。如果TS码率太低,就会出现“下溢”,视频不会准时进入解码器。如果TS比特率太大,就会发生“溢出”,缓冲区必须丢弃数据包,这也会产生视觉伪像。
https://stackoverflow.com/questions/11196554
复制相似问题