CN103457956A - 基于多条tcp连接的http流媒体直播方法和*** - Google Patents
基于多条tcp连接的http流媒体直播方法和*** Download PDFInfo
- Publication number
- CN103457956A CN103457956A CN2013104248406A CN201310424840A CN103457956A CN 103457956 A CN103457956 A CN 103457956A CN 2013104248406 A CN2013104248406 A CN 2013104248406A CN 201310424840 A CN201310424840 A CN 201310424840A CN 103457956 A CN103457956 A CN 103457956A
- Authority
- CN
- China
- Prior art keywords
- connection
- http
- session identification
- client
- tcp
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims abstract description 47
- 230000011218 segmentation Effects 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 20
- 238000012546 transfer Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 8
- 239000006185 dispersion Substances 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了基于多条TCP连接的HTTP流媒体直播方法和***,能够显著提升传输速率,解决网络拥塞或丢包带来的播放卡顿问题,能够支持更高码率的直播播放,提升用户体验。其技术方案为:本发明通过连接绑定技术,在服务端将若干个TCP连接关联起来,流式数据分散到各个连接中进行传输。客户端将各个连接收到的分段流式数据拼接起来即可进行播放。
Description
技术领域
本发明涉及HTTP流媒体直播的技术,尤其涉及高码率的HTTP流媒体直播方法和***。
背景技术
HTTP流媒体直播是使用HTTP(超文本传输协议)进行流媒体直播的流式数据的传输。目前市场主流的协议包括Apple的HLS(HTTP Live Streaming)、Adobe的HDS(HTTP Dynamic Streaming)以及Microsoft的HSS(HTTP Smooth Streaming)。上述三种协议的核心机制是将直播流式数据进行切片,并生成不断更新的文件列表信息来告知播放端去下载、拼接和播放切片数据。其优势在于传输协议简单,劣势在于切片数据受关键帧间隔影响,交互流程复杂,客户端需要累积若干个切片后才能播放,直播的播放延迟较大。
业界常见的另一种HTTP直播协议是将直播流式数据虚拟成为一个无限大的FLV(FLASH VIDEO)文件,并通过HTTP协议进行传输。该协议保持HTTP协议的简单性和高可用性,并简化交互协议,播放延迟可以大幅缩短。该协议通常被称为HDL,即HTTP Download Live streaming。
HDL协议的工作原理如下:客户端仅发送一次HTTP GET请求,请求中携带需要访问的直播流名,服务器返回HTTP响应,不携带消息体内容长度直接发送无限长FLV文件内容,或者使用HTTP CHUNK模式将无限长FLV文件按分段模式发送。客户端获得HTTP消息体中的FLV内容时即可播放。
例如请求直播流http://flv.drag.test.com/live/livestream.flv,HTTP交互如下:
请求:
GET/live/livestream.flv?wsHost=flv.drag.test.com HTTP/1.1
accept:*/*
accept-encoding:gzip,deflate
accept-language:zh-CN
connection:Keep-Alive
host:www.abc.com
referer:http://www.abc.com/vplayer.swf
响应:
HTTP/1.1200OK
Content-Type:video/x-flv
FLV.......................................................................
HDL协议的缺点是:其数据传输依赖于单连接的TCP传输,当网络出现拥塞或者丢包时,TCP传输效率容易受到影响,导致直播流式数据无法及时传输到客户端,进而导致客户端播放出现卡顿甚至无法播放,影响用户体验。当直播码率较高时该现象更为明显。
发明内容
本发明的目的在于解决上述问题,提供了一种基于多条TCP连接的HTTP流媒体直播方法和***,能够显著提升传输速率,解决网络拥塞或丢包带来的播放卡顿问题,能够支持更高码率的直播播放,提升用户体验。
本发明的技术方案为:本发明揭示了一种基于多条TCP连接的HTTP流媒体直播方法,包括:
客户端发起若干个TCP连接并完成绑定;
服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输;
客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
根据本发明的基于多条TCP连接的HTTP流媒体直播方法的一实施例,在数据传输期间,客户端实时根据网络状态的变化动态调整TCP连接的个数。
根据本发明的基于多条TCP连接的HTTP流媒体直播方法的一实施例,客户端发起若干个TCP连接并完成绑定的步骤进一步包括:
客户端发起第一个连接并发送HTTP请求;
服务端为该请求分配全局唯一的会话标识,并在HTTP响应中发送给客户端,同时开始传输流式数据;
客户端从HTTP响应中获取会话标识,并连续发起第2至N个连接,在HTTP请求中携带该会话标识;
服务端根据每个请求中的会话标识,将第2至第N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
根据本发明的基于多条TCP连接的HTTP流媒体直播方法的一实施例,客户端发起若干个TCP连接并完成绑定的步骤进一步包括:
客户端随机生成近似全局唯一的会话标识;
客户端连续发起第1至N个连接,在HTTP请求中携带所述会话标识,其中N是自然数;
服务端根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
根据本发明的基于多条TCP连接的HTTP流媒体直播方法的一实施例,客户端对TCP连接个数的动态调整包括:
客户端动态检测数据的传输状态,以确认是否满足直播播放的需求;
当传输速率低于直播播放需求时,启动TCP连接动态增加过程,动态增加是指客户端发起若干个新连接并发送HTTP请求,HTTP请求中携带直播流名称以及会话标识;
服务端逐个处理新的请求HTTP,并根据会话标识与原有的N个连接进行关联,新关联的连接加入到流式数据的传输中。
本发明还揭示了一种基于多条TCP连接的HTTP流媒体直播***,包括:
连接建立绑定装置,客户端发起若干个TCP连接并完成绑定;
分散传输装置,服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输;
拼接播放装置,客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
根据本发明的基于多条TCP连接的HTTP流媒体直播***的一实施例,***还包括:
连接数量调整装置,在数据传输期间实时根据网络状态的变化动态调整TCP连接的个数。
根据本发明的基于多条TCP连接的HTTP流媒体直播***的一实施例,连接建立绑定装置进一步包括:
HTTP请求发起模块,客户端发起第一个连接并发送HTTP请求;
会话标识分配模块,服务端为该请求分配全局唯一的会话标识,并在HTTP响应中发送给客户端,同时开始传输流式数据;
会话标识携带模块,客户端从HTTP响应中获取会话标识,并连续发起第2至N个连接,在HTTP请求中携带该会话标识;
连接关联模块,服务端根据每个请求中的会话标识,将第2至第N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
根据本发明的基于多条TCP连接的HTTP流媒体直播***的一实施例,连接建立绑定装置进一步包括:
会话标识生成模块,客户端随机生成近似全局唯一的会话标识;
会话标识携带模块,客户端连续发起第1至N个连接,在HTTP请求中携带所述会话标识,其中N是自然数;
连接关联模块,服务端根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
根据本发明的基于多条TCP连接的HTTP流媒体直播***的一实施例,连接数量调整装置包括:
状态检测模块,客户端动态检测数据的传输状态,以确认是否满足直播播放的需求;
连接增加模块,当传输速率低于直播播放需求时,启动TCP连接动态增加过程,动态增加是指客户端发起若干个新连接并发送HTTP请求,HTTP请求中携带直播流名称以及会话标识;
新增连接关联模块,服务端逐个处理新的请求HTTP,并根据会话标识与原有的N个连接进行关联,新关联的连接加入到流式数据的传输中。
本发明对比现有技术有如下的有益效果:本发明用多个TCP连接来传输直播流式数据。其核心思想是通过连接绑定技术,在服务端将若干个TCP连接关联起来,流式数据分散到各个连接中进行传输。客户端将各个连接收到的分段流式数据拼接起来即可进行播放。相较于传统技术,本发明解决HDL协议单TCP连接传输速率抖动厉害,无法流畅观看直播尤其是高清码率的问题。这种HTTP直播传输方案达到更快速更稳定的直播内容传输,显著提升播放用户体验。
附图说明
图1示出了本发明的基于多条TCP连接的HTTP流媒体直播方法的第一实施例的流程图。
图2示出了本发明的基于多条TCP连接的HTTP流媒体直播方法的第二实施例的流程图。
图3示出了本发明的TCP连接建立和绑定的第一种实施方式的细化流程图。
图4示出了本发明的TCP连接建立和绑定的第二种实施方式的细化流程图。
图5示出了本发明的TCP连接数量动态调整的细化流程图。
图6示出了本发明的基于多条TCP连接的HTTP流媒体直播***的第一实施例的结构图。
图7示出了本发明的基于多条TCP连接的HTTP流媒体直播***的第二实施例的结构图。
图8示出了本发明的连接建立绑定装置的第一种示例的细化结构图。
图9示出了本发明的连接建立绑定装置的第二种示例的细化结构图。
图10示出了本发明的连接数量调整装置的细化结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
基于多条TCP连接的HTTP流媒体直播方法的第一实施例
图1示出了本发明的基于多条TCP连接的HTTP流媒体直播方法的第一实施例的流程。请参见图1,本实施例的HTTP流媒体直播方法的实施步骤详述如下。
步骤S11:客户端发起若干个TCP连接并完成绑定。
在客户端和服务端建立多个TCP连接并通过连接绑定技术进行关联。
客户端对于TCP连接并完成绑定的步骤可以通过两种方式来实现。
第一种方式如图3所示,请同时参见图3,TCP连接建立和绑定的第一种方式的细化步骤详述如下。
步骤S110:客户端发起和服务端的第一个TCP连接并发送HTTP请求。HTTP请求中仅包含直播流名称,没有会话标识(Session ID)。
步骤S112:服务端发现HTTP请求为新请求时(即无Session ID),则为该请求分配一个全局唯一的会话标识,通过这一会话标识管理第一个连接,并将这一会话标识放入HTTP响应中返回给客户端,此时第一个连接可以同时开始传输FLV流式数据。
步骤S114:客户端从HTTP响应中获取会话标识,并连续发起和服务端的第2至N个连接并发送HTTP请求,在HTTP请求中携带直播流名称和会话标识。
步骤S116:服务端处理第2至N个连接及请求,从请求中获取会话标识,通过这一会话标识找到第1个连接,将第2至第N个连接和第1个连接进行关联,每关联一个新的TCP连接,该新的连接加入到FLV流式数据的传输中。
第二种方式如图4所示,请同时参见图4,TCP连接建立和绑定的第二种方式的细化步骤详述如下。
步骤S111:客户端随机生成近似全局唯一的会话标识。
步骤S113:客户端连续发起第1至第N个连接,发送携带相同直播流名称和会话标识的HTTP请求,其中N是自然数。
步骤S115:服务端逐个处理第1至第N个请求,根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到FLV流式数据的传输中。
服务端在处理当前的请求时,当发现会话标识为未知标识时,认为该连接为新连接,通过该会话标识来管理该连接,当发现会话标识和其余某个连接的会话标识相同时,即可归入到同一个会话标识进行管理,完成关联。
步骤S12:服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输。
FLV流式数据的分段可以有很多种方法,如将虚拟FLV大文件进行定长分段,并为每段添加头部信息,包含分段编号、分段长度等。本发明并不限制具体的分段方法。
服务端通过监测每个连接的传输状态,选择最空闲的TCP连接来传输最新的分段数据。连接传输状态的监测可以有很多种方法,如检查操作***TCP发送缓冲区长度,缓冲区最短的即为最空闲的连接。本发明并不限制具体的检测方法。
步骤S13:客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
客户端从各TCP连接收到HTTP响应,其中HTTP消息体中包含了无限的分段数据,通过每个分段的头部信息,完成数据的还原。
基于多条TCP连接的HTTP流媒体直播方法的第二实施例
图2示出了本发明的基于多条TCP连接的HTTP流媒体直播方法的第二实施例的流程。请参见图2,本实施例的HTTP流媒体直播方法的实施步骤详述如下。
步骤S21:客户端发起若干个TCP连接并完成绑定。
在客户端和服务端建立多个TCP连接并通过连接绑定技术进行关联。
客户端对于TCP连接并完成绑定的步骤可以通过两种方式来实现。
第一种方式如图3所示,请同时参见图3,TCP连接建立和绑定的第一种方式的细化步骤详述如下。
步骤S110:客户端发起和服务端的第一个TCP连接并发送HTTP请求。HTTP请求中仅包含直播流名称,没有会话标识(Session ID)。
步骤S112:服务端发现HTTP请求为新请求时(即无Session ID),则为该请求分配一个全局唯一的会话标识,通过这一会话标识管理第一个连接,并将这一会话标识放入HTTP响应中返回给客户端,此时第一个连接可以同时开始传输FLV流式数据。
步骤S114:客户端从HTTP响应中获取会话标识,并连续发起和服务端的第2至N个连接并发送HTTP请求,在HTTP请求中携带直播流名称和会话标识。
步骤S116:服务端处理第2至N个连接及请求,从请求中获取会话标识,通过这一会话标识找到第1个连接,将第2至第N个连接和第1个连接进行关联,每关联一个新的TCP连接,该新的连接加入到FLV流式数据的传输中。
第二种方式如图4所示,请同时参见图4,TCP连接建立和绑定的第二种方式的细化步骤详述如下。
步骤S111:客户端随机生成近似全局唯一的会话标识。
步骤S113:客户端连续发起第1至第N个连接,发送携带相同直播流名称和会话标识的HTTP请求,其中N是自然数。
步骤S115:服务端逐个处理第1至第N个请求,根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到FLV流式数据的传输中。
服务端在处理当前的请求时,当发现会话标识为未知标识时,认为该连接为新连接,通过该会话标识来管理该连接,当发现会话标识和其余某个连接的会话标识相同时,即可归入到同一个会话标识进行管理,完成关联。
步骤S22:服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输。
FLV流式数据的分段可以有很多种方法,如将虚拟FLV大文件进行定长分段,并为每段添加头部信息,包含分段编号、分段长度等。本发明并不限制具体的分段方法。
服务端通过监测每个连接的传输状态,选择最空闲的TCP连接来传输最新的分段数据。连接传输状态的监测可以有很多种方法,如检查操作***TCP发送缓冲区长度,缓冲区最短的即为最空闲的连接。本发明并不限制具体的检测方法。
步骤S23:在数据传输期间,客户端实时根据网络状态的变化动态调整TCP连接的个数。
客户端对TCP连接个数的动态调整的细化步骤请同时参见图5,详述如下。
步骤S230:在传输过程中,客户端动态检测数据的传输状态,以确认是否满足直播播放的需求。检测的方法有很多,如统计所有连接数据的到达速率,与预期码率进行对比。
步骤S231:当传输速率低于直播播放需求时,启动TCP连接动态增加过程,动态增加是指客户端发起若干个新连接并发送HTTP请求,HTTP请求中携带直播流名称以及会话标识。
步骤S232:服务端逐个处理新的请求HTTP,并根据会话标识与原有的N个连接进行关联,新关联的连接加入到FLV流式数据的传输中。
步骤S24:客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
客户端从各TCP连接收到HTTP响应,其中HTTP消息体中包含了无限的分段数据,通过每个分段的头部信息,完成数据的还原。
基于多条TCP连接的HTTP流媒体直播***的第一实施例
图6示出了本发明的基于多条TCP连接的HTTP流媒体直播***的第一实施例的结构。请参见图6,本实施例的HTTP流媒体直播***包括:连接建立绑定装置11、分散传输装置12、拼接播放装置13。连接建立绑定装置11的输出端连接分散传输装置12,分散传输装置12的输出端连接拼接播放装置13。
连接建立绑定装置11中,客户端发起若干个TCP连接并完成绑定。在客户端和服务端建立多个TCP连接并通过连接绑定技术进行关联。
连接建立绑定装置11的具体实现可以有两种方式,第一种方式如图8所示,第二种方式如图9所示。
请同时参见图8,第一种方式的连接建立绑定装置11包括:HTTP请求发起模块110、会话标识分配模块112、会话标识携带模块114、以及连接关联模块116。
HTTP请求发起模块110的输出端连接会话标识分配模块112,会话标识分配模块112的输出端连接会话标识携带模块114,会话标识携带模块114的输出端连接连接关联模块116。
HTTP请求发起模块110中,客户端发起和服务端的第一个TCP连接并发送HTTP请求。HTTP请求中仅包含直播流名称,没有会话标识(Session ID)。
会话标识分配模块112中,服务端发现HTTP请求为新请求时(即无Session ID),则为该请求分配一个全局唯一的会话标识,通过这一会话标识管理第一个连接,并将这一会话标识放入HTTP响应中返回给客户端,此时第一个连接可以同时开始传输FLV流式数据。
会话标识携带模块114中,客户端从HTTP响应中获取会话标识,并连续发起和服务端的第2至N个连接并发送HTTP请求,在HTTP请求中携带直播流名称和会话标识。
连接关联模块116中,服务端处理第2至N个连接及请求,从请求中获取会话标识,通过这一会话标识找到第1个连接,将第2至第N个连接和第1个连接进行关联,每关联一个新的TCP连接,该新的连接加入到FLV流式数据的传输中。
请同时参见图9,第二种方式的连接建立绑定装置11包括:会话标识生成模块111、会话标识携带模块113、以及连接关联模块115。会话标识生成模块111的输出端连接会话标识携带模块113,会话标识携带模块113的输出端连接连接关联模块115。
会话标识生成模块111中,客户端随机生成近似全局唯一的会话标识;
会话标识携带模块113中,客户端连续发起第1至N个连接,在HTTP请求中携带所述会话标识,其中N是自然数。
连接关联模块115中,服务端逐个处理第1至第N个请求,根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到FLV流式数据的传输中。
服务端在处理当前的请求时,当发现会话标识为未知标识时,认为该连接为新连接,通过该会话标识来管理该连接,当发现会话标识和其余某个连接的会话标识相同时,即可归入到同一个会话标识进行管理,完成关联。
分散传输装置12中,服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输。
拼接播放装置13中,客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
基于多条TCP连接的HTTP流媒体直播***的第二实施例
图7示出了本发明的连接建立绑定装置的第二种示例的细化结构。请参见图7,本实施例的HTTP流媒体直播***包括:连接建立绑定装置21、分散传输装置22、连接数量调整装置23、以及拼接播放装置24。连接建立绑定装置21的输出端连接分散传输装置22,分散传输装置22的输出端连接连接数量调整装置23,连接数量调整装置23的输出端连接拼接播放装置24。
连接建立绑定装置21中,客户端发起若干个TCP连接并完成绑定。在客户端和服务端建立多个TCP连接并通过连接绑定技术进行关联。
连接建立绑定装置21的具体实现可以有两种方式,第一种方式如图8所示,第二种方式如图9所示。
请同时参见图8,第一种方式的连接建立绑定装置21包括:HTTP请求发起模块110、会话标识分配模块112、会话标识携带模块114、以及连接关联模块116。
HTTP请求发起模块110的输出端连接会话标识分配模块112,会话标识分配模块112的输出端连接会话标识携带模块114,会话标识携带模块114的输出端连接连接关联模块116。
HTTP请求发起模块110中,客户端发起和服务端的第一个TCP连接并发送HTTP请求。HTTP请求中仅包含直播流名称,没有会话标识(Session ID)。
会话标识分配模块112中,服务端发现HTTP请求为新请求时(即无Session ID),则为该请求分配一个全局唯一的会话标识,通过这一会话标识管理第一个连接,并将这一会话标识放入HTTP响应中返回给客户端,此时第一个连接可以同时开始传输FLV流式数据。
会话标识携带模块114中,客户端从HTTP响应中获取会话标识,并连续发起和服务端的第2至N个连接并发送HTTP请求,在HTTP请求中携带直播流名称和会话标识。
连接关联模块116中,服务端处理第2至N个连接及请求,从请求中获取会话标识,通过这一会话标识找到第1个连接,将第2至第N个连接和第1个连接进行关联,每关联一个新的TCP连接,该新的连接加入到FLV流式数据的传输中。
请同时参见图9,第二种方式的连接建立绑定装置21包括:会话标识生成模块111、会话标识携带模块113、以及连接关联模块115。会话标识生成模块111的输出端连接会话标识携带模块113,会话标识携带模块113的输出端连接连接关联模块115。
会话标识生成模块111中,客户端随机生成近似全局唯一的会话标识;
会话标识携带模块113中,客户端连续发起第1至N个连接,在HTTP请求中携带所述会话标识,其中N是自然数。
连接关联模块115中,服务端逐个处理第1至第N个请求,根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到FLV流式数据的传输中。
服务端在处理当前的请求时,当发现会话标识为未知标识时,认为该连接为新连接,通过该会话标识来管理该连接,当发现会话标识和其余某个连接的会话标识相同时,即可归入到同一个会话标识进行管理,完成关联。
分散传输装置22中,服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输。
连接数量调整装置23中,在数据传输期间实时根据网络状态的变化动态调整TCP连接的个数。
图10示出了连接数量调整装置23的细化结构。请参见图10,连接数量调整装置23包括:状态检测模块230、连接增加模块231、新增连接关联模块232。状态检测模块230的输出端连接连接增加模块231,连接增加模块231的输出端连接新增连接关联模块232。
状态检测模块230中,客户端动态检测数据的传输状态,以确认是否满足直播播放的需求。检测的方法有很多,如统计所有连接数据的到达速率,与预期码率进行对比。
连接增加模块231中,当传输速率低于直播播放需求时,启动TCP连接动态增加过程,动态增加是指客户端发起若干个新连接并发送HTTP请求,HTTP请求中携带直播流名称以及会话标识。
新增连接关联模块232中,服务端逐个处理新的请求HTTP,并根据会话标识与原有的N个连接进行关联,新关联的连接加入到FLV流式数据的传输中。
拼接播放装置24中,客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
上述实施例是提供给本领域普通技术人员来实现和使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书所提到的创新性特征的最大范围。
Claims (10)
1.一种基于多条TCP连接的HTTP流媒体直播方法,包括:
客户端发起若干个TCP连接并完成绑定;
服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输;
客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
2.根据权利要求1所述的基于多条TCP连接的HTTP流媒体直播方法,其特征在于,在数据传输期间,客户端实时根据网络状态的变化动态调整TCP连接的个数。
3.根据权利要求1所述的基于多条TCP连接的HTTP流媒体直播方法,其特征在于,客户端发起若干个TCP连接并完成绑定的步骤进一步包括:
客户端发起第一个连接并发送HTTP请求;
服务端为该请求分配全局唯一的会话标识,并在HTTP响应中发送给客户端,同时开始传输流式数据;
客户端从HTTP响应中获取会话标识,并连续发起第2至N个连接,在HTTP请求中携带该会话标识;
服务端根据每个请求中的会话标识,将第2至第N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
4.根据权利要求1所述的基于多条TCP连接的HTTP流媒体直播方法,其特征在于,客户端发起若干个TCP连接并完成绑定的步骤进一步包括:
客户端随机生成近似全局唯一的会话标识;
客户端连续发起第1至N个连接,在HTTP请求中携带所述会话标识,其中N是自然数;
服务端根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
5.根据权利要求2所述的基于多条TCP连接的HTTP流媒体直播方法,其特征在于,客户端对TCP连接个数的动态调整包括:
客户端动态检测数据的传输状态,以确认是否满足直播播放的需求;
当传输速率低于直播播放需求时,启动TCP连接动态增加过程,动态增加是指客户端发起若干个新连接并发送HTTP请求,HTTP请求中携带直播流名称以及会话标识;
服务端逐个处理新的请求HTTP,并根据会话标识与原有的N个连接进行关联,新关联的连接加入到流式数据的传输中。
6.一种基于多条TCP连接的HTTP流媒体直播***,包括:
连接建立绑定装置,客户端发起若干个TCP连接并完成绑定;
分散传输装置,服务端将流式数据进行分段并分散在已完成绑定的若干个TCP连接中进行数据传输;
拼接播放装置,客户端将各个TCP连接收到的分段流式数据拼接起来后进行播放。
7.根据权利要求6所述的基于多条TCP连接的HTTP流媒体直播***,其特征在于,***还包括:
连接数量调整装置,在数据传输期间实时根据网络状态的变化动态调整TCP连接的个数。
8.根据权利要求6所述的基于多条TCP连接的HTTP流媒体直播***,其特征在于,连接建立绑定装置进一步包括:
HTTP请求发起模块,客户端发起第一个连接并发送HTTP请求;
会话标识分配模块,服务端为该请求分配全局唯一的会话标识,并在HTTP响应中发送给客户端,同时开始传输流式数据;
会话标识携带模块,客户端从HTTP响应中获取会话标识,并连续发起第2至N个连接,在HTTP请求中携带该会话标识;
连接关联模块,服务端根据每个请求中的会话标识,将第2至第N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
9.根据权利要求6所述的基于多条TCP连接的HTTP流媒体直播***,其特征在于,连接建立绑定装置进一步包括:
会话标识生成模块,客户端随机生成近似全局唯一的会话标识;
会话标识携带模块,客户端连续发起第1至N个连接,在HTTP请求中携带所述会话标识,其中N是自然数;
连接关联模块,服务端根据每个请求中的会话标识,将第2至N个连接和第1个连接进行关联,每关联一个新的连接,该新的连接加入到流式数据的传输中。
10.根据权利要求7所述的基于多条TCP连接的HTTP流媒体直播***,其特征在于,连接数量调整装置包括:
状态检测模块,客户端动态检测数据的传输状态,以确认是否满足直播播放的需求;
连接增加模块,当传输速率低于直播播放需求时,启动TCP连接动态增加过程,动态增加是指客户端发起若干个新连接并发送HTTP请求,HTTP请求中携带直播流名称以及会话标识;
新增连接关联模块,服务端逐个处理新的请求HTTP,并根据会话标识与原有的N个连接进行关联,新关联的连接加入到流式数据的传输中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310424840.6A CN103457956B (zh) | 2013-09-17 | 2013-09-17 | 基于多条tcp连接的http流媒体直播方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310424840.6A CN103457956B (zh) | 2013-09-17 | 2013-09-17 | 基于多条tcp连接的http流媒体直播方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103457956A true CN103457956A (zh) | 2013-12-18 |
CN103457956B CN103457956B (zh) | 2017-02-08 |
Family
ID=49739910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310424840.6A Expired - Fee Related CN103457956B (zh) | 2013-09-17 | 2013-09-17 | 基于多条tcp连接的http流媒体直播方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103457956B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506493A (zh) * | 2014-12-04 | 2015-04-08 | 武汉市烽视威科技有限公司 | 一种实现hls内容回源和缓存的方法 |
CN104702592A (zh) * | 2015-01-08 | 2015-06-10 | 三星电子(中国)研发中心 | 流媒体下载方法和装置 |
CN105471869A (zh) * | 2015-11-23 | 2016-04-06 | 珠海全志科技股份有限公司 | 一种互联网电视内容请求的连接复用方法及*** |
CN105471760A (zh) * | 2014-09-12 | 2016-04-06 | 华为技术有限公司 | 一种路由方法、负载均衡的装置及数据通信*** |
CN108471344A (zh) * | 2018-03-30 | 2018-08-31 | 北京奥普维尔科技有限公司 | 一种基于fpga实现的双向多链接数据发送方法及装置 |
CN108600012A (zh) * | 2018-04-26 | 2018-09-28 | 深圳光华普惠科技有限公司 | 微服务架构监控*** |
CN110740351A (zh) * | 2019-11-14 | 2020-01-31 | 普联技术有限公司 | 一种传输流媒体数据的方法及设备 |
CN112689011A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种基于nfs协议的业务传输方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827111A (zh) * | 2010-05-12 | 2010-09-08 | 中兴通讯股份有限公司 | Tcp链接方法、网络***、客户端和服务器 |
WO2011150644A1 (zh) * | 2010-12-17 | 2011-12-08 | 华为技术有限公司 | 一种启动阶段的流媒体数据获取、发送方法及装置 |
-
2013
- 2013-09-17 CN CN201310424840.6A patent/CN103457956B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827111A (zh) * | 2010-05-12 | 2010-09-08 | 中兴通讯股份有限公司 | Tcp链接方法、网络***、客户端和服务器 |
WO2011150644A1 (zh) * | 2010-12-17 | 2011-12-08 | 华为技术有限公司 | 一种启动阶段的流媒体数据获取、发送方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105471760B (zh) * | 2014-09-12 | 2019-04-05 | 华为技术有限公司 | 一种路由方法、负载均衡的装置及数据通信*** |
CN105471760A (zh) * | 2014-09-12 | 2016-04-06 | 华为技术有限公司 | 一种路由方法、负载均衡的装置及数据通信*** |
CN104506493B (zh) * | 2014-12-04 | 2018-02-27 | 武汉市烽视威科技有限公司 | 一种实现hls内容回源和缓存的方法 |
CN104506493A (zh) * | 2014-12-04 | 2015-04-08 | 武汉市烽视威科技有限公司 | 一种实现hls内容回源和缓存的方法 |
CN104702592B (zh) * | 2015-01-08 | 2018-09-11 | 三星电子(中国)研发中心 | 流媒体下载方法和装置 |
CN104702592A (zh) * | 2015-01-08 | 2015-06-10 | 三星电子(中国)研发中心 | 流媒体下载方法和装置 |
CN105471869A (zh) * | 2015-11-23 | 2016-04-06 | 珠海全志科技股份有限公司 | 一种互联网电视内容请求的连接复用方法及*** |
CN105471869B (zh) * | 2015-11-23 | 2019-05-21 | 珠海全志科技股份有限公司 | 一种互联网电视内容请求的连接复用方法及*** |
CN108471344A (zh) * | 2018-03-30 | 2018-08-31 | 北京奥普维尔科技有限公司 | 一种基于fpga实现的双向多链接数据发送方法及装置 |
CN108471344B (zh) * | 2018-03-30 | 2021-07-02 | 北京奥普维尔科技有限公司 | 一种基于fpga实现的双向多链接数据发送方法及装置 |
CN108600012A (zh) * | 2018-04-26 | 2018-09-28 | 深圳光华普惠科技有限公司 | 微服务架构监控*** |
CN110740351A (zh) * | 2019-11-14 | 2020-01-31 | 普联技术有限公司 | 一种传输流媒体数据的方法及设备 |
CN112689011A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种基于nfs协议的业务传输方法、装置、设备及介质 |
CN112689011B (zh) * | 2020-12-24 | 2023-05-26 | 北京浪潮数据技术有限公司 | 一种基于nfs协议的业务传输方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103457956B (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103457956A (zh) | 基于多条tcp连接的http流媒体直播方法和*** | |
US20170155928A1 (en) | Method, Device and System for Playing Live Video | |
US20170155695A1 (en) | Method, device and system for uploading live video | |
CN102790925B (zh) | 一种在线流媒体播放的方法及点播终端 | |
CN105471869A (zh) | 一种互联网电视内容请求的连接复用方法及*** | |
EP3595325A1 (en) | Method for realizing multicast and relevant network device | |
US9628352B2 (en) | Method, apparatus and system for downloading file in content delivery network | |
EP3120523A1 (en) | Bandwidth management in a content distribution network | |
WO2019128800A1 (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
US20130219441A1 (en) | Method, server and terminal for audio and video on demand | |
WO2007025474A1 (fr) | Systeme de communication de reseau et procede de telechargement de fichier | |
CN104009938A (zh) | 基于路由层面的长连接的方法和*** | |
US20150271226A1 (en) | Transport accelerator implementing a multiple interface architecture | |
CN107612912B (zh) | 一种设置播放参数的方法和装置 | |
MX2015002628A (es) | Sistema y metodo para entregar un contenido audio-visual a un dispositivo de un cliente. | |
CN106657143A (zh) | 一种流媒体传输方法、装置、服务器及终端 | |
CN108933764A (zh) | 一种实现快速起播的方法和装置 | |
WO2017161757A1 (zh) | 一种流媒体文件分发方法及*** | |
WO2022166593A1 (zh) | 点对点网络调度方法和*** | |
US20150127837A1 (en) | Relay apparatus and data transfer method | |
CN103401946A (zh) | Http上传加速方法和*** | |
CN104010001A (zh) | 移动终端中同类联网请求进行连接通信的方法和*** | |
CN103731684A (zh) | 一种点播到直播的视频切换方法、设备及*** | |
WO2019128692A1 (zh) | 一种媒体处理架构及方法 | |
WO2023061060A1 (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170208 |