一种音视频同步方法与流程

文档序号:12496454阅读:1547来源:国知局

本发明涉及视频会议技术领域,尤其涉及一种音视频同步方法。



背景技术:

音视频同步控制是视频会议领域的研究热点,音视频同步与否对于视频会议的体验影响重大。当前解决音视频不同步的方案很多,如多路复用法(音视频帧打包传输)、同步标记法(对音视频相关帧打标签,播放时根据标签进行播放)等。

现有解决音视频不同步的方案大部分是基于私有协议进行的,兼容性、扩展性不足,实现成本也比较高。因此,本专利申请提供一种只基于RTCP的RTP时间戳和NTP时间戳,来实现音视频同步的方法。这里,要解决的不同步主要是因为音视频处于不同RTP会话,在网络中传输延迟异导致的不同步。



技术实现要素:

本发明要解决的技术问题,在于提供一种音视频同步方法,该方法可以根据不同音视频同步需求,调整音视频的同步范围。

本发明是这样实现的:一种音视频同步方法,基于RTCP发送者报文的RTP时间戳和NTP时间戳,来实现音视频同步。

进一步的,所述方法具体为:针对音频和视频,从连续的两个RTCP发送者报文包中得到音频与视频的RTP与NTP数据,并根据得到的音频与视频的RTP与NTP数据来获得音频与视频对应的时戳频率;

从RTCP发送者报文包中取最新的音频和视频的NTP时间戳Audio_SRNTP、Video_SRNTP,以及最新的视频的RTP数据来获得视频的RTP时间戳的基础值Video_RTPTime;

每获取一个音频RTP包,则获得音频RTP包的RTP时间戳Audio_TRUERTP,根据RTP时间戳Audio_TRUERTP和RTP时间戳的基础值Video_RTPTime得出基于音频RTP的视频基准RTP时间戳Video_TRUERTP;

从RTCP发送者报文包中取得最新收到的视频RTP时间戳Video_TRUERTP’与所述基于音频RTP的视频基准RTP时间戳Video_TRUERTP进行比对实现音视频同步操作。

进一步的,根据得到的音频与视频的RTP与NTP数据来获得音频与视频对应的时戳频率;即根据公式(1)(2)计算,得到音频与视频对应的时戳频率Audio_Fre、Video_Fre:

其中,Audio_SRRTPtime1,Audio_SRRTPtime2为连续的两个RTCP发送者报文包对应的音频的RTP数据;Audio_SRNTPtime1,Audio_SRNTPtime2为连续的两个RTCP发送者报文包对应的音频的NTP数据;Video_SRRTPtime1,Video_SRRTPtime2为连续的两个RTCP发送者报文包对应的视频的RTP数据;Video_SRNTPtime1,Video_SRNTPtime2为连续的两个RTCP发送者报文包对应的视频的NTP数据;

从RTCP发送者报文包中取最新的音频和视频的NTP时间戳Audio_SRNTP、Video_SRNTP,以及最新的视频的RTP数据根据公式(3)获得视频的RTP时间戳的基础值Video_RTPTime;

Video_RTPTime=Video_SRRTPTime+(Audio_SRNTP-Video_SRNTP)×Video_Fre------(3)

其中,最新的视频的RTP数据Video_SRRTPtime,视频对应的时戳频率Video_Fre;

通过RTP时间戳Audio_TRUERTP和RTP时间戳的基础值Video_RTPTime根据公式(4)得出基于音频RTP的视频基准RTP时间戳Video_TRUERTP;

其中,最新的音频的RTP数据Audio_SRRTPtime。

进一步的,所述从RTCP发送者报文包中取得最新收到的视频RTP时间戳Video_TRUERTP’与所述基于音频RTP的视频基准RTP时间戳Video_TRUERTP进行比对实现音视频同步操作,具体为:

A.Video_TRUERTP’-Video_TRUERTP<-Video_Fre*40*T’

这种情况下,视频帧慢于音频帧,且处于同步定义范围之外,丢弃视频帧,如果视频丢帧严重,对音频帧进行缓存;

B.-Video_Fre*40*T’<(Video_TRUERTP’-Video_TRUERTP)<Video_Fre*120*T’

这种情况下,视频帧处于同步定义范围之内,播放或者操作;

C.Video_Fre*120*T’<Video_TRUERTP’-Video_TRUERTP

这种情况下,视频帧快于音频帧,且处于同步定义范围之外,缓存视频帧,等待音频帧到来;

