流媒体数据的传输方法及系统的制作方法

文档序号:7692201阅读:165来源:国知局
专利名称:流媒体数据的传输方法及系统的制作方法
技术领域
本发明涉及通信领域,更具体地涉及一种流媒体数据的传输方 法及系统。
背景技术
现有P2P流媒体视频直播、视频点播产品在流数据传输方面, 绝大部分都是采用传输控制协议(Transfer Control Protocol,简称 TCP)传送数据。TCP协议虽然能保证数据完整地到达终端,但在 互联网上的传输速度较慢。更重要的是,目前互联网80%的用户都 是在内网或防火墙内,用户与用户很难进行P2P链接,用户要想观 看-见频必须通过月良务器进4亍传输,无法达到P2P的岁文果,同时又占 用了服务器大量的带宽,造成服务器数据堵塞,速度纟爰'ft,且用户 端的观看效果很不理想,比如画面不清晰、不流畅、易中断等。对 于月l务商来i兌,又增大了运营成本,减少了经济效益。也有少许产品采用用户数据净艮十办i义(User Datagram Protocl ,简 称UDP)传送数据。由于UDP传输在网络中的速度是任何协议都 无法比拟的,所以在P2P流々某体凄史l居传llr中,大家还老卩希望利用 UDP传输。但是,UDP传输是一种无链接的不可靠的网络传输方式。 它的无连接性造成了它在大量数据传输的过程中链接的不稳定,丟 包率极高,从而导致传输速度下降、流数据质量不高、经常出现在 网络传输中丟包、— 见频画面缺帧现象的众多问题。发明内容鉴于以上所述的一个或多个问题,本发明提供了 一种流媒体数 据的传输方法及系统。才艮据本发明的一个实施例的流士某体数据的传输方法包括发送 方在向接收方发送流々某体数据的同时,将所发送的流:煤体数据保存 到发送队列中;发送方以第一时间为周期向接收方发送发送队列中 保存的所有流^ 某体数据。才艮据本发明的一个实施例的流A某体数据的传输方法还包括发 送方接收来自接收方的分别用于标识接收方接收到的来自发送方的 一个或多个流々某体lt据的一个或多个标识信息,并#4居该一个或多 个标识信息将该一个或多个流媒体数据从发送队列中删除。其中,发送方通过包括以下内容中的一种或多种的流数据协i义 格式向接收方发送流》某体数据发送流々某体数据需占用的总数据长 度、发送流媒体数据的协议代码、用于标识流媒体凄t据的标识号、 以及流i某体数据的数据体。根据本发明的一个实施例的流媒体数据的传输方法还包括接 收方接收来自发送方的流媒体数据,并将用于标识流々某体数据的标 识信息保存在4妾收队列中;接收方以第二时间为周期向发送方发送 接收队列中保存的分别用于标识接收方接收到的来自发送方的一个 或多个流媒体数据的一个或多个标识信息。其中,4妄收方通过包括以下内容中的一种或多种的确认协议才各 式向发送方发送分别用于标识接收方接收到的来自发送方的一个或 多个流媒体数据的一个或多个标识信息发送分别用于标识一个或 多个流媒体数据的一个或多个标识信息需占用的数据总长度、使用的协议代码、以及分别用于标识接收方接收到的来自发送方的 一个 或多个流4某体数据的一个或多个标识信息本身。才艮据本发明的另 一个实施例的流纟某体数据的传,俞方法,包括以下步骤接收方接收来自发送方的流媒体数据,并将用于标识流媒 体数据的标识信息保存在4妄收队列中;接收方以第二时间为周期向自发送方的一个或多个流:煤体数据的一个或多个标识4言息。其中,接收方通过包括以下内容中的一种或多种的确认协议格 式向发送方发送分别用于标识接收方4妄收到的来自发送方的一个或 多个流:樣体数据的一个或多个标识信息发送分别用于标识接收方 接收到的来自发送方的一个或多个流^泉体数据的一个或多个标识信 息需占用的数据总长度、使用的协议代码、以及分别用于标识接收 方接收到的来自发送方的 一个或多个流媒体数据的 一个或多个标识 信息本身。冲艮据本发明又一实施例的流媒体凄文据的传输系统包4舌数据发 送单元,用于向数据接收单元发送流媒体数据,以及将流媒体数据 保存到发送队列中;数据重发单元,用于以第一时间为周期向数据 接收单元发送发送队列中保存的所有流媒体数据,以及用于在接收 到来自接收确认单元的分别用于标识数据接收单元接收到的来自数 据发送单元的一个或多个流媒体数据的一个或多个标识信息时,将 一个或多个流媒体数据从发送队列中删除;数据接收单元,用于接 收来自It据发送单元的流々某体数据,以及将用于标识流々某体数据的 标识信息^呆存在4妄收队列中;以及4妄收确i人单元,用于以第二时间接收到的来自数据发送单元的一个或多个流々某体教::梧的一个或多个 标识信息。其中,数据发送单元和数据重发单元用于向数据4妄收单元发送流々某体^t据的流凝:据协"i义4各式包括以下内容中的一种或多种发送 流媒体数据需占用的总数据长度、发送流i某体数据的协议代码、用 于标识流媒体数据的标识号、以及流媒体数据的数据体。接收确认 单元用于向数据重发单元发送分别用于标识凄t据接收单元4妄收到的 来自数据发送单元的一个或多个流4某体数据的一个或多个标识信息 的确认协议格式包括以下内容中的一种或多种发送分别用于标识 数据接收单元接收到的来自数据发送单元的一个或多个流媒体数据 的一个或多个标识信息需占用的数据总长度、使用的协议代码、以多个流々某体数据的一个或多个标识信息本身。在本发明中,将需要传输的流媒体数据全部进行标识,在整个 传输过程中发送方均以接收方发出的接收确认信息确定每块流媒体 数据是否传输成功。本发明大大降低了用户数据报协议(UDP )传 输的丢包情况,保持了 UDP的传输速度,确保了接收方接收数据的 完整有效,从而保障了视频流媒体播放过程的流畅和稳定。


