CN110545161B - 一种具有冗余的多媒体数据实时传输方法 - Google Patents
一种具有冗余的多媒体数据实时传输方法 Download PDFInfo
- Publication number
- CN110545161B CN110545161B CN201910743550.5A CN201910743550A CN110545161B CN 110545161 B CN110545161 B CN 110545161B CN 201910743550 A CN201910743550 A CN 201910743550A CN 110545161 B CN110545161 B CN 110545161B
- Authority
- CN
- China
- Prior art keywords
- data
- data packets
- packets
- session
- group
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Abstract
本发明公开了一种具有冗余的多媒体数据实时传输方法,属于无线音视频通信技术领域。本发明将FEC算法和RTP协议有机地结合起来,能够减小RTP实时多媒体数据传输过程中的丢包率,提高RTP多媒体播放的质量。此外,本发明通过末尾补零使数据包长度相等,从而便于应用FEC算方生成冗余数据包,同时,在传输数据包时,本发明又将末尾零去掉,从而能够有效节省带宽,提高传输效率。本发明还可以根据带宽情况和数据传输质量动态调整冗余度,从而适应当前的传输情况,提高数据传输效率。本专利受国家重点研发计划资助,项目编号2017YFC0821900。
Description
技术领域
本发明属于无线音视频通信技术领域,特别是指一种具有冗余的多媒体数据实时传输方法。
背景技术
无线音视频多媒体应用经常会受到数据包丢失、错误或网络带宽资源不足的干扰。相关研究表明,在多数情况下,丢包率是影响视频流化质量的关键因素。有鉴于此,为了保证音视频质量,通常可以采用前向纠错(forward error correction,简称FEC)编码来提高视频数据传输的可靠性。
FEC算法一般有RS编码(Reed-Solomon Codes)和LDPC码等形式。该算法的基本原理是,对k个大小相等的原始数据包冗余出n-k个冗余数据包,使得在n个数据包内,随机选取k个数据,就可以恢复出原始有序的k个数据包。也就是说,一组n个数据包,可以抵抗n-k/n的丢包率。FEC算法中,需要保证每个数据包的大小都是相等,并且,在恢复数据包时,需要知道该包在这一组包内的序号。该算法中,n-k越大,就代表冗余所需的额外带宽也越大。现有技术中用于实现该算法的开源库有OpenFEC等。
目前,音视频传输大都采用实时传输协议(Real-time Transport Protocol,简写为RTP)。但是,对于RTP传输过程中的丢包问题,现有技术中还缺少有效的解决方案。
发明内容
有鉴于此,本发明提出一种具有冗余的多媒体数据实时传输方法,该方法将FEC算法和RTP传输协议有机地结合起来,能够有效地克服音频实时传输中的网络丢包问题。
为了实现上述目的,本发明采用的技术方案为:
一种用于发送端的具有冗余的多媒体数据实时传输方法,包括以下步骤:
(t1)根据带宽和数据传输质量设定数据冗余度,确定一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,并设定数据包的规范大小symbol_size,symbol_size大于或等于原始多媒体数据包的最大长度;
(t2)将待发送的k个原始多媒体数据包按照帧结构进行封包,并通过RTP协议发送出去;
(t3)根据需要对k个原始多媒体数据包进行末尾补零,得到k个大小均为symbol_size的数据包,然后通过FEC前向纠错算法生成这k个数据包的n-k个冗余数据包,冗余数据包的大小均为symbol_size;
所述帧结构的帧头部分包括:magic魔数,用来验证数据的合法性;session_id,用来标识数据包的组序号;n,用来标识一组数据包中数据包的总数;k,用来标识一组数据包中原始多媒体数据包的个数;n-k,用来标识一组数据包中冗余数据包的个数;symbol_size,用来标识一个数据包的规范大小;length,用来标识一个数据包的实际大小;Timestamp,用于表示RTP协议中的时间戳;Sequence,用于表示RTP协议中的数据包序列号;esi,用来标识数据包在一组数据包内的位置;
(t4)将各冗余数据包的末尾零剔除,更新冗余数据包的实际大小length,然后通过RTP协议将不含末尾零的n-k个冗余数据包发送出去;
(t5)重复步骤(t1)~(t4),发送下一组n个数据包,下一组数据包的组序号等于前一组数据包的组序号加一。
一种用于接收端的具有冗余的多媒体数据实时传输方法,该方法用于接收如上所述方法发送的多媒体数据包,包括以下步骤:
(r1)设置当前待处组序号cur_session_id;
(r2)通过RTP协议接收数据包;
(r3)若收到数据包的session_id大于cur_session_id,则直接结束组序号为cur_session_id的处理过程,并将cur_session_id加一,回到步骤(r2)接收下一组数据;若收到数据包的session_id小于cur_session_id,则直接丢弃该数据包;若收到数据包的session_id等于cur_session_id,则执行步骤(r4);
(r4)根据数据包中的k值和esi值判断收到的数据包是否为前k个数据包,若是,则将该数据包直接转给音/视频解码模块,每个数据包只转发给音/视频解码模块一次;同时,根据需要对接收到的数据包进行末尾补零,使数据包的长度为symbol_size,然后将该数据包存入缓存;
(r5)若具有同一session_id的前k个数据包均已转发给音/视频解码模块,则清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据;若缓存中的数据包达到k个,且同一session_id的前k个数据包尚未全部接收到,则根据缓存中的数据包,通过FEC前向纠错算法的解码算法,获得前k个原始数据包,并将其中未接收到的数据包转发给音/视频解码模块,然后清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据。
采用上述技术方案的有益效果在于:
1、本发明将FEC算法和RTP协议有机地结合起来,能够减小RTP实时多媒体数据传输过程中的丢包率,提高RTP多媒体播放的质量。
2、本发明通过末尾补零使数据包长度相等,从而便于应用FEC算方生成冗余数据包,同时,在传输数据包时,本发明又将末尾零去掉,从而能够有效节省带宽,提高传输效率。
3、本发明可以根据带宽情况和数据传输质量动态调整冗余度,即,动态调整一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,从而适应当前的传输情况,提高数据传输效率。
附图说明
图1是本发明实施例中数据包帧结构的示意图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的说明。
一种用于发送端的具有冗余的多媒体数据实时传输方法,包括以下步骤:
(t1)根据带宽和数据传输质量设定数据冗余度,确定一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,并设定数据包的规范大小symbol_size,symbol_size大于或等于原始多媒体数据包的最大长度;
(t2)将待发送的k个原始多媒体数据包按照帧结构进行封包,并通过RTP协议发送出去;
(t3)根据需要对k个原始多媒体数据包进行末尾补零,得到k个大小均为symbol_size的数据包,然后通过FEC前向纠错算法生成这k个数据包的n-k个冗余数据包,冗余数据包的大小均为symbol_size;
所述帧结构的帧头部分包括:magic魔数,用来验证数据的合法性;session_id,用来标识数据包的组序号;n,用来标识一组数据包中数据包的总数;k,用来标识一组数据包中原始多媒体数据包的个数;n-k,用来标识一组数据包中冗余数据包的个数;symbol_size,用来标识一个数据包的规范大小;length,用来标识一个数据包的实际大小;Timestamp,用于表示RTP协议中的时间戳;Sequence,用于表示RTP协议中的数据包序列号;esi,用来标识数据包在一组数据包内的位置;
(t4)将各冗余数据包的末尾零剔除,更新冗余数据包的实际大小length,然后通过RTP协议将不含末尾零的n-k个冗余数据包发送出去;
(t5)重复步骤(t1)~(t4),发送下一组n个数据包,下一组数据包的组序号等于前一组数据包的组序号加一。
一种用于接收端的具有冗余的多媒体数据实时传输方法,该方法用于接收如上所述方法发送的多媒体数据包,包括以下步骤:
(r1)设置当前待处组序号cur_session_id;
(r2)通过RTP协议接收数据包;
(r3)若收到数据包的session_id大于cur_session_id,则直接结束组序号为cur_session_id的处理过程,并将cur_session_id加一,回到步骤(r2)接收下一组数据;若收到数据包的session_id小于cur_session_id,则直接丢弃该数据包;若收到数据包的session_id等于cur_session_id,则执行步骤(r4);
(r4)根据数据包中的k值和esi值判断收到的数据包是否为前k个数据包,若是,则将该数据包直接转给音/视频解码模块,每个数据包只转发给音/视频解码模块一次;同时,根据需要对接收到的数据包进行末尾补零,使数据包的长度为symbol_size,然后将该数据包存入缓存;
(r5)若具有同一session_id的前k个数据包均已转发给音/视频解码模块,则清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据;若缓存中的数据包达到k个,且同一session_id的前k个数据包尚未全部接收到,则根据缓存中的数据包,通过FEC前向纠错算法的解码算法,获得前k个原始数据包,并将其中未接收到的数据包转发给音/视频解码模块,然后清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据。
上述发送端传输方法中,根据测试经验,可将参数设置为:n=10,k=6,symbol_size=500。数据包的帧结构如图1所示,其中,magic是魔数,用来验证数据的合法性;session_id用来标识每一组数据包,n用来标识每组数据包的个数,k用来标识每组数据包内原始数据包的个数,n-k用来标识冗余数据包的个数;symbol_size用来标识每个数据包的应有的大小;length标识每个数据包的实际大小;Timestamp是每个数据的时候时间戳,Sequence是每个数据包的序列号,这两个值的含义与RTP协议中的含义一致;esi是每个数据包在该组数据包内位置,从0开始,最大到n-1;marker表示该包是不是一个帧的结束。
这样,前6个数据包为原始数据包,按照帧结构进行封包,数据体部分直接填充原始数据包,然后通过RTP协议发送。此外,将数据长度不够500的数据包末尾补零,并保存到一个数组array[10]内,该数组内所有数据包长度为500。将array[0-5]输入到FEC 编码模块(该模块可直接采用OpenFEC实现,此为现有技术,此处不再赘述),可以直接得到array[6-9]的冗余数据包,其长度也都是500。由于array[0-5]进行了大量补零操作,array[6-9]冗余数据包末尾也存在大量的0。剔除冗余包末尾的0,计算出真正的数据长度length,可以大量节省带宽。最后,剔除末尾0的array[6-9]也分别通过RTP协议发送出去。
在接收端,收到数据包后首先检查magic是否符合,如果符合,解析接收到的数据包,获得各个参数的值,即,n=10,k=6,symbol_size=500;接着检查session_id是否与接收端当前的组序号cur_session_id一致,若一致则执行后续步骤。
对于接收到的数据包,若其为前6个原始数据包,则转发给音/视频解码模块(音/视频解码模块及其处理过程均为现有技术,此处不再赘述)。同时,将接收的数据包以esi为索引存储到一个数组array[10]里,长度不够500的数据包,末尾补0。当array[10]内存储数据包个数达到6个时,将array[10]输入到FEC解码模块(该模块可直接采用OpenFEC实现,此为现有技术,此处不再赘述),获得6个原始数据包,此时,即可根据需要将未接收到的原始数据包转发给音/视频解码模块。
总之,本发明将FEC算法和RTP传输协议有机地结合起来,其通过FEC算法产生冗余数据,从而能够抵抗网络丢包。本发明很好地结合了FEC算法和RTP协议,同时充分考虑了对网络带宽的节省以及音视频的流畅性。通过实际测试,本发明在极端网络环境下,能够达到良好的传输效果,这充分表明了本发明的有效性。
本专利受国家重点研发计划资助,项目编号2017YFC0821900。
综上所述,以上仅为本发明的较佳应用示例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种用于发送端的具有冗余的多媒体数据实时传输方法,其特征在于,包括以下步骤:
(t1)根据带宽和数据传输质量设定数据冗余度,确定一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,并设定数据包的规范大小symbol_size,symbol_size大于或等于原始多媒体数据包的最大长度;
(t2)将待发送的k个原始多媒体数据包按照帧结构进行封包,并通过RTP协议发送出去;
(t3)根据需要对k个原始多媒体数据包进行末尾补零,得到k个大小均为symbol_size的数据包,然后通过FEC前向纠错算法生成这k个数据包的n-k个冗余数据包,冗余数据包的大小均为symbol_size;
所述帧结构的帧头部分包括:magic魔数,用来验证数据的合法性;session_id,用来标识数据包的组序号;n,用来标识一组数据包中数据包的总数;k,用来标识一组数据包中原始多媒体数据包的个数;n-k,用来标识一组数据包中冗余数据包的个数;symbol_size,用来标识一个数据包的规范大小;length,用来标识一个数据包的实际大小;Timestamp,用于表示RTP协议中的时间戳;Sequence,用于表示RTP协议中的数据包序列号;esi,用来标识数据包在一组数据包内的位置;
(t4)将各冗余数据包的末尾零剔除,更新冗余数据包的实际大小length,然后通过RTP协议将不含末尾零的n-k个冗余数据包发送出去;
(t5)重复步骤(t1)~(t4),发送下一组n个数据包,下一组数据包的组序号等于前一组数据包的组序号加一。
2.一种用于接收端的具有冗余的多媒体数据实时传输方法,其特征在于,用于接收如权利要求1所述方法发送的多媒体数据包,包括以下步骤:
(r1)设置当前待处组序号cur_session_id;
(r2)通过RTP协议接收数据包;
(r3)若收到数据包的session_id大于cur_session_id,则直接结束组序号为cur_session_id的处理过程,并将cur_session_id加一,回到步骤(r2)接收下一组数据;若收到数据包的session_id小于cur_session_id,则直接丢弃该数据包;若收到数据包的session_id等于cur_session_id,则执行步骤(r4);
(r4)根据数据包中的k值和esi值判断收到的数据包是否为前k个数据包,若是,则将该数据包直接转给音/视频解码模块,每个数据包只转发给音/视频解码模块一次;同时,根据需要对接收到的数据包进行末尾补零,使数据包的长度为symbol_size,然后将该数据包存入缓存;
(r5)若具有同一session_id的前k个数据包均已转发给音/视频解码模块,则清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据;若缓存中的数据包达到k个,且同一session_id的前k个数据包尚未全部接收到,则根据缓存中的数据包,通过FEC前向纠错算法的解码算法,获得前k个原始数据包,并将其中未接收到的数据包转发给音/视频解码模块,然后清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910743550.5A CN110545161B (zh) | 2019-08-13 | 2019-08-13 | 一种具有冗余的多媒体数据实时传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910743550.5A CN110545161B (zh) | 2019-08-13 | 2019-08-13 | 一种具有冗余的多媒体数据实时传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110545161A CN110545161A (zh) | 2019-12-06 |
CN110545161B true CN110545161B (zh) | 2021-10-08 |
Family
ID=68711468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910743550.5A Active CN110545161B (zh) | 2019-08-13 | 2019-08-13 | 一种具有冗余的多媒体数据实时传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110545161B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371964A (zh) * | 2020-03-16 | 2020-07-03 | 广东博智林机器人有限公司 | 一种信息传输方法及装置 |
CN111371957B (zh) * | 2020-05-26 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 一种冗余度控制方法、装置、电子设备和存储介质 |
CN112671784A (zh) * | 2020-12-28 | 2021-04-16 | 北京奇艺世纪科技有限公司 | 一种数据传输方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304537A (zh) * | 2008-03-24 | 2008-11-12 | 北京邮电大学 | 3g-ip无线视频传输系统 |
WO2009005305A1 (en) * | 2007-07-02 | 2009-01-08 | Lg Electronics Inc. | Broadcasting receiver and broadcast signal processing method |
CN101766026A (zh) * | 2007-07-25 | 2010-06-30 | Lg电子株式会社 | 数字广播系统和数据处理方法 |
CN101951387A (zh) * | 2010-09-30 | 2011-01-19 | 海信集团有限公司 | 流媒体传输方法及装置 |
CN102025717A (zh) * | 2010-09-10 | 2011-04-20 | 香港城市大学深圳研究院 | 一种传输多媒体数据的方法 |
CN105656774A (zh) * | 2016-01-12 | 2016-06-08 | 东北大学 | 一种网络实时视频会话媒体数据多径混合冗余传输方法 |
CN107276722A (zh) * | 2017-06-21 | 2017-10-20 | 北京奇艺世纪科技有限公司 | 一种基于udp的数据传输方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719809B (zh) * | 2009-11-25 | 2012-10-10 | 中兴通讯股份有限公司 | 一种媒体数据包丢包恢复的方法及系统 |
-
2019
- 2019-08-13 CN CN201910743550.5A patent/CN110545161B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009005305A1 (en) * | 2007-07-02 | 2009-01-08 | Lg Electronics Inc. | Broadcasting receiver and broadcast signal processing method |
CN101809997A (zh) * | 2007-07-02 | 2010-08-18 | Lg电子株式会社 | 广播接收机和广播信号处理方法 |
CN101766026A (zh) * | 2007-07-25 | 2010-06-30 | Lg电子株式会社 | 数字广播系统和数据处理方法 |
CN101304537A (zh) * | 2008-03-24 | 2008-11-12 | 北京邮电大学 | 3g-ip无线视频传输系统 |
CN102025717A (zh) * | 2010-09-10 | 2011-04-20 | 香港城市大学深圳研究院 | 一种传输多媒体数据的方法 |
CN101951387A (zh) * | 2010-09-30 | 2011-01-19 | 海信集团有限公司 | 流媒体传输方法及装置 |
CN105656774A (zh) * | 2016-01-12 | 2016-06-08 | 东北大学 | 一种网络实时视频会话媒体数据多径混合冗余传输方法 |
CN107276722A (zh) * | 2017-06-21 | 2017-10-20 | 北京奇艺世纪科技有限公司 | 一种基于udp的数据传输方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110545161A (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110545161B (zh) | 一种具有冗余的多媒体数据实时传输方法 | |
CN107257270B (zh) | 基于混合自动重传请求的数据传输方法及系统 | |
RU2611975C2 (ru) | Устройство и способ передачи и приема пакетов в системе вещания и связи | |
US7095729B2 (en) | Method for multimedia communication over packet channels | |
JP3634800B2 (ja) | パリティチェック結合を用いたハイブリッド自動再送要求を実施するシステム及び方法 | |
CN110943800B (zh) | 数据包的发送方法、装置及系统、存储介质、电子装置 | |
US8819513B2 (en) | Lost real-time media packet recovery | |
US8397140B2 (en) | Error correction coding for recovering multiple packets in a group view of limited bandwidth | |
JP5140716B2 (ja) | メディアコンテンツをストリーミングする方法および復号化方法並びに符号化装置および復号化装置並びにストリーミングシステム | |
CN109547467A (zh) | 媒体数据纠错传输及纠错方法、装置、设备及存储介质 | |
KR101118194B1 (ko) | 손실된 패킷 재건을 위한 방법 및 상기 방법을 수행하기 위한 디바이스 | |
CN107209713B (zh) | 按需文件修复的方法和系统 | |
CN111181700A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
US7215683B2 (en) | Method and apparatus for protecting against packet losses in packet-oriented data transmission | |
US9866350B2 (en) | Streaming media packet processing method, WiFi chip, and mobile terminal | |
US8270436B2 (en) | Data structure boundary synchronization between a transmitter and receiver | |
EP2858286A1 (en) | Rateless decoding | |
CN112804028A (zh) | 一种数据包的传输方法、设备及存储介质 | |
KR20160123562A (ko) | 데이터 패킷 처리를 위한 수신기 장치 및 수신기 장치에서의 데이터 패킷 처리 방법 | |
US20040114599A1 (en) | Massive packet transmitter in wide area network and transmitting and receiving method thereof | |
CN116896567A (zh) | 网络层协议传输数据方法和装置 | |
CN112671784A (zh) | 一种数据传输方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |