CN102665141A

AVS (audio video standard) audio and video presynchronizing method based on RTP (real time protocol) package

Abstract

The invention claims a based on rtp package of avs video frequency synchronization method of preventing. Main process of the invention is following: Audio and video buffer area receives the audio video frequency package rtp; According to rtp audio video frequency package sequence number of judging and the delay of the performance and do corresponding processing; Through rtp audio video frequency package the head field carried by the time stamp data type frame number and other information calculating the represented absolute time interval playback; According to absolute playback time interval establishing rtp audio video frequency package the mapping; According to rtp audio video frequency package the mapping relation of the rtp of audio video synchronous condition; According to different desynchronizing condition to make the corresponding adjusting. The invention can effectively improve media is avs of desynchronizing condition at the same time it realizes the frequency media is fast synchronous it reaches the main body of the audio video frequency synchronization effect.

CN102665141A, drawing sheet 1
Sheet 1 of 7

Term

5.6 yearsto projected expiry

Projected expiry 16 May 2032, counted from filing; an application has no term until it is granted.

  1. Priority and filed
  2. Published
  3. Today
  4. Projected expiry

9 claims: 6 independent, 3 dependent

  1. 1
    一种基于RTP封装的AVS音视频预同步方法,其特征在于:其包括以下步骤: 步骤I.接收RTP音视频包: 启动接收RTP音视频包的线程,打开音频缓冲区,设其初始值大小为Am ;打开视频缓冲区,设其初始值大小为Vm,准备接收新来的RTP音频包和RTP视频包; 步骤2.分析包迟到性并处理: 启动解析RTP包包头字段信息的线程,解析出RTP音频包或RTP视频包的序列号,将该RTP包的序列号与巾贞听端口的表中的序列号按从小到大的顺序逐一比较,若该序列号与表中的序列号都不相同且小于表中最小的,则说明该包是迟到且不能实现同步的包,直接将该包丢弃,不再进入缓冲区排队;若该序列号与表中的序列号都不相同且大于表中最小的,则说明该包是没有迟到的包,该包进入缓冲区,解析包头字段信息,准备形成新的映射块;若与表中序列号相同,则说明该包是迟到但还可能实现同步的RTP包,该包进入缓冲区,准备快速确定在队列中的位置; 对迟到但还可能实现同步的RTP包,首先找到含有缺失序列号标记的映射块,然后将该包的序列号与该映射块缺失标记出的序列号进行比较,若相同,则说明该包属于该映射块,即确定位置;若都不相同,则与下一个含有缺失序列号标记的映射块缺失标记出的序列号进行比较,直到确定位置; 步骤3.计算绝对回放时间区间: (1)解析出RTP音频包或RTP视频包的RTP时间戳,并获取SR包的RTP时间戳和NTP时间戳,计算出该RTP包所表示的绝对回放起始时间;SR :Sender Report,发送者报告,NTP :Network Time Protocol,网络时间协议; (2)解析RTP音频包或RTP视频包所携带的数据类型,即音频帧或视频帧,若是音频帧,则该RTP包中全为完整音频帧,解析出其帧数量;若是视频帧,则该RTP包不一定全为完整视频帧,解析出其帧头数量;并据此利用插值方法得出所对应的绝对回放时间区间长度; (3)根据步骤(I)和(2),计算出RTP音频包或RTP视频包所表示的绝对回放时间区间[X, y], X是绝对回放起始时间,y是绝对回放结束时间; 步骤4.建立RTP音视频包映射: 启动映射线程,因为音频和视频在同一个绝对时间轴上回放,把绝对时间轴做为桥梁,建立起该RTP包的一个媒体相对另一媒体的映射,同时该RTP包形成一个新的映射块或加入一个已存在的映射块,建立起RTP包映射; 步骤5.判断媒体失步情况: 启动判断失步的线程,根据已经建立的RTP音频包和RTP视频包关于绝对回放时间的的映射,开始检测RTP音频包和RTP视频包的失步情况并做出相应的调整;对所有的失步情况分析,将失步分为三种情况:第一种情况是其中一种媒体相对另一媒体出现整体性RTP包迟到,第二种情况是在某个媒体内出现个别RTP包来迟,第三种情况是第一种和第二种同时发生的情况; 步骤6.处理不同失步情况: 对第一种失步情况,即媒体间失步,处理步骤如下:将没有迟到的媒体整体延迟时间t再解RTP包;同时,该媒体缓冲区仍然接收新来的RTP包,对新来的RTP包做上述步骤2的判断处理,只要该包不是迟到且不能同步的RTP包,就开始向内存提交请求以增大该缓冲区容量来容纳更多RTP包;整体性RTP包迟到的媒体则在时间t内等待迟到的RTP包群到来,同时向发送端发送反馈信息,通知发送端降低该媒体发包频率; 对第二种失步情况,即媒体内失步,处理步骤如下:该媒体缓冲区内RTP包不做整体延时处理,也不向发端发送反馈信息,其侦听端口一旦侦听到来迟但还可能实现同步的包,立即按照步骤2中所述的方法,进行媒体内快速同步; 对第三种混合情况,即混合失步,首先将没有迟到的媒体延迟时间t再解RTP包;同时,该媒体缓冲区仍然接收新来的RTP包,对新来的RTP包做上述步骤2的判断处理,只要该包不是迟到且不能同步的RTP包,就开始向内存提交请求以增大该缓冲区容量来容纳更多RTP包;整体性RTP包迟到的媒体则在时间t内等待迟到的RTP包群,并且向发送端发送反馈信息,通知发送端降低该媒体发包频率;同时,其侦听端口一旦侦听到个别来迟但还可能实现同步的包,立即按照步骤2中所述的方法,进行媒体内快速同步。
  2. 2
    根据权利要求I所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:步骤3中的(I)中,计算RTP包绝对回放起始时间To的公式是To=Ts+1000(to-ts)/K,其中Ts是SR包中的64位NTP时间戳,ts是SR包中的32位RTP时间戳,to是该RTP包的32位时间戳,K是音频或视频帧的采样频率。
  3. 3
    根据权利要求I所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:步骤3中的(2)中,所述的插值方法是,对于音频,已知帧的采样频率K和帧的数量m,利用公式Ta=m/K,得出区间长度,其中Ta为音频绝对回放时间区间长度,对于视频,若该RTP包只封装了完整的视频帧,则按照计算音频帧的方法计算出Tv,Tv为视频绝对回放时间区间长度;若只封装了一个视频帧的宏块或条带且不包含帧头,则该时间区间Tv=O ;同理,若封装了视频帧帧头,则每个帧头表示为一个完整视频帧的时间,其计算Tv的公式也与计算音频帧的公式相同,帧数量m就是视频帧帧头数,K仍为视频帧的采样率。
  4. 4
    根据权利要求I所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:步骤3中的(3)中,计算RTP音频包绝对回放结束时间的方法是利用公式Tae=to+Ta,其中Tae表示该RTP音频包的绝对回放结束时间,to表示该RTP音频包的绝对回放起始时间,Ta表示该RTP音频包的绝对回放时间区间长度。
  5. 5
    根据权利要求4所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:计算RTP视频包绝对回放结束时间的方法是利用公式Tve=to+Tv ,其中Tve表示该RTP视频包的绝对回放结束时间,to表示该RTP视频包的绝对回放起始时间,Tv表示该RTP视频包的绝对回放时间区间长度JURTP音频包的绝对会放时间区间[Ta,Tae], RTP视频包的绝对会放时间区间[Tv, Tve]。
  6. 6
    根据权利要求I所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:其中等待时间t,由以下两种情况确定:若没有迟到的媒体持续接收新来的RTP包,且在时间tl达到该缓冲区的上限时,整体性RTP包迟到的媒体仍未完成媒体块映射同步,则此时t=tl ;若没有迟到的媒体尚未达到缓冲区上限H时,整体性RTP包迟到的媒体在时间t2已经完成媒体块映射同步,则此时t=t2 ;媒体块映射同步,是指进入该缓冲区的每个RTP包,都能找到对应的另一媒体映射,但并不保证每个映射块都没有个别RTP包的缺失。
  7. 7
    根据权利要求I所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:在缓冲区中,主要包括帧听端口和映射块两个模块,这两个模块协同工作的机制如下:帧听端口模块主要包含一张迟到但还可能实现同步的RTP包的包序列号的表,这些序列号在表中按照从小到大的顺序存放;每当接收一个新的RTP包,就将该包的序列号与表中的序列号按从小到大的顺序逐一比较,若该序列号与表中的序列号都不相同且小于表中最小的,则说明该包是迟到且不能实现同步的包,直接将该包丢弃,不再进入缓冲区排队;若该序列号与表中的序列号都不相同且大于表中最小的,则说明该包是没有迟到的包,则该包进入缓冲区,解析包头字段信息,准备形成新的映射块;若该序列号与表中某个序列号相同,则说明该包是迟到但还可能实现同步的RTP包,该包进入缓冲区。
  8. 8
    根据权利要求7所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:迟到但还可能实现同步的RTP包快速确定在队列中的位置的方法:首先找到含有缺失序列号标记的映射块,然后将该包的序列号与该映射块缺失标记出的序列号进行比较,若相同,则说明该包属于该映射块,即确定位置;若都不相同,则与下一个含有有缺失序列号标记的映射块缺失标记出的序列号进行比较,直到确定位置。
  9. 9
    根据权利要求8所述的一种基于RTP封装的AVS音视频预同步方法,其特征在于:该表由两种情况进行实时更新:一是每当形成一个新的映射块,该映射块就检测是否块内或相邻块间有缺失的RTP包序列号,同时查询是否其相邻映射块已经做出缺失序列号标记;若没有,将该序列号添加到缺失序列号标记中,同时将该序列号发送到侦听端口模块的表中进行更新,即在表中增加一个该缺失包序列号;若有,则不做缺失序列号标记,也不向侦听端口模块的表发送该缺失序列号;二是每当一个映射块要进行解RTP包时,且该映射块仍有缺失序列号标记,则将该缺失标记的序列号发送到侦听端口的表中进行更新,即删除表中与该缺失序列号相同的序列号。
Independent claims9