其中,T为NTP的单位,T=1E12/2^32ps,T’=1E9*T=1E21/2^23ps。

本发明具有如下优点:该方法基于通用的RTCP实现音视频同步,可用于服务器、中间设备、终端,实现成本低、兼容性及扩展性好;而且,该方法可以根据不同音视频同步需求,调整音视频的同步范围。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明方法结构示意图。

具体实施方式

请参阅图1所示,一种音视频同步方法,基于RTCP发送者报文的RTP时间戳和NTP时间戳,来实现音视频同步;

所述方法具体为:针对音频和视频,从连续的两个RTCP发送者报文包中得到音频与视频的RTP与NTP数据,并根据得到的音频与视频的RTP与NTP数据来获得音频与视频对应的时戳频率;(每次收到SR包都需要更新)

从RTCP发送者报文包(即SR包)中取最新的音频和视频的NTP时间戳Audio_SRNTP、Video_SRNTP,以及最新的视频的RTP数据来获得视频的RTP时间戳的基础值Video_RTPTime;

每获取一个音频RTP包,则获得音频RTP包的RTP时间戳Audio_TRUERTP,根据RTP时间戳Audio_TRUERTP和RTP时间戳的基础值Video_RTPTime得出基于音频RTP的视频基准RTP时间戳Video_TRUERTP;

从RTCP发送者报文包中取得最新收到的视频RTP时间戳Video_TRUERTP’与所述基于音频RTP的视频基准RTP时间戳Video_TRUERTP进行比对实现音视频同步操作。

根据得到的音频与视频的RTP与NTP数据来获得音频与视频对应的时戳频率;即根据公式(1)(2)计算,得到音频与视频对应的时戳频率

其中,Audio_SRRTPtime1,Audio_SRRTPtime2为连续的两个RTCP发送者报文包对应的音频的RTP数据;Audio_SRNTPtime1,Audio_SRNTPtime2为连续的两个RTCP发送者报文包对应的音频的NTP数据;Video_SRRTPtime1,Video_SRRTPtime2为连续的两个RTCP发送者报文包对应的视频的RTP数据;Video_SRNTPtime1,Video_SRNTPtime2为连续的两个RTCP发送者报文包对应的视频的NTP数据;

从RTCP发送者报文包中取最新的音频和视频的NTP时间戳Audio_SRNTP、Video_SRNTP,以及最新的视频的RTP数据根据公式(3)获得视频的RTP时间戳的基础值Video_RTPTime;

Video_RTPTime=Video_SRRTPTime+(Audio_SRNTP-Video_SRNTP)×Video_Fre------(3)

其中,最新的视频的RTP数据Video_SRRTPtime,视频对应的时戳频率Video_Fre;

通过RTP时间戳Audio_TRUERTP和RTP时间戳的基础值Video_RTPTime根据公式(4)得出基于音频RTP的视频基准RTP时间戳Video_TRUERTP;

其中,最新的音频的RTP数据Audio_SRRTPtime。

所述从RTCP发送者报文包中取得最新收到的视频RTP时间戳Video_TRUERTP’与所述基于音频RTP的视频基准RTP时间戳Video_TRUERTP进行比对实现音视频同步操作,具体为:

A.Video_TRUERTP’-Video_TRUERTP<-Video_Fre*40*T’

这种情况下,视频帧慢于音频帧,且处于同步定义范围之外,丢弃视频帧,如果视频丢帧严重,对音频帧进行缓存;

B.-Video_Fre*40*T’<(Video_TRUERTP’-Video_TRUERTP)<Video_Fre*120*T’

这种情况下,视频帧处于同步定义范围之内,播放或者操作;

C.Video_Fre*120*T’<Video_TRUERTP’-Video_TRUERTP

这种情况下,视频帧快于音频帧,且处于同步定义范围之外,缓存视频帧,等待音频帧到来;

其中,T为NTP的单位,T=1E12/2^32ps,T’=1E9*T=1E21/2^23ps。

总之,本发明基于通用的RTCP实现音视频同步,可用于服务器、中间设备、终端,实现成本低、兼容性及扩展性好;而且,该方法可以根据不同音视频同步需求,调整音视频的同步范围。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 3 
网友询问留言 已有1条留言
  • 178651... 来自[天津市联通] 2019年04月20日 12:10
    这个文档写得不明不白的,白花了为50块钱
    0
1