CN103152134B - 基于rtp协议的接收端重排语音包的方法和*** - Google Patents
基于rtp协议的接收端重排语音包的方法和*** Download PDFInfo
- Publication number
- CN103152134B CN103152134B CN201310060452.4A CN201310060452A CN103152134B CN 103152134 B CN103152134 B CN 103152134B CN 201310060452 A CN201310060452 A CN 201310060452A CN 103152134 B CN103152134 B CN 103152134B
- Authority
- CN
- China
- Prior art keywords
- voice packet
- structure variable
- packet structure
- current speech
- socket
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于RTP协议的接收端重排语音包的方法,包括有:S1、在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序号;S2、根据当前语音包指针指向的所述结构变量,将socket接收的语音包存入所述结构变量中;S3、获取所述接收语音包的时间戳和顺序号,并将其按照顺序号进行排序;S4、将所述接收的语音包时间戳与当前处理的语音包时间戳进行比较,当接收到的语音包时间戳不大于当前处理的语音包时间戳时,将接收到的语音包丢弃;否则将接收到的语音包保留;本发明使得接收端能够实时处理接收的语音包,避免了引入资源同步的开销;本发明还提供一种基于RTP协议的接收端重排语音包的***。
Description
技术领域
本发明涉及计算机网络与通信领域,特别涉及在实时语音传输***中的一种基于RTP协议的接收端重排语音包的方法和***。
背景技术
目前,在实时语音传输***中,常常是先在接收端设置一个RTP包缓冲队列,将socket接收的语音包放到所述RTP包缓冲队列内,然后对该缓冲队列中的语音包进行重排;其中,当所述RTP包缓冲队列满时,就丢弃新包或替换时间上最早的语音包,将时间上最早的包提交给其他模块处理。
但是,如上所述的现有技术中接收端对接收到的语音包进行重排存在以下问题:
a)比当前播放时刻早的语音包仍会被处理;
b)同一个语音包可能会被接收多次,这样就可能会被处理多次;
c)当所述缓冲队列满时,无论是丢掉时间戳较早的语音包,还是时间戳较晚的语音包,都会丢失大量未播放数据;
d)该缓冲队列先将数据接收下来再进行重排,增加了处理延时,引入了资源同步的开销。
根据以上分析,现有技术仍有待改善。
发明内容
针对现有技术的不足,本发明提供一种基于RTP协议的接收端重排语音包的方法和***,使得在实时语音传输***中,接收端能够实时处理接收的语音包,而无须在缓冲队列中缓冲,实现降低延时、避免引入资源同步的开销的目的。
为实现以上目的,本发明通过以下技术方案予以实现:
本发明提供一种基于RTP协议的接收端重排语音包的方法,包括以下步骤:
S1、在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序号;
S2、根据所述当前语音包指针指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;
S3、获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;
S4、将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较,当所述socket接收到的语音包时间戳不大于所述当前处理的语音包时间戳时,将所述socket接收到的语音包丢弃;否则将所述socket接收到的语音包保留。
优选的,所述步骤S1进一步包括将所述接收端设置的当前语音包指针初始化为空;所述两个语音包结构变量分别为第一语音包结构变量和第二语音包结构变量。
优选的,所述步骤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接收到的语音包保留。
优选的,所述步骤S1进一步包括将所述接收端设置的当前语音包指针初始化为空;所述两个语音包结构变量分别为第一语音包结构变量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;
当所述当前语音包指针P指向所述第二语音包结构变量B时,将socket接收的语音包存入所述第一语音包结构变量A中,且所述当前语音包指针P指向第二语音包结构变量B。
本发明通过提供一种基于RTP协议的接收端重排语音包的方法和***,使得在实时语音传输***中,接收端能够实时处理接收的语音包,而无须在缓冲队列中缓冲,以实现降低延时、避免引入资源同步的开销的目的。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (4)
1.一种基于RTP协议的接收端重排语音包的方法,其特征在于,包括以下步骤:
S1、在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序号;
所述两个语音包结构变量分别为第一语音包结构变量和第二语音包结构变量;
S2、根据所述当前语音包指针指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;
S3、获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;
S4、将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较,当所述socket接收到的语音包时间戳不大于所述当前处理的语音包时间戳时,将所述socket接收到的语音包丢弃;否则将所述socket接收到的语音包保留;
所述步骤S2进一步包括:
当所述当前语音包指针为空时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量;
当所述当前语音包指针指向所述第一语音包结构变量时,将socket接收的语音包存入所述第二语音包结构变量中,且所述当前语音包指针指向第一语音包结构变量;
当所述当前语音包指针指向所述第二语音包结构变量时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量。
2.如权利要求1所述的方法,其特征在于,所述步骤S1进一步包括将所述接收端设置的当前语音包指针初始化为空。
3.一种基于RTP协议的接收端重排语音包的***,其特征在于,包括有:
预设单元,用于在接收端设置两个语音包结构变量和当前语音包指针,预设当前处理的语音包时间戳和顺序号;
所述两个语音包结构变量分别为第一语音包结构变量和第二语音包结构变量;
接收单元,用于根据所述当前语音包指针指向的所述语音包结构变量,将socket接收的语音包存入所述语音包结构变量中;
排序单元,用于获取所述socket接收到的语音包时间戳和顺序号,并将所述socket接收的语音包按照其对应的顺序号进行排序;
比较单元,用于将所述socket接收到的语音包的时间戳与所述当前处理的语音包时间戳进行比较;
所述接收单元进一步用于:
当所述当前语音包指针为空时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量;
当所述当前语音包指针指向所述第一语音包结构变量时,将socket接收的语音包存入所述第二语音包结构变量中,且所述当前语音包指针指向第一语音包结构变量;
当所述当前语音包指针指向所述第二语音包结构变量时,将socket接收的语音包存入所述第一语音包结构变量中,且所述当前语音包指针指向第二语音包结构变量。
4.如权利要求3所述的***,其特征在于,所述预设单元进一步用于将所述接收端设置的当前语音包指针初始化为空。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310060452.4A CN103152134B (zh) | 2013-02-26 | 2013-02-26 | 基于rtp协议的接收端重排语音包的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310060452.4A CN103152134B (zh) | 2013-02-26 | 2013-02-26 | 基于rtp协议的接收端重排语音包的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103152134A CN103152134A (zh) | 2013-06-12 |
CN103152134B true CN103152134B (zh) | 2015-12-02 |
Family
ID=48550024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310060452.4A Expired - Fee Related CN103152134B (zh) | 2013-02-26 | 2013-02-26 | 基于rtp协议的接收端重排语音包的方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103152134B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246123B (zh) * | 2018-09-30 | 2021-10-22 | 广州酷狗计算机科技有限公司 | 媒体流获取方法及装置 |
CN112996053B (zh) * | 2019-12-16 | 2023-04-18 | 成都鼎桥通信技术有限公司 | 语音数据包的重排序方法、装置及设备 |
CN114189487B (zh) * | 2021-11-09 | 2024-05-14 | 广东宜通联云智能信息有限公司 | 一种基于rtp的数据重排序方法、***、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713613A (zh) * | 2004-06-25 | 2005-12-28 | 腾讯科技(深圳)有限公司 | 一种解决网络抖动的方法 |
CN101217429A (zh) * | 2008-01-18 | 2008-07-09 | 清华大学 | 基于tcp时间戳选项确定tcp报文之间的引发关系的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100138531A1 (en) * | 2007-06-26 | 2010-06-03 | Thomson Licensing | Real time protocol stream migration |
-
2013
- 2013-02-26 CN CN201310060452.4A patent/CN103152134B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713613A (zh) * | 2004-06-25 | 2005-12-28 | 腾讯科技(深圳)有限公司 | 一种解决网络抖动的方法 |
CN101217429A (zh) * | 2008-01-18 | 2008-07-09 | 清华大学 | 基于tcp时间戳选项确定tcp报文之间的引发关系的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103152134A (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220394316A1 (en) | Message sending method and device, readable medium and electronic device | |
WO2008045321A3 (en) | Method, system, and computer program product for resequencing of data segments received over a bonding channel set | |
CN102300259A (zh) | 一种数据块级联和拆解处理方法、装置及*** | |
CN103152134B (zh) | 基于rtp协议的接收端重排语音包的方法和*** | |
CN102291398A (zh) | 无线通讯***中数据压缩与解压缩方法、装置及*** | |
CN106997394B (zh) | 一种数据乱序到达处理方法和*** | |
CN101188477A (zh) | 一种数据包序列接收的方法及设备 | |
CN103139732A (zh) | 一种改进的短信发送方法及*** | |
CN108833366B (zh) | 基于as6802协议的控制帧压缩方法 | |
CN105847378A (zh) | 一种实现大数据同步的方法和*** | |
CN112751788A (zh) | 一种支持多类型帧混合传输的双平面交换方法 | |
CN104038786A (zh) | 智能电视收视率统计***及方法 | |
CN101945342A (zh) | 用户端设备及其无线组播转单播业务的实现方法 | |
CA2891927C (en) | Method and apparatus for traffic management scheduling | |
CN109890082B (zh) | 一种时间触发的tt帧报文传输方法 | |
CN101729879A (zh) | 一种基于mimo-ofdm***的实时视频传输的实现方法 | |
CN105337850A (zh) | 一种物联网数据处理方法及物联网网关 | |
CN106332227B (zh) | 搜网方法及装置 | |
US10536393B2 (en) | Mail obtaining method, terminal, and system | |
CN106775961A (zh) | 一种跨***数据及信号传递的方法 | |
CN104852812A (zh) | 1553b总线远置单元自适应收发数据方法 | |
CN104618266A (zh) | 一种多端口间报文转发的方法和装置 | |
CN106209340A (zh) | 智能变电站测试设备sv、goose同步输出控制方法 | |
CN106303935B (zh) | 一种同步源协调方法及装置 | |
CN106790320A (zh) | 一种多应用***间数据推送的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180823 Granted publication date: 20151202 |
|
PD01 | Discharge of preservation of patent | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20210823 Granted publication date: 20151202 |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151202 Termination date: 20190226 |