CN103096183A - 一种高效流媒体传输方法 - Google Patents

一种高效流媒体传输方法 Download PDF

Info

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
time
frame
Prior art date
Application number
CN201310046549XA
Other languages
English (en)
Other versions
CN103096183B (zh
Inventor
戴琼海
张磊
Original Assignee
清华大学
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 清华大学 filed Critical 清华大学
Priority to CN201310046549.XA priority Critical patent/CN103096183B/zh
Publication of CN103096183A publication Critical patent/CN103096183A/zh
Application granted granted Critical
Publication of CN103096183B publication Critical patent/CN103096183B/zh

Links

Abstract

本发明提出了一种高效流媒体传输方法,其包括如下步骤:对接收端进行初始化;发送端对每帧的数据进行分包并传输;接收端对接收到的分包进行选择,该接收端设置有接收缓冲区,接收端将采用的分包存储在接收缓冲区中;解码模块对接收缓冲区中的分包进行组包和重传。本发明的流媒体传输方法逻辑处理简单、实时性强,不仅支持流媒体的实时传输功能,还具有容错和恢复功能。

Description

一种高效流媒体传输方法

技术领域

[0001] 本发明涉及数据传输技术领域,特别涉及一种在流媒体实时传输中包括数据分包和组包方法以及重传机制的高效流媒体传输方法。

背景技术

[0002] 在视频点播、在线视频直播这种实时性要求高的流媒体应用中,往往采用UDP(User Datagram Protocol,用户数据包协议)的传输方法来保证传输速度,但是由于UDP传输的不可靠性带来网络的丢包,从而造成视频质量差,影响通信效果。

[0003] 目前,广泛使用的一种UDP防丢包技术是Reliable UDP,这种技术是在出现丢包的情况下,接收端通过应用层协议到发送端重新请求丢失的包,这种方法虽然能够防止丢包,但是Reliable UDP在实时上会有一些损失,并且逻辑处理复杂。

发明内容

[0004] 本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种高效流媒体传输方法。

[0005] 为了实现本发明的上述目的,本发明提供了一种高效流媒体传输方法,其包括如下步骤:

[0006] S1:对接收端进行初始化;

[0007] S2:发送端对每帧的数据进行分包并传输;

[0008] S3:接收端对接收到的分包进行选择,所述接收端设置有接收缓冲区,所述接收端将采用的分包存储在所述接收缓冲区中;

[0009] S4:解码模块对所述接收缓冲区中的分包进行组包和重传。

[0010] 本发明的流媒体传输方法逻辑处理简单、实时性强,不仅支持流媒体的实时传输功能,还具有容错和恢复功能。

[0011] 在本发明的一种优选实施例中,解码模块获取系统当前的时间作为当前的播放时间,并根据缓冲时间将接收缓冲区的分包划分为组包区、重传区和最新分包区。在组包区,扫描每个分包,如果能够成功组包,则发送到显示模块,否则,丢弃该数据包的所有分包;在重传区,扫描每个分包,如果发现位于重传区的某个数据包存在缺失的分包,则向服务器发送信号,重传该分包;在最新分包区,不作任何处理。

[0012] 本发明将接收缓冲区的数据分包划分为不同的分区,逻辑处理更加简单,实时性更强,能够更广泛地应用于实时流媒体应用中。

[0013] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0014] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

[0015] 图1是本发明高效流媒体传输方法的流程图;

[0016] 图2是本发明一种优选实施方式中基于UDP的实时流媒体框架;

[0017] 图3是接收缓冲区各个功能分区的示意图。

具体实施方式

[0018] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

[0019] 图2示出了本发明一种优选实施方式中基于UDP的实时流媒体框架,该流媒体框架包括发送端、接收端和解码模块,基于该实时流媒体框架,本发明提供了一种高效流媒体传输方法,如图1所示,其包括如下步骤:

[0020] S1:对接收端进行初始化;

[0021] S2:发送端对每帧的数据进行分包并传输;

[0022] S3:接收端对接收到的分包进行选择,该接收端设置有接收缓冲区,接收端将采用的分包存储在接收缓冲区中;

[0023] S4:解码模块对接收缓冲区中的分包进行组包和重传。

[0024] 在本实施方式中,该高效流媒体传输方法具体为:

[0025] 第一步:对接收端进行初始化,包括对接收端的缓冲时间Ts,接收端的起始播放时间TO和接收端的上次播放时间Tp进行初始化。具体是设置流媒体的接收端的缓冲时间Ts,流媒体接收端的起始播放时间TO和上次播放时间Tp,在本实施例中,按照接收端收到的第一个数据包的时间作为起始时间。

[0026] 如图2所示,由于UDP传输是非可靠的,并且存在丢包和分包乱序到达的情况,在本实施方式中,可以在流媒体的接收端设置接收缓冲区,以方便后续的解码模块进行相应的处理。在本实施方式中,解码模块设置视频的帧率为f,通过接收到的视频流的任一数据包中获取。[0027] 第二步:发送端对每帧的数据进行分包并传输。

[0028] 由于采用UDP传输,在网络传输中可能存在丢包和分包乱序到达的情况。如果对每帧的数据包直接进行传输,在网络层会自动进行分包和组包,如果有一个分包丢失,则整个数据包丢失,重传整个数据包的代价非常大。在本实施方式中,在网络情况不是特别的理想的情况下,对每帧的数据可以在应用层进行分包,如果存在丢包则只需要对特定的分包进行重传。采用分包和重传的机制能够更好的保证视频传输的质量。

[0029] 在本实施方式中,分包前,每帧的数据包含的信息包括时间戳和帧号,进行分包后,每个分包包含的信息包括该分包对应的数据帧的时间戳,该分包对应的数据帧的帧号、总分包数、该分包的ID。例如,如果数据帧的时间戳为T,帧号为F,可以切分成K个分包,那么相应的分包的信息组合为〈T,F,K, 1>,<T, F,K, 2>,…,<Τ, F,K, K〉。发送端依次将K个分包发送到接收端。在本实施方式中,每个分包的大小为一个MTU。

[0030] 第三步:接收端对接收到的分包进行选择,该接收端设置有接收缓冲区,接收端将采用的分包存储在接收缓冲区中。在这个过程中,如果接收到的分包的时间戳小于接收端上次播放时间与接收端缓冲时间之差,则直接丢弃;如果接收到的分包的时间戳不小于接收端上次播放时间与接收端缓冲时间之差,则将该分包有序插入到接收缓冲区队列中,若接收缓冲区队列中存在重复的分包,则将该接收到的分包直接丢弃。具体是:

[0031] 接收端每次从发送端接收到一个分包后,并获得了该分包的时间戳Ti,若该分包满足如下公式(I)则直接丢弃。

[0032] Ti < Tp-Ts (I)

[0033] 其中,Tp为接收端上次播放时间,Ts为接收端缓冲时间,。

[0034] 满足公式(I)说明时间戳在该包之前的数据包在解码模块已经播放显示了,该分包不再具有任何作用,直接丢弃。

[0035] 若不满足公式(I),则分包按照〈帧号,分包ID> 二元组的关键码有序插入到接收端的接收缓冲区中,分包按照〈帧号,分包ID>的二元组进行有序排列,具体可以是但不限于采用帧号和分包ID由小到大或由大到小的顺序排列。

[0036] 在将分包插入到接收缓冲区队列过程中,如果发现存在〈帧号,分包ID> 二元组一样的分包,则说明该分包已存在,现在接收到的分包是服务器重传的分包,直接丢弃即可。

[0037] 第四步:解码模块对接收缓冲区中的分包进行组包和重传。

[0038] 在本实施方式中,解码模块每隔一定的时间对接收缓冲区中的分包进行组包和重传。具体的组包和重传的方法为:

[0039] 首先,解码模块获取系统当前的时间作为当前的播放时间,并根据缓冲时间Ts将缓冲区的分包划分为组包区、重传区和最新分包区。具体的分割方法为,获取系统当前的时间T作为当前播放时间,将时间戳小于T-Ts的分包集定义为组包区;将时间戳位于区间(T-Ts7T)内,即时间戳小于T且大于或等于T-Ts的分包集定义为重传区,其他分包的集合为最新分包区。

[0040] 然后,对各个分区进行相应的处理,在组包区,扫描每个分包,如果能够成功组包,则发送到显示模块,否则,丢弃该数据包的所有分包。例如,对于帧号为F的数据包,其所有的分包都已经接收到,则可以完整的组成一个数据包,发送给显示模块。否则,将该数据包的所有不完整的分包全部丢弃。在重传区,扫描每个分包,如果发现位于重传区的某个数据包存在缺失的分包,则向服务器发送信号,重传该分包,例如,对于帧号为F的数据包,如果某个分包缺失,则接收端给流媒体服务器发送信号,让服务器重传该分包。在最新分包区,不作任何处理。最后,更新接收端上次播放时间Tp为当前播放时间T。

[0041] 在对各分包进行处理后,解码模块将所有成功组好的数据包发送给显示模块进行显不O

[0042] 本发明的流媒体传输方法不仅支持流媒体的实时传输功能,还具有容错和恢复功能。其将接收缓冲区的数据分包划分为不同的分区,逻辑处理更加简单,实时性更强,能够更广泛地应用于实时流媒体应用中。

[0043] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述 意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。[0044] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗g的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (8)

1.一种高效流媒体传输方法,其特征在于,包括如下步骤: S1:对接收端进行初始化; S2:发送端对每帧的数据进行分包并传输; S3:接收端对接收到的分包进行选择,所述接收端设置有接收缓冲区,所述接收端将采用的分包存储在所述接收缓冲区中; S4:解码模块对所述接收缓冲区中的分包进行组包和重传。
2.按权利要求1所述的高效流媒体传输方法,其特征在于,在所述步骤SI中,对接收端的缓冲时间、接收端的起始播放时间和接收端上次播放时间进行初始化。
3.按权利要求1所述的高效流媒体传输方法,其特征在于,在所述步骤S2中,对每帧的数据在应用层进行分包。
4.按权利要求1或3所述的高效流媒体传输方法,其特征在于,在所述步骤S2中,每帧的数据包含的信息包括时间戳和帧号,进行分包后,每个分包包含的信息包括所述分包对应的数据帧的时间戳、所述分包对应的数据帧的帧号、总分包数、所述分包的ID。
5.按权利要求1所述的高效流媒体传输方法,其特征在于,在所述接收缓冲区中,分包按照〈帧号,分包ID>的二元组进行有序排列。
6.按权利要求1或5所述的高效流媒体传输方法,其特征在于,在所述步骤S3中,如果接收到的分包的时间戳小于接收端上次播放时间与接收端缓冲时间之差,则直接丢弃;如果接收到的分包的时间戳不小于接收端上次播放时间与接收端缓冲时间之差,则将所述分包有序插入到接收缓冲区中,若接收缓冲区队列中存在重复的分包,则将所述接收到的分包直接丢弃。
7.按权利要求1所述的高效流媒体传输方法,其特征在于,在所述步骤S4中,解码模块对接收缓冲区中的分包进行组包和重传的方法为: 541:解码模块获取系统当前的时间作为当前的播放时间,并根据缓冲时间将接收缓冲区的分包划分为组包区、重传区和最新分包区; 542:在组包区,扫描每个分包,如果能够成功组包,则发送到显示模块,否则,丢弃该数据包的所有分包; 在重传区,扫描每个分包,如果发现位于重传区的某个数据包存在缺失的分包,则向服务器发送信号,重传该分包; 在最新分包区,不作任何处理。
8.按权利要求7所述的高效流媒体传输方法,其特征在于,将接收缓冲区的分包划分为组包区、重传区和最新分包区的方法为: 时间戳小于T-Ts的分包的集合为组包区,时间戳位于区间(T-Ts,T)的分包的集合为重传区,其他分包的集合为最新分包区,其中,T为系统当前的时间,Ts为接收端的缓冲时间。
CN201310046549.XA 2013-02-05 2013-02-05 一种高效流媒体传输方法 CN103096183B (zh)

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 CN103096183B (zh) 2013-02-05 2013-02-05 一种高效流媒体传输方法

Country Status (1)

Country Link
CN (1) CN103096183B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
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方法、接收端及系统

Citations (5)

* Cited by examiner, † Cited by third party
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 深圳市融创天下科技发展有限公司 一种高效的流媒体传输方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104901783A (zh) * 2014-03-06 2015-09-09 携程计算机技术(上海)有限公司 数据传输方法及服务器系统
CN104901783B (zh) * 2014-03-06 2019-06-18 携程计算机技术(上海)有限公司 数据传输方法及服务器系统
CN105491397A (zh) * 2015-12-01 2016-04-13 深圳市福云明网络科技有限公司 基于udt协议和ts切片相结合的视频实时推送的方法
CN105491397B (zh) * 2015-12-01 2019-02-22 深圳市福云明网络科技有限公司 基于udt协议和ts切片相结合的视频实时推送的方法
CN105611424B (zh) * 2015-12-28 2019-04-05 武汉鸿瑞达信息技术有限公司 基于rudp的音视频可靠传输qos方法、接收端及系统
CN108696771A (zh) * 2017-04-11 2018-10-23 上海谦问万答吧云计算科技有限公司 一种视频播放方法及装置

Also Published As

Publication number Publication date
CN103096183B (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
US9479584B2 (en) Synchronous media rendering of demuxed media components across multiple devices
KR101530825B1 (ko) 멀티미디어 시스템에서 미디어 컨텐츠 전송 방법
US8831006B2 (en) Modification of live streams
US10356148B2 (en) Apparatus and method for transmitting multimedia data in hybrid network
US9807452B2 (en) Practical delivery of high quality video using dynamic adaptive hypertext transport protocol (HTTP) streaming (DASH) without using HTTP in a broadcast network
US9538210B2 (en) Employing helper transport streams for re-multiplexing
KR101649533B1 (ko) 미디어 콘텐트 송수신 방법 및 그를 이용한 송수신 장치
US10433024B2 (en) Method and apparatus for configuring content in a broadcast system
JP6317872B2 (ja) 異なるネットワークを介して受信したコンテンツのレンダリングを同期するデコーダ及びそれにおける方法
US10009660B2 (en) Media content transceiving method and transceiving apparatus using same
CN101345605B (zh) 发送设备和发送方法、接收设备、错误校正系统及其方法
US10484445B2 (en) Apparatus and method for transmitting multimedia data in a broadcast system
CN101861709B (zh) 用于具有合并的自动重复请求的自适应前向纠错以在无线局域网中进行可靠多播的方法和装置
EP2665261A1 (en) Content reproduction device, content reproduction method, delivery system, content reproduction program, recording medium, and data structure
US8605710B2 (en) Method and apparatus for reducing channel change response times for IPTV
EP2197153B1 (en) Method and device for reliable multicast using UDP
EP2383941B1 (en) Client terminal, method and system for downloading streaming media
ES2327868T3 (es) Sincronizacion de hitos en flujos de emisiones multimedia.
US7240121B2 (en) Content providing apparatus and content providing method
US8301982B2 (en) RTP-based loss recovery and quality monitoring for non-IP and raw-IP MPEG transport flows
US20060107187A1 (en) Buffering packets of a media stream
US10382515B2 (en) Method and apparatus for media data delivery control
TWI388170B (zh) 網路中串流資料內容之方法及裝置
CN105264846A (zh) 发送装置、传输流的发送方法以及处理装置
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
C14 Grant of patent or utility model