一种实现hls直播码率个数动态调整的系统及方法_2

文档序号:9814756阅读:来源:国知局
br>[0038]Host:172.16.0.67:808
[0039]User-Agent:VLC/2.1.5LibVLC/2.1.5
[0040]Range: bytes = 0-
[0041]Connect1n:close
[0042]Icy-MetaData:1
[0043]HTTP/1.1 206Partial Content
[0044]Date:Fri,230ct 2015 09:08:36GMT
[0045]Server: Apache/2.2.29(CentOS)
[0046]Last-Modified:Fri,230ct 2015 09:08:01GMT
[0047]ETag:"529c029-c0_522clf2cb5e40"
[0048]Accept-Ranges: bytes
[0049]Content-Length:192
[0050]Content-Range: bytes 0-191/192
[0051]Connect1n:close
[0052]Content-Type:applicat1n/vnd.apple.mpegurI
[0053]#EXTM3U
[0054]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDWIDTH= 1000000
[0055]l/01.m3u8
[0056]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDffIDTH=3000000
[0057]2/02.m3u8
[0058]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDffIDTH=6000000
[0059]3/03.m3u8
[0060]直播源增加8M码率之后的主m3u8文件如下:
[0061 ]GET/fonsview_hls/CBR_HD/CBR_HD_14431535789241086.m3u8HTTP/l.I
[0062]Host:172.16.0.67:808
[0063]User-Agent:VLC/2.1.5LibVLC/2.1.5
[0064]Range: bytes = 0-
[0065]Connect1n:close
[0066]Icy-MetaData:1
[0067]HTTP/1.1 206Partial Content
[0068]Date:Fri,230ct 2015 09:08:36GMT
[0069]Server: Apache/2.2.29(CentOS)
[0070]Last-Modified:Fri,230ct 2015 09:08:01GMT[0071 ]ETag:"529c029-c0_522clf2cb5e40"
[0072]Accept-Ranges: bytes
[0073]Content-Length:253
[0074]Content-Range: bytes 0-252/253
[0075]Connect1n:close
[0076]Content-Type:applicat1n/vnd.apple.mpegurI
[0077]#EXTM3U
[0078]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDWIDTH= 1000000
[0079]1/01.m3u8
[0080]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDffIDTH=3000000[0081 ] 2/02.m3u8
[0082]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDffIDTH=6000000
[0083]3/03.m3u8
[0084]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDffIDTH=8000000
[0085]4/04.m3u8
[0086]如图2所示,加入SM码率之前,终端向服务器请求直播,请求的URL是http://172.16.0.67/fonsview_hls/hls_live/index.m3u8,服务器收到请求后,将当前所有(包含1M、3M、6M)码率的主m3u8文件发送给终端。终端根据实际带宽(假定为7M左右),终端选择小于实际带宽且与实际带宽最接近的码率的ts分片(6M码率ts分片)进行播放。具体的,服务器将6M码率对应的、从当前录制点开始向前的至少三个ts分片URL,本实施例中为向前的12个ts分片(1_21.ts、1_22.ts、1_23.ts...1_33.ts),组成相应的子m3u8文件发给终端;终端选择最后三个ts分片(1_31.ts、1_32.ts、1_33.ts)依次播放。直播源在10: 30加入8M码率,此时终端根据当前网络状况自适应调整带宽,并每隔1s向服务器请求主m3u8文件,假定在11:30终端带宽调整为10M,终端检测到最新请求的主m3u8文件增加了8M码率,且8M小于当前的带宽10M,则立即切换到8M码率对应ts分片播放,如图2中的顺序①—②—③—④。
[0087]第二实施例:
[0088]如图3所示,服务器8:00开始录制,头端的直播源在12:30的时候减少3M码率,服务器检测到其请求的主m3u8文件中减少3M码率,停止对原来3M码率ts分片的存储和录制,从服务器主m3u8文件中去掉3M码率子m3u8文件URL,并更新服务器的主m3u8。服务器端3M码率磁盘存储分片ID从10001006开始往后停止录制,且服务器不删除此前已经存储的ts分片。
[0089]减少3M码率之前直播源主m3u8文件如下:
[0090]GET/fonsview_hls/CBR_HD/CBR_HD_14431535789241086.m3u8HTTP/l.I
[0091]Host:172.16.0.67:808
[0092]User-Agent:VLC/2.I.5LibVLC/2.1.5
[0093]Range: bytes = 0-
[0094]Connect1n:close
[0095]Icy-MetaData:1
[0096]HTTP/1.1 206Partial Content
[0097]Date:Fri,230ct 2015 09:08:36GMT
[0098]Server: Apache/2.2.29(CentOS)
[0099]Last-Modified:Fri,230ct 2015 09:08:01GMT
[0100]ETag:"529c029-c0-522clf2cb5e40"
[0101]Accept-Ranges: bytes
[0102]Content-Length:253
[0103]Content-Range: bytes 0-252/253
[0104]Connect1n:close
[0105]Content-Type:applicat1n/vnd.apple.mpegurI
[0106]#EXTM3U
[0107]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDWIDTH= 1000000
[0108]1/01.m3u8
[0109]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDffIDTH=3000000
[0110]2/02.m3u8
[0111]#EXT-X-STREAM-1NF:PROGRAM-1D = I,BANDffIDTH=6000000
[0112]3/03.m3u8
[0113]#EXT-X-STREAM-1NF: PROGRAM-1D = I,BANDWIDTH=8000000
[0114]4/04.m3u8
[0115]减少3M码率之后直播源主m3u8文件如下:
[0116]GET/fonsview_hls/CBR_HD/CBR_HD_14431535789241086.m3u8HTTP/l.I
[0117]Host:172.16.0.67:808
[0118]User-Agent:VLC/2.I.5LibVLC/2.1.5
[0119]Range: bytes = 0-
[0120]Connect1n:close
[0121]Icy-MetaData:1
[0122]HTTP/1.1 206Partial Content
[0123]Date:Fri,230ct 2015 09:08:36GMT
[0124]Server: Apache/2.2.29(CentOS)
[0125]Last-Modified:Fri,230ct 2015 09:08:01GMT
[0126]ETag:"529c029-c0-522clf2cb5e40"
[0127]Accept-Ranges: bytes
[0128]Content-Length:192
[0129]Content-Range:bytes 0-191/192
[0130]Connect1n:close
[0131]Content-Type:applicat1n/vnd.apple.mpegurI
[0132]#EXTM3U
[0133]#EXT-X-STREAM-1N
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1