基于RTP协议的接收端重排语音包的方法和系统技术方案

技术编号:8802931 阅读:226 留言:0更新日期:2013-06-13 07:02
本发明专利技术提供一种基于RTP协议的接收端重排语音包的方法,包括有:S1、在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序号;S2、根据当前语音包指针指向的所述结构变量,将socket接收的语音包存入所述结构变量中;S3、获取所述接收语音包的时间戳和顺序号,并将其按照顺序号进行排序;S4、将所述接收的语音包时间戳与当前处理的语音包时间戳进行比较,当接收到的语音包时间戳不大于当前处理的语音包时间戳时,将接收到的语音包丢弃;否则将接收到的语音包保留;本发明专利技术使得接收端能够实时处理接收的语音包,避免了引入资源同步的开销;本发明专利技术还提供一种基于RTP协议的接收端重排语音包的系统。

【技术实现步骤摘要】

本专利技术涉及计算机网络与通信领域,特别涉及在实时语音传输系统中的一种基于RTP协议的接收端重排语音包的方法和系统
技术介绍
目前,在实时语音传输系统中,常常是先在接收端设置一个RTP包缓冲队列,将socket接收的语音包放到所述RTP包缓冲队列内,然后对该缓冲队列中的语音包进行重排;其中,当所述RTP包缓冲队列满时,就丢弃新包或替换时间上最早的语音包,将时间上最早的包提交给其他模块处理。但是,如上所述的现有技术中接收端对接收到的语音包进行重排存在以下问题:a)比当前播放时刻早的语音包仍会被处理;b)同一个语音包可能会被接收多次,这样就可能会被处理多次;c)当所述缓冲队列满时,无论是丢掉时间戳较早的语音包,还是时间戳较晚的语音包,都会丢失大量未播放数据;d)该缓冲队列先将数据接收下来再进行重排,增加了处理延时,引入了资源同步的开销。根据以上分析,现有技术仍有待改善。
技术实现思路
针对现有技术的不足,本专利技术提供一种基于RTP协议的接收端重排语音包的方法和系统,使得在实时语音传输系统中,接收端能够实时处理接收的语音包,而无须在缓冲队列中缓冲,实现降低延时、避免引入资源同步的开销的目的。为实现以上目的,本专利技术通过以下技术方案予以实现:本专利技术提供一种基于RTP协议的接收端重排语音包的方法,包括以下步骤:S1、在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序号;S2、根据所述当前语音包指针指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;S3、获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;S4、将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较,当所述socket接收到的语音包时间戳不大于所述当前处理的语音包时间戳时,将所述socket接收到的语音包丢弃;否则将所述socket接收到的语音包保留。优选的,所述步骤SI进一步包括将所述接收端设置的当前语音包指针初始化为空;所述两个语音包结构变量分别为第一语音包结构变量和第二语音包结构变量。优选的,所述步骤S2进一步包括:当所述当前语音包指针为空时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量;当所述当前语音包指针指向所述第一语音包结构变量时,将socket接收的语音包存入所述第二语音包结构变量中,且所述当前语音包指针指向第一语音包结构变量;当所述当前语音包指针指向所述第二语音包结构变量时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量。本专利技术还提供一种基于RTP协议的接收端重排语音包的系统,包括有:预设单元,用于在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序;接收单元,用于根据所述当前语音包指针指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;排序单元,用于获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;比较单元,用于将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较。优选的,所述预设单元进一步用于将所述接收端设置的当前语音包指针初始化为空;所述两个语音包结构变量分别为第一语音包结构变量和第二语音包结构变量。优选的,所述接收单元进一步用于:当所述当前语音包指针为空时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量;当所述当前语音包指针指向所述第一语音包结构变量时,将socket接收的语音包存入所述第二语音包结构变量中,且所述当前语音包指针指向第一语音包结构变量;当所述当前语音包指针指向所述第二语音包结构变量时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量。本专利技术通过提供一种基于RTP协议的接收端重排语音包的方法和系统,使得在实时语音传输系统中,接收端能够实时处理接收的语音包,而无须在缓冲队列中缓冲,以实现降低延时、避免引入资源同步的开销的目的。附图说明图1为本专利技术一实施例的流程图;图2为本专利技术一实施例的系统框图。具体实施例方式下面对于本专利技术所提出的一种基于RTP协议的接收端重排语音包的方法和系统,结合附图和实施例详细说明。如图1所示,本专利技术提供一种基于RTP协议的接收端重排语音包的方法,包括以下步骤:S1、在接收端设置两个语音包结构变量和当前语音包指针P,预设当前处理的语音包时间戳和顺序号;S2、根据所述当前语音包指针P指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;S3、获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;S4、将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较,当所述socket接收到的语音包时间戳不大于所述当前处理的语音包时间戳时,将所述socket接收到的语音包丢弃;否则将所述socket接收到的语音包保留。优选的,所述步骤SI进一步包括将所述接收端设置的当前语音包指针初始化为空;所述两个语音包结构变量分别为第一语音包结构变量A和第二语音包结构变量B。优选的,所述步骤S2进一步包括:当所述当前语音包指针P为空时,将socket接收的语音包存入所述第一语音包结构变量A中,且所述当前语音包指针P指向第二语音包结构变量B ;当所述当前语音包指针P指向所述第一语音包结构变量A时,将socket接收的语音包存入所述第二语音包结构变量B中,且所述当前语音包指针P指向第一语音包结构变量A ;当所述当前语音包指针P指向所述第二语音包结构变量B时,将socket接收的语音包存入所述第一语音包结构变量A中,且所述当前语音包指针P指向第二语音包结构变量B。如图2所示,本专利技术还提供一种基于RTP协议的接收端重排语音包的系统,包括有:预设单元,用于在接收端设置两个语音包结构变量和当前语音包指针P,预设当前处理的语音包时间戳和顺序;接收单元,用于根据所述当前语音包指针P指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;排序单元,用于获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;比较单元,用于将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较。优选的,所述预设单元进一步用于将所述接收端设置的当前语音包指针P初始化为空;所述两个语音包结构变量分别为第一语音包结构变量A和第二语音包结构变量B。优选的,所述接收单元进一步用于:当所述当前语音包指针P为空时,将socket接收的语音包存入所述第一语音包结构变量A中,且所述当前语音包指针P指向第二语音包结构变量B ;当所述当前语音包指针P指向所述第一语音包结构变量A时,将socket接收的语音包存入所述第二语音包结构变量B中,且所述当前语音包指针P指向第一语音包结构变量A ;当所述当前语音本文档来自技高网...

