CN103096183A - 一种高效流媒体传输方法 - Google Patents
一种高效流媒体传输方法 Download PDFInfo
- Publication number
- CN103096183A CN103096183A CN201310046549XA CN201310046549A CN103096183A CN 103096183 A CN103096183 A CN 103096183A CN 201310046549X A CN201310046549X A CN 201310046549XA CN 201310046549 A CN201310046549 A CN 201310046549A CN 103096183 A CN103096183 A CN 103096183A
- Authority
- CN
- China
- Prior art keywords
- subpackage
- district
- receiving terminal
- transmission method
- time
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000003139 buffering effect Effects 0.000 claims abstract description 10
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 230000008034 disappearance Effects 0.000 claims description 4
- 239000000203 mixture Substances 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种高效流媒体传输方法,其包括如下步骤:对接收端进行初始化;发送端对每帧的数据进行分包并传输;接收端对接收到的分包进行选择,该接收端设置有接收缓冲区,接收端将采用的分包存储在接收缓冲区中;解码模块对接收缓冲区中的分包进行组包和重传。本发明的流媒体传输方法逻辑处理简单、实时性强,不仅支持流媒体的实时传输功能,还具有容错和恢复功能。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种在流媒体实时传输中包括数据分包和组包方法以及重传机制的高效流媒体传输方法。
背景技术
在视频点播、在线视频直播这种实时性要求高的流媒体应用中,往往采用UDP(User Datagram Protocol,用户数据包协议)的传输方法来保证传输速度,但是由于UDP传输的不可靠性带来网络的丢包,从而造成视频质量差,影响通信效果。
目前,广泛使用的一种UDP防丢包技术是Reliable UDP,这种技术是在出现丢包的情况下,接收端通过应用层协议到发送端重新请求丢失的包,这种方法虽然能够防止丢包,但是Reliable UDP在实时上会有一些损失,并且逻辑处理复杂。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种高效流媒体传输方法。
为了实现本发明的上述目的,本发明提供了一种高效流媒体传输方法,其包括如下步骤:
S1:对接收端进行初始化;
S2:发送端对每帧的数据进行分包并传输;
S3:接收端对接收到的分包进行选择,所述接收端设置有接收缓冲区,所述接收端将采用的分包存储在所述接收缓冲区中;
S4:解码模块对所述接收缓冲区中的分包进行组包和重传。
本发明的流媒体传输方法逻辑处理简单、实时性强,不仅支持流媒体的实时传输功能,还具有容错和恢复功能。
在本发明的一种优选实施例中,解码模块获取系统当前的时间作为当前的播放时间,并根据缓冲时间将接收缓冲区的分包划分为组包区、重传区和最新分包区。在组包区,扫描每个分包,如果能够成功组包,则发送到显示模块,否则,丢弃该数据包的所有分包;在重传区,扫描每个分包,如果发现位于重传区的某个数据包存在缺失的分包,则向服务器发送信号,重传该分包;在最新分包区,不作任何处理。
本发明将接收缓冲区的数据分包划分为不同的分区,逻辑处理更加简单,实时性更强,能够更广泛地应用于实时流媒体应用中。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明高效流媒体传输方法的流程图;
图2是本发明一种优选实施方式中基于UDP的实时流媒体框架;
图3是接收缓冲区各个功能分区的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
图2示出了本发明一种优选实施方式中基于UDP的实时流媒体框架,该流媒体框架包括发送端、接收端和解码模块,基于该实时流媒体框架,本发明提供了一种高效流媒体传输方法,如图1所示,其包括如下步骤:
S1:对接收端进行初始化;
S2:发送端对每帧的数据进行分包并传输;
S3:接收端对接收到的分包进行选择,该接收端设置有接收缓冲区,接收端将采用的分包存储在接收缓冲区中;
S4:解码模块对接收缓冲区中的分包进行组包和重传。
在本实施方式中,该高效流媒体传输方法具体为:
第一步:对接收端进行初始化,包括对接收端的缓冲时间Ts,接收端的起始播放时间T0和接收端的上次播放时间Tp进行初始化。具体是设置流媒体的接收端的缓冲时间Ts,流媒体接收端的起始播放时间T0和上次播放时间Tp,在本实施例中,按照接收端收到的第一个数据包的时间作为起始时间。
如图2所示,由于UDP传输是非可靠的,并且存在丢包和分包乱序到达的情况,在本实施方式中,可以在流媒体的接收端设置接收缓冲区,以方便后续的解码模块进行相应的处理。在本实施方式中,解码模块设置视频的帧率为f,通过接收到的视频流的任一数据包中获取。
第二步:发送端对每帧的数据进行分包并传输。
由于采用UDP传输,在网络传输中可能存在丢包和分包乱序到达的情况。如果对每帧的数据包直接进行传输,在网络层会自动进行分包和组包,如果有一个分包丢失,则整个数据包丢失,重传整个数据包的代价非常大。在本实施方式中,在网络情况不是特别的理想的情况下,对每帧的数据可以在应用层进行分包,如果存在丢包则只需要对特定的分包进行重传。采用分包和重传的机制能够更好的保证视频传输的质量。
在本实施方式中,分包前,每帧的数据包含的信息包括时间戳和帧号,进行分包后,每个分包包含的信息包括该分包对应的数据帧的时间戳,该分包对应的数据帧的帧号、总分包数、该分包的ID。例如,如果数据帧的时间戳为T,帧号为F,可以切分成K个分包,那么相应的分包的信息组合为<T,F,K,1>,<T,F,K,2>,…,<T,F,K,K>。发送端依次将K个分包发送到接收端。在本实施方式中,每个分包的大小为一个MTU。
第三步:接收端对接收到的分包进行选择,该接收端设置有接收缓冲区,接收端将采用的分包存储在接收缓冲区中。在这个过程中,如果接收到的分包的时间戳小于接收端上次播放时间与接收端缓冲时间之差,则直接丢弃;如果接收到的分包的时间戳不小于接收端上次播放时间与接收端缓冲时间之差,则将该分包有序插入到接收缓冲区队列中,若接收缓冲区队列中存在重复的分包,则将该接收到的分包直接丢弃。具体是:
接收端每次从发送端接收到一个分包后,并获得了该分包的时间戳Ti,若该分包满足如下公式(1)则直接丢弃。
Ti<Tp-Ts (1)
其中,Tp为接收端上次播放时间,Ts为接收端缓冲时间,。
满足公式(1)说明时间戳在该包之前的数据包在解码模块已经播放显示了,该分包不再具有任何作用,直接丢弃。
若不满足公式(1),则分包按照<帧号,分包ID>二元组的关键码有序插入到接收端的接收缓冲区中,分包按照<帧号,分包ID>的二元组进行有序排列,具体可以是但不限于采用帧号和分包ID由小到大或由大到小的顺序排列。
在将分包插入到接收缓冲区队列过程中,如果发现存在<帧号,分包ID>二元组一样的分包,则说明该分包已存在,现在接收到的分包是服务器重传的分包,直接丢弃即可。
第四步:解码模块对接收缓冲区中的分包进行组包和重传。
在本实施方式中,解码模块每隔一定的时间对接收缓冲区中的分包进行组包和重传。具体的组包和重传的方法为:
首先,解码模块获取系统当前的时间作为当前的播放时间,并根据缓冲时间Ts将缓冲区的分包划分为组包区、重传区和最新分包区。具体的分割方法为,获取系统当前的时间T作为当前播放时间,将时间戳小于T-Ts的分包集定义为组包区;将时间戳位于区间(T-Ts,T)内,即时间戳小于T且大于或等于T-Ts的分包集定义为重传区,其他分包的集合为最新分包区。
然后,对各个分区进行相应的处理,在组包区,扫描每个分包,如果能够成功组包,则发送到显示模块,否则,丢弃该数据包的所有分包。例如,对于帧号为F的数据包,其所有的分包都已经接收到,则可以完整的组成一个数据包,发送给显示模块。否则,将该数据包的所有不完整的分包全部丢弃。在重传区,扫描每个分包,如果发现位于重传区的某个数据包存在缺失的分包,则向服务器发送信号,重传该分包,例如,对于帧号为F的数据包,如果某个分包缺失,则接收端给流媒体服务器发送信号,让服务器重传该分包。在最新分包区,不作任何处理。最后,更新接收端上次播放时间Tp为当前播放时间T。
在对各分包进行处理后,解码模块将所有成功组好的数据包发送给显示模块进行显示。
本发明的流媒体传输方法不仅支持流媒体的实时传输功能,还具有容错和恢复功能。其将接收缓冲区的数据分包划分为不同的分区,逻辑处理更加简单,实时性更强,能够更广泛地应用于实时流媒体应用中。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (8)
1.一种高效流媒体传输方法,其特征在于,包括如下步骤:
S1:对接收端进行初始化;
S2:发送端对每帧的数据进行分包并传输;
S3:接收端对接收到的分包进行选择,所述接收端设置有接收缓冲区,所述接收端将采用的分包存储在所述接收缓冲区中;
S4:解码模块对所述接收缓冲区中的分包进行组包和重传。
2.如权利要求1所述的高效流媒体传输方法,其特征在于,在所述步骤S1中,对接收端的缓冲时间、接收端的起始播放时间和接收端上次播放时间进行初始化。
3.如权利要求1所述的高效流媒体传输方法,其特征在于,在所述步骤S2中,对每帧的数据在应用层进行分包。
4.如权利要求1或3所述的高效流媒体传输方法,其特征在于,在所述步骤S2中,每帧的数据包含的信息包括时间戳和帧号,进行分包后,每个分包包含的信息包括所述分包对应的数据帧的时间戳、所述分包对应的数据帧的帧号、总分包数、所述分包的ID。
5.如权利要求1所述的高效流媒体传输方法,其特征在于,在所述接收缓冲区中,分包按照<帧号,分包ID>的二元组进行有序排列。
6.如权利要求1或5所述的高效流媒体传输方法,其特征在于,在所述步骤S3中,如果接收到的分包的时间戳小于接收端上次播放时间与接收端缓冲时间之差,则直接丢弃;如果接收到的分包的时间戳不小于接收端上次播放时间与接收端缓冲时间之差,则将所述分包有序插入到接收缓冲区中,若接收缓冲区队列中存在重复的分包,则将所述接收到的分包直接丢弃。
7.如权利要求1所述的高效流媒体传输方法,其特征在于,在所述步骤S4中,解码模块对接收缓冲区中的分包进行组包和重传的方法为:
S41:解码模块获取系统当前的时间作为当前的播放时间,并根据缓冲时间将接收缓冲区的分包划分为组包区、重传区和最新分包区;
S42:在组包区,扫描每个分包,如果能够成功组包,则发送到显示模块,否则,丢弃该数据包的所有分包;
在重传区,扫描每个分包,如果发现位于重传区的某个数据包存在缺失的分包,则向服务器发送信号,重传该分包;
在最新分包区,不作任何处理。
8.如权利要求7所述的高效流媒体传输方法,其特征在于,将接收缓冲区的分包划分为组包区、重传区和最新分包区的方法为:
时间戳小于T-Ts的分包的集合为组包区,时间戳位于区间(T-Ts,T)的分包的集合为重传区,其他分包的集合为最新分包区,其中,T为系统当前的时间,Ts为接收端的缓冲时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046549.XA CN103096183B (zh) | 2013-02-05 | 2013-02-05 | 一种高效流媒体传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046549.XA CN103096183B (zh) | 2013-02-05 | 2013-02-05 | 一种高效流媒体传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103096183A true CN103096183A (zh) | 2013-05-08 |
CN103096183B CN103096183B (zh) | 2015-12-09 |
Family
ID=48208229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310046549.XA Expired - Fee Related CN103096183B (zh) | 2013-02-05 | 2013-02-05 | 一种高效流媒体传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103096183B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104901783A (zh) * | 2014-03-06 | 2015-09-09 | 携程计算机技术(上海)有限公司 | 数据传输方法及服务器系统 |
CN105491397A (zh) * | 2015-12-01 | 2016-04-13 | 深圳市福云明网络科技有限公司 | 基于udt协议和ts切片相结合的视频实时推送的方法 |
CN108696771A (zh) * | 2017-04-11 | 2018-10-23 | 上海谦问万答吧云计算科技有限公司 | 一种视频播放方法及装置 |
CN105611424B (zh) * | 2015-12-28 | 2019-04-05 | 武汉鸿瑞达信息技术有限公司 | 基于rudp的音视频可靠传输qos方法、接收端及系统 |
CN109792444A (zh) * | 2016-09-30 | 2019-05-21 | 网络洞察力知识产权公司 | 实况内容分发系统中的播出缓冲 |
CN110299974A (zh) * | 2018-03-23 | 2019-10-01 | 天地融科技股份有限公司 | 一种数据接收方法及装置 |
CN111629279A (zh) * | 2020-04-13 | 2020-09-04 | 北京创享苑科技文化有限公司 | 一种基于定长格式的视频数据传输方法 |
CN113645192A (zh) * | 2021-07-16 | 2021-11-12 | 青岛小鸟看看科技有限公司 | Rtp数据包处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080075072A1 (en) * | 2006-09-25 | 2008-03-27 | Sercomm Corporation | WLAN packet control protocol for video streaming |
CN101222311A (zh) * | 2008-01-29 | 2008-07-16 | 杭州华三通信技术有限公司 | 实时报文丢包恢复方法、系统及接收端单元 |
CN101272339A (zh) * | 2008-05-15 | 2008-09-24 | 深圳华为通信技术有限公司 | 一种数据帧收发的方法、系统、终端和服务器 |
CN101552660A (zh) * | 2008-04-01 | 2009-10-07 | 中国移动通信集团公司 | 对流媒体数据进行重传、播放的方法、装置及通信系统 |
CN101945427A (zh) * | 2009-07-03 | 2011-01-12 | 深圳市融创天下科技发展有限公司 | 一种高效的流媒体传输方法 |
-
2013
- 2013-02-05 CN CN201310046549.XA patent/CN103096183B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080075072A1 (en) * | 2006-09-25 | 2008-03-27 | Sercomm Corporation | WLAN packet control protocol for video streaming |
CN101222311A (zh) * | 2008-01-29 | 2008-07-16 | 杭州华三通信技术有限公司 | 实时报文丢包恢复方法、系统及接收端单元 |
CN101552660A (zh) * | 2008-04-01 | 2009-10-07 | 中国移动通信集团公司 | 对流媒体数据进行重传、播放的方法、装置及通信系统 |
CN101272339A (zh) * | 2008-05-15 | 2008-09-24 | 深圳华为通信技术有限公司 | 一种数据帧收发的方法、系统、终端和服务器 |
CN101945427A (zh) * | 2009-07-03 | 2011-01-12 | 深圳市融创天下科技发展有限公司 | 一种高效的流媒体传输方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104901783A (zh) * | 2014-03-06 | 2015-09-09 | 携程计算机技术(上海)有限公司 | 数据传输方法及服务器系统 |
CN104901783B (zh) * | 2014-03-06 | 2019-06-18 | 携程计算机技术(上海)有限公司 | 数据传输方法及服务器系统 |
CN105491397B (zh) * | 2015-12-01 | 2019-02-22 | 深圳市福云明网络科技有限公司 | 基于udt协议和ts切片相结合的视频实时推送的方法 |
CN105491397A (zh) * | 2015-12-01 | 2016-04-13 | 深圳市福云明网络科技有限公司 | 基于udt协议和ts切片相结合的视频实时推送的方法 |
CN105611424B (zh) * | 2015-12-28 | 2019-04-05 | 武汉鸿瑞达信息技术有限公司 | 基于rudp的音视频可靠传输qos方法、接收端及系统 |
CN109792444A (zh) * | 2016-09-30 | 2019-05-21 | 网络洞察力知识产权公司 | 实况内容分发系统中的播出缓冲 |
CN109792444B (zh) * | 2016-09-30 | 2022-11-15 | 网络洞察力知识产权公司 | 实况内容分发系统中的播出缓冲 |
CN108696771A (zh) * | 2017-04-11 | 2018-10-23 | 上海谦问万答吧云计算科技有限公司 | 一种视频播放方法及装置 |
CN108696771B (zh) * | 2017-04-11 | 2021-03-09 | 苏州谦问万答吧教育科技有限公司 | 一种视频播放方法及装置 |
CN110299974A (zh) * | 2018-03-23 | 2019-10-01 | 天地融科技股份有限公司 | 一种数据接收方法及装置 |
CN111629279A (zh) * | 2020-04-13 | 2020-09-04 | 北京创享苑科技文化有限公司 | 一种基于定长格式的视频数据传输方法 |
CN113645192A (zh) * | 2021-07-16 | 2021-11-12 | 青岛小鸟看看科技有限公司 | Rtp数据包处理方法及装置 |
CN113645192B (zh) * | 2021-07-16 | 2024-06-21 | 青岛小鸟看看科技有限公司 | Rtp数据包处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103096183B (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103096183A (zh) | 一种高效流媒体传输方法 | |
JP6419235B2 (ja) | デジタル放送システムにおけるデータを受信する装置 | |
CN101529907B (zh) | 减少信道改变时间的装置和方法 | |
RU2634908C2 (ru) | Способ и устройство для управления доставкой медиаданных | |
CN103733631B (zh) | 媒体内容收发方法和使用该方法的收发设备 | |
EP3272128B1 (en) | Video stream transmission over ip network | |
US20150029856A1 (en) | Packets recovery system and method | |
KR20160139020A (ko) | Mmt 및 dash를 이용한 브로드캐스트 및 브로드밴드 하이브리드 서비스 | |
EP2649738B1 (fr) | Dispositif de sélection de flux de service numérique, et procédé, programme d'ordinateur et moyens de stockage correspondants | |
CN103532923B (zh) | 一种实时媒体流传输方法及系统 | |
EP2472799A1 (en) | Method, apparatus and system for rapid acquisition of multicast realtime transport protocol sessions | |
CN102550020A (zh) | 使用用于识别已丢失数据分组的校验和的重传的方法 | |
JP6516767B2 (ja) | Mmtpデカプセル化バッファのシグナリング及び動作 | |
CN101944982B (zh) | 基于时间驱动滑动窗口协议的流媒体实时转发方法 | |
JP2019186963A (ja) | メディアデータに関する情報を送信する方法 | |
CN107800519A (zh) | 一种数据包的重传方法和重传系统 | |
US20100322420A1 (en) | Duplicate Address Detection Proxy in Edge Devices | |
JP2022121493A (ja) | 受信方法および端末 | |
US9647951B2 (en) | Media stream rate reconstruction system and method | |
JP4391412B2 (ja) | ディジタルストリームの動的多重化方法 | |
JP5383316B2 (ja) | 送信機と電子装置間の信号ストリームの簡略化された伝送方法 | |
WO2013098812A1 (en) | Transport over udp system and method | |
US10721171B2 (en) | Data transfer system and corresponding methods | |
US20120144443A1 (en) | System and method for executing source buffering for multiple independent group transmission of real-time encoded scalabe video contents | |
US9674569B2 (en) | Clock recovery in transponder-bonded systems using BCRs and marker packets at a set-top box |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151209 |
|
CF01 | Termination of patent right due to non-payment of annual fee |