此处所i兌明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其i兌明用于解释本发明,并 不构成对本发明的不当限定。在附图中图1是根据本发明的第一实施例的流媒体数据的传输方法的流 程图;图2是根据本发明的第二实施例的流々某体数据的传输方法的流 程图;以及图3是根据本发明的第二实施例的流媒体数据的传输系统的框图。
具体实施方式
下面参考附图,详细i兌明本发明的具体实施方式
。图1是根据本发明的第一实施例的流媒体数据的传输方法的流 程图。如图1所示,该传l命方法包括S102,发送方在向4妄收方发 送流媒体数据的同时,将所发送的流媒体数据保存到发送队列中; S104,发送方以第 一 时间为周期向接收方发送发送队列中保存的所 有流媒体数据。具体地,在图l所示的方法中,发送方在P2P流媒体数据传输 过程中,首先建立发送队列。然后,发送方向接收方每发送一个流 媒体数据,都同时将所发送的流媒体数据插入到发送队列中。其中,发送队列中的所有流媒体数据均需要包含其数据的全部信息内容, 以保证发送队列中的所有流媒体数据的完整有效。因为UDP是一种无连接不可靠的传输协议,所以发送方发送过 的流媒体数据,接收方不一定都能接收到,所以发送方需要采用定 时循环的方法,重新将发送队列里的流媒体数据发送给接收方。图2是根据本发明的第二实施例的流媒体数据的传输方法的流 程图。如图2所示,该传输方法包括S202,接收方接收来自发送 方的流媒体数据,并将用于标识流媒体数据的标识信息保存在接收 队列中;S204,接收方以第二时间为周期向所述发送方发送接收队 列中保存的分别用于标识*接收方接收到的来自发送方的一个或多个 流々某体^t据的 一个或多个标识信息。具体地,在图2所示的方法中,4妄收方首先建立4妄收队列,并 在接收到发送方的流媒体数据后(或排序、或保存、或插_放),将所 接收的流媒体数据的标识信息保存到接收队列里。然后,接收方会 定时将接收队列里的标识信息发送给发送方,以使发送方接收到来 自4妄收方的标识信息后,获知接收方已成功4妾收对应于来自4妄收方 的标识信息的流々某体4fet据。为了进一步改进接收方和发送方的发送装置和接收装置的运转 性能,可以将图1和图2所示的方法结合在一起来l吏用。具体地, 结合图1和图2所示的方法在接收方和发送方传输流々某体数据的过 程包4舌以下内容(1 )在P2P流媒体数据的传输过程中,在发送方建立发送队列, 在4妄4文方建立4妄"丈队列。(2) 发送方向接收方发送流媒体数据,同时将所发送的流媒体 数据插入到发送队列中。其中,发送队列中的所有流々某体数据均需 要包含其数据的全部信息内容,以保证发送队列中的所有流媒体数 据的完整有效。(3) 因为UDP是一种无连接不可靠的传输协议,发送方发送过 的流士某体数据4妄收方不一定都能接收到,所以发送方会采用定时循 环的方法,重新发送发送队列里的流J 某体数据给接收方。(4) 接收方接收到发送方的流:煤体数据后(或排序、或保存、 或播放),将所接收的流媒体数据的标识信息保存到接收队列中。其 中,接收队列与发送队列不同,接收方的接收队列只是包含接收方所接收的流媒体数据的标识信息,这些标识信息主要是用来定位各 流媒体数据。(5) 接收方定时将接收队列里的标识信息发送给发送方,发送 方接收到来自接收方的标识信息后,便根据标识信息4巴接收方已经 接收到的流媒体数据从发送队列中清除掉,以避免下次重新循环发 送时重复发送该流媒体数据。(6) 当发送方多次发送某一流々某体数据时,他有可能也多次接 收到了该流々某体数据的标识信息,但z池只对第一次接收的标识信息 进行处理(把该标识信息指定的流々某体数据从发送队列中清除掉), 该流々某体^:据的其他标识信息则^皮抛弃掉。其中,发送方可以通过包括以下内容中的一种或多种的流凄t据 协议格式向接收方发送流J 某体数据发送流^ 某体数据需占用的总数 据长度(Length ),占用16位;发送流媒体数据的协议代码(Protocol Code),占16位;用于标识流媒体数据的标识号(DataNO.),占用 16位、以及流々某体数据的凄t据体(Data Streaming),即一见频数据。其中,接收方可以通过包括以下内容中的一种或多种的确认协 议格式向发送方发送分别用于标识接收方接收到的来自发送方的一 个或多个流々某体数据的一个或多个标识信息发送分别用于标识一 个或多个流媒体数据的 一个或多个标识信息需占用的数据总长度 (Length),占用16位、4吏用的协议代码(Protocol Code ),占用16 位、以及分别用于标识4妄收方接收到的来自发送方的 一个或多个流 々某体凄t据的一个或多个标识信息本身(Data NO.),每个流々某体凄史据 的顺序号,占用16位。图3是根据本发明的第二实施例的流媒体数据的传输系统的框图。如图3所示,该传输系统包括凄t据发送单元302,用于向数据接收单元发送流媒体数据,以及将流媒体数据保存到发送队列中;数据重发单元304,用于以第一时间为周期向凄t据4妄收单元发送发送队列中保存的所有流媒体数据,以及用于在接收到来自接收确认单元的分别用于标识数据4妄收单元4妄收到的来自数据发送单元的一个或多个流媒体数据的一个或多个标识信息时,将一个或多个流媒体数据从发送队列中删除;数据接收单元306,用于接收来自数据发送单元的流J 某体lt据,以及将用于标识流:樣体数据的标识信息保存在接收队列中;以及接收确认单元308,用于以第二时间为周期向数据重发单元发送接收队列中保存的分别用于标识接收方接收到的来自凄欠据发送单元的一个或多个流々某体数据的一个或多个标识信 自下面以在北京和上海之间传送例如—见频文件《长江七号》为例 对上述方法和上述系统时限的过程进4亍i兌明。其中,北京的非对称凄t字用户线^各(ADSL)为lMb带宽,上海的ADSL为1Mb带宽。 发送方Al (位于北京)、 <接收方Bl (位于上海)均为内网(非/>网 IP,局域网)用户。《长江七号》的大小为396,620,620B,格式为 RMVB。具体地,该过禾呈包括以下内容(1) 由于两终端均在局域网内,两终端无法直4妄进4亍链接,首 先利用服务器程序中的UDP穿透模块,将两终端进行穿透,能够 利用UDP协议相互传送数据。(2) 发送方Al建立发送队列,此发送队列目前为空;接收方 Bl建立接收队列,此接收队列也为空。(3) 为了使接收方B1的视频流畅播放,此视频文件的数据将 按照P2P机制进行传输,也就是此视频文件的数据将被很多个终端分别传送给接收方B1,每个终端传送《长江七号》的不同数据块, 发送方Al只是众多个终端中的一个,故发送方Al也只负责《长江 七号》数据中的一块数椐。(4 )根据服务器程序的数据分配模块,发送方Al被分配了大 小为10* 1024* 1024 B的凝:据流。(5 )发送方Al首先将10*1024*1024 B的数据流分割成5 * 1024个凄t据包,每个包大小为2*1024 B。(6 )将在每个数据包的前端加上标识凄t据(标识号),占用两 个字节;再在每个lt据标识的前端加上协i义代码(20023 ),占用两 个字节。(7) 计算出包含数据流、标识号和协议代码的长度。(8) 将该长度在加上2 (因为长度本身也要占用两个字节), 形成完整数据包总长度,总长度为2*1024+ 2+ 2 +2 B。(9) 将总长度加到协议代码的前端,占用两个字节。(10) 将完整数据包插入到发送队列中(根据机制,每次只插 入500个完整凄t据包)。(11 )设计定时器。(12)根据定时器的设置,发送方Al会每次发送一个完整数 据包给接收方Bl。(13 )4妄收方Bl 4妄收发送方Al发送的完整lt据包,由于UDP 是无连接的传输协议,它并不能保i正发送方Al发送的所有完整数据包都能到达接收方Bl,所以接收方Bl只能接收到发送方Al发 送#:据的70%左右,其中30%的完整#:据包,^皮网络抛弃掉。(14)接收方B1接收到来自发送方Al的完整数据包后,先进 行拆包,把协议代码、标识数据(标识号)和视频数据流分离出来, 数据流根据标识号的顺序,将被保存到数据緩存中,以供接收方B1 的播放器播放。(15 )在标识数据(标识号)的前端加上协议代码(20024 ), 占用两个字节。(16) 在协议代码的前端加上长度,占用两个字节,总长度为 6个字节,形成确认数据包(每接收到一个完整数据包,都要组合 成一个确i人凄t据包)。(17) 接收方Bl将这些确认数据包插入到接收队列中,根据 定时器和网络的实际情况,*接收方Bl会定时发送一个或多个确"i人 数据包给Al;(18) 发送方Al接收到发送方Bl的确认数据包后,先拆包, 把协议代码和标识数据(标识号)分离出来。(19) 发送方Al才艮据分离出来的标识号,将发送队列中含有 该标识号的完整数据包删除掉。(20) 根据定时器的设置,发送方Al会定时发送发送队列中 剩余的完整lt据包,4妻着1"更会重复处理13—19的步骤,直到发送队 列为空。(21 )才艮据传输的实际情况,接收方B1在50秒内全部接收到 10*1024*1024 B的数据流,发送方A1重复发送了 7次后,发送方Al的发送队列为空,即将10*1024*1024B的数据流全部发送完毕, 时间为35牙少。综上所述,在整个传输过程中,发送方和接收方会各自建立队 列,发送队列存放的是已传送的流媒体数据的完整数据包,而接收 队列存放的只是接收方接收到的流媒体数据的标识信息。接收方接 收到流媒体数据时,会向发送方发送该流媒体数据的标识信息,发 送方接收到该标识信息后,会根据标识信息将发送队列里与该标识 信息对应的流媒体数据清除掉。发送队列中未被删除的流媒体数据, 即是发送方没有收到其标识信息的流4某体数据,这些留在发送队列 中的流^ 某体数据会被发送方重新发送给接收方,并在等到接收方的 标识信息后删除,完成一个lt据包的传输过程。整个传输过程采用 这种循环传输方法,直到发送队里没有数据为止。通过本发明,大大降低了用户数据报协议(UDP)传输的丢包 情况,保持了 UDP的传输速度,确保了接收方接收数据的完整有效, 从而保障了视频流媒体播放过程的流畅和稳定。以上所述^f又为本发明的实施例而已,并不用于限制本发明,对 于本领域的4支术人员来"i兌,本发明可以有各种更改和变化。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均 应包含在本发明的权利要求范围之内。
权利要求
1.一种流媒体数据的传输方法,其特征在于,包括发送方在向接收方发送流媒体数据的同时,将所发送的流媒体数据保存到发送队列中;所述发送方以第一时间为周期向所述接收方发送所述发送队列中保存的所有流媒体数据。
2. 根据权利要求1所述的流媒体数据的传输方法,其特征在于, 还包括所述发送方4妄收来自所述4妄收方的分别用于标识所述4姿 收方接收到的来自所述发送方的一个或多个流々某体数据的一 个或多个标识信息,并才艮据所述一个或多个标识信息将所述一 个或多个流4某体凝:才居/人所述发送队列中删除。
3. 根据权利要求1或2所述的流媒体数据的传输方法,其特征在 于,所述发送方通过包括以下内容中的一种或多种的流数据协 议格式向所述接收方发送所述流媒体数据发送所述流纟某体数 据需占用的总数据长度、发送所述流々某体数据的协议代码、用 于标识所述流媒体数据的标识号、以及所述流々某体数据的数据 体。
4. 根据权利要求2所述的流媒体数据的传输方法,其特征在于, 还包括所述接收方接收来自所述发送方的所述流々某体数据,并将 用于标识所述流々某体凄t据的标识信息^呆存在4妄收队列中;所述接收方以第二时间为周期向所述发送方发送所述接 收队列中保存的分别用于标识所述接收方接收到的来自所述 发送方的所述一个或多个流々某体数据的所述一个或多个标识 信息。
5. 根据权利要求4所述的流媒体数据的传输方法,其特征在于, 所述4妾收方通过包4舌以下内容中的 一种或多种的确i人协议格 式向所述发送方发送分别用于标识所述接收方4妄收到的来自 所述发送方的所述 一 个或多个流媒体数据的所述 一 个或多个 标识信息发送分别用于标识所述一个或多个流々某体数据的所 述一个或多个标识信息需占用的数据总长度、 <吏用的协议代 码、以及分别用于标识所述接收方接收到的来自所述发送方的 所述一个或多个流J 某体数据的所述一个或多个标识信息本身。
6. —种流媒体数据的传输方法,其特征在于,包括接收方接收来自发送方的流媒体数据,并将用于标识所述 流々某体数据的标识信息保存在4妄收队列中;所述接收方以第二时间为周期向所述发送方发送所述接 收队列中保存的分别用于标识所述接收方接收到的来自所述 发送方的一个或多个流々某体凝:据的一个或多个标识信息。
7. 根据权利要求6所述的流媒体数据的传输方法,其特征在于, 所述4妄收方通过包4舌以下内容中的 一 种或多种的确i人协i义才各 式向所述发送方发送分别用于标识所述接收方4妾收到的来自 所述发送方的所述一个或多个流J 某体^:据的所述一 个或多个 标识信息发送分别用于标识所述接收方接收到的来自所述发 送方的所述一个或多个流i某体凄t据的所述一个或多个标识信 息需占用的数据总长度、使用的协议代码、以及分别用于标识所述接收方接收到的来自所述发送方的所述一个或多个流媒 体数据的所述一个或多个标识信息本身。
8. —种流媒体数据的传输系统,其特征在于,包括数据发送单元,用于向数据*接收单元发送流々某体#1:据,以 及将所述流媒体数据保存到发送队列中;数据重发单元,用于以第一时间为周期向所述数据接收单 元发送所述发送队列中保存的所有流媒体数据,以及用于在接收到的来自所述数据发送单元的一个或多个流J 某体数据的一 个或多个标识信息时,将所述一个或多个流媒体数据从所述发 送队列中删除;所述数据接收单元,用于接收来自所述数据发送单元的所 述流々某体数据,以及将用于标识所述流々某体数才居的标识信息保 存在4妄收队列中;以及4妄收确:〖人单元,用于以第二时间为周期向所述^:据重发单到的来自所述数据发送单元的所述一个或多个流々某体数据的 所述一个或多个标识信息。
9. 根据权利要求8所述的流媒体数据的传输系统,其特征在于, 所述数据发送单元和所述数据重发单元用于向所述数据^接收 单元发送所述流4某体凄史据的流凄U居协i义格式包4舌以下内容中 的一种或多种发送所述流媒体数据需占用的总数据长度、发 送所述流々某体数据的协议代码、用于标识所述流々某体ft据的标 识号、以及所述流々某体数据的^t据体。
10. 根据权利要求8所述的流媒体数据的传输系统,其特征在于, 所述接收确认单元用于向所述数据重发单元发送分别用于标识所述数据4妄收单元4妄收到的来自所述lt据发送单元的所述 一个或多个流媒体数据的所述一个或多个标识信息的确认协议格式包括以下内容中的一种或多种发送分别用于标识所述 数据接收单元接收到的来自所述数据发送单元的所述一个或 多个流媒体数据的所述一个或多个标识信息需占用的数据总 长度、使用的协议代码、以及分别用于标识所述凄史据接收单元 接收到的来自所述数据发送单元的所述一个或多个流媒体数 据的所述一个或多个标识信息本身。
全文摘要
本发明公开了一种流媒体数据的传输方法及系统。其中,该传输方法包括发送方在向接收方发送流媒体数据的同时,将所发送的流媒体数据保存到发送队列中;发送方以第一时间为周期向接收方发送发送队列中保存的所有流媒体数据。通过本发明,大大降低了用户数据报协议传输的丢包情况,保持了用户数据报协议的传输速度,确保了接收方接收数据的完整有效,从而保障了视频流媒体播放过程的流畅和稳定。
文档编号H04L29/06GK101277270SQ20081009740
公开日2008年10月1日 申请日期2008年5月23日 优先权日2008年5月23日
发明者姚建渠, 瞻 李, 郭晓东 申请人:北京中讯宏达科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1