【技术保护点】
一种基于RTP协议的接收端重排语音包的方法,其特征在于,包括以下步骤:S1、在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序号;S2、根据所述当前语音包指针指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;S3、获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;S4、将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较,当所述socket接收到的语音包时间戳不大于所述当前处理的语音包时间戳时,将所述socket接收到的语音包丢弃;否则将所述socket接收到的语音包保留。

【技术特征摘要】
1.一种基于RTP协议的接收端重排语音包的方法,其特征在于,包括以下步骤: 51、在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戮和顺序号; 52、根据所述当前语音包指针指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中; 53、获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序; 54、将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较,当所述socket接收到的语音包时间戳不大于所述当前处理的语音包时间戳时,将所述socket接收到的语音包丢弃;否则将所述socket接收到的语音包保留。2.如权利要求1所述的方法,其特征在于,所述步骤SI进一步包括将所述接收端设置的当前语音包指针初始化为空;所述两个语音包结构变量分别为第一语音包结构变量和第二语音包结构变量。3.如权利要求2所述的方法,其特征在于,所述步骤S2进一步包括: 当所述当前语音包指针为空时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量; 当所述当前语音包指针指向所述第一语音包结构变量时,将socket接收的语音包存入所述第二语音包结构变量中,且所述当前语音包指针指向第一语音包结构变量; 当所述当前语音包指针指向所述第二语音包结构变量时,将socket接收的语音包存入所述...

【专利技术属性】
技术研发人员:姜元福
申请(专利权)人:汉柏科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1