多媒体通信基础
一路媒体流
case 1:
无丢包,无网络抖动
无须同步,无须缓存,解码即播。
case 2:
存在网络抖动
如果这时候收到帧就立马解码播放,由于网络的抖动,在某些时刻,大量的帧到来,会出现明显的快进的感觉,在某些时刻,没有数据帧到来,会有明显慢放甚至卡顿的感觉。
合理的做法是:
流内同步
流内同步是指在接收到一帧可解码的数据之后,不立即去解码播放,而是等到帧间间隔时间到来时再去播放。
RTP的流内同步
a) 发送端:
从发送端出发的每一帧数据都有一个时间戳,表示该帧第一个采样点被采集的时间点。在将帧数据封装为rtp包的时候,发送端会将该时间戳写入rtp数据包包头:
timeStampi=timeStampi−1+Δtimestamp t i m e S t a m p i = t i m e S t a m p i − 1 + Δ t i m e s t a m p 其中, Δtimestamp Δ t i m e s t a m p 是第i帧和第i-1帧之间的时间戳增量, Δtimestamp=frequency/fps