CN106790005B - 实现低延时hls直播的***及方法 - Google Patents
实现低延时hls直播的***及方法 Download PDFInfo
- Publication number
- CN106790005B CN106790005B CN201611143468.1A CN201611143468A CN106790005B CN 106790005 B CN106790005 B CN 106790005B CN 201611143468 A CN201611143468 A CN 201611143468A CN 106790005 B CN106790005 B CN 106790005B
- Authority
- CN
- China
- Prior art keywords
- file
- live
- media
- media slicing
- local
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种实现低延时HLS直播的***及方法,涉及互联网多媒体领域。该***包括头端编码器、服务器和客户端,头端编码器用于提供动态更新的原始直播源;服务器用于向头端编码器获取原始直播源,实时动态更新索引文件并动态生成若干媒体分片文件,更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;实时发送索引文件和媒体分片文件,距直播点最近的一个媒体分片文件采用chunked编码的方式发送;客户端用于解析接收到的索引文件和媒体分片文件,并选择其中一个媒体分片文件的任意位置开始播放。本发明能弥补传统HLS直播***的高延时缺陷,最大限度降低时延,使HLS直播更接近直播点。
Description
技术领域
本发明涉及互联网多媒体领域,具体涉及一种实现低延时HLS直播的***及方法。
背景技术
HLS(Http Live Streaming)协议具有简单、自适应等诸多优势,是全球使用最广泛的互联网传输协议,HLS直播技术更是普遍应用于移动互联网流媒体的各个领域。但相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,传统的HLS协议直播***并不是真正的实时流媒体直播***。传统的HLS直播***中,服务器将从头端编码器获取到的媒体信息切分为若干个短而连续的ts格式的媒体分片文件,不断更新对应的m3u8格式的索引文件及最新的媒体分片文件,然后将最新的多个媒体分片文件连续不断地发送给客户端,客户端下载这些媒体分片文件并播放媒体数据。HLS的这种技术特点,决定了它的延迟一般会超过一个媒体分片文件时长,因此,HLS直播的延时总是会高于普通的流媒体直播协议。
发明内容
本发明的目的是为了克服传统HLS协议直播***存在高延时的不足,提供一种实现低延时HLS直播的***及方法,该***和方法能够弥补传统HLS直播***的高延时缺陷,最大限度降低时延,使HLS直播更接近直播点。
本发明提供一种实现低延时HLS直播的***,该***包括头端编码器、服务器和客户端,
所述头端编码器用于:提供动态更新的原始直播源;
所述服务器用于:向头端编码器获取原始直播源,根据原始直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;实时发送更新后的索引文件和至少三个媒体分片文件,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述客户端用于:解析接收到的索引文件和媒体分片文件,并根据需要选择其中一个媒体分片文件的任意位置开始播放。
在上述技术方案的基础上,所述原始直播源为用户数据报协议UDP组播直播源;所述服务器包括第一转换网元,所述第一转换网元用于:
向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;客户端请求播放直播时,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件实时发送给客户端,从直播点开始向前的至少三个媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
在上述技术方案的基础上,所述原始直播源为HLS单播直播源;所述服务器包括第一存储网元,所述第一存储网元用于:
向头端编码器获取HLS单播直播源,根据HLS单播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,将本地索引文件和本地媒体分片文件输出为本地HLS单播直播源,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;客户端请求播放直播时,将本地索引文件和本地媒体分片文件实时发送给客户端,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
在上述技术方案的基础上,所述原始直播源为UDP组播直播源;所述服务器包括第二转换网元和第二存储网元,其中,
所述第二转换网元用于:向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;所述第二存储网元请求录制直播时,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件发送给第二存储网元,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述第二存储网元用于:向第二转换网元请求录制直播,将第二转换网元发送的索引文件和媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;将本地索引文件和本地媒体分片文件实时发送给客户端,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
在上述技术方案的基础上,所述距直播点最近的一个媒体分片文件为正在生成的一个媒体分片文件,除距直播点最近的一个媒体分片文件外,服务器发送的其余媒体分片文件均为已经生成的媒体分片文件;所述服务器还用于:所述已经生成的媒体分片文件采用非分块传输编码的方式发送。
本发明提供一种应用于上述***的实现低延时HLS直播的方法,包括以下步骤:
所述头端编码器提供动态更新的原始直播源;
所述服务器向头端编码器获取原始直播源,根据原始直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;实时发送更新后的索引文件和至少三个媒体分片文件,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述客户端解析接收到的索引文件和媒体分片文件,并根据需要选择其中一个媒体分片文件的任意位置开始播放。
在上述技术方案的基础上,所述原始直播源为用户数据报协议UDP组播直播源;所述服务器给客户端实时发送更新后的索引文件和从直播点开始向前的至少三个媒体分片文件,从直播点开始向前的至少三个媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
在上述技术方案的基础上,所述原始直播源为HLS单播直播源;所述服务器向头端编码器获取HLS单播直播源,根据HLS单播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,将本地索引文件和本地媒体分片文件输出为本地HLS单播直播源,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;给客户端实时发送本地索引文件和本地媒体分片文件,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
在上述技术方案的基础上,所述原始直播源为UDP组播直播源;所述服务器包括第二转换网元和第二存储网元,所述第二转换网元向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;所述第二存储网元请求录制直播时,第二转换网元将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件发送给第二存储网元,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述第二存储网元向第二转换网元请求录制直播,将第二转换网元发送的索引文件和媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;给客户端实时发送本地索引文件和本地媒体分片文件,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
在上述技术方案的基础上,所述距直播点最近的一个媒体分片文件为正在生成的一个媒体分片文件,除距直播点最近的一个媒体分片文件外,服务器发送的其余媒体分片文件均为已经生成的媒体分片文件;所述已经生成的媒体分片文件采用非分块传输编码的方式发送。
与现有技术相比,本发明的优点如下:
(1)本发明中的服务器将距直播点最近的一个媒体分片文件采用分块传输编码(Chunked transfer encoding,chunked编码)的方式发送给客户端,距直播点最近的一个媒体分片文件是服务器中正在生成的媒体分片文件。将正在生成的媒体分片文件进行分块传输编码的方式发送,而不是等待媒体分片文件全部生成完之后才发送,能够最大限度加快直播最新媒体分片文件到达客户端的时效,最多能降低2~5s的延时。
(2)本发明对距直播点较远的已经生成的媒体分片文件可以采取非chunked编码的方式发送,从而减少编码和解码时间。本发明能够弥补传统HLS直播***的高延时缺陷,最大限度降低时延,使HLS直播更接近直播点。
附图说明
图1为本发明实施例3中实现低延时HLS直播***的拓扑结构图;
图2为本发明实施例3中实现低延时HLS直播方法的流程图;
图3为本发明实施例3中UDP组播转为HLS单播直播的示意图;
图4为本发明实施例3中服务器录制和存储HLS直播的示意图;
图5为本发明实施例3中客户端播放HLS单播直播的示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。为了描述简便,本发明实施例中,m3u8格式的索引文件均简称为m3u8文件,m3u8格式的主m3u8文件均简称为主m3u8文件,m3u8格式的子索引文件均简称为子m3u8文件;ts格式的媒体分片文件均简称为ts分片;分块传输编码均简称为chunked编码。本发明实施例中所称的直播点均指的是当前直播画面所对应的时间点。
实施例1:
本实施例提供一种实现低延时HLS直播的***,该***包括头端编码器、服务器和客户端,服务器包括第一转换网元;
头端编码器用于:提供动态更新的用户数据报协议UDP组播直播源;
第一转换网元用于将UDP组播直播源转换为HLS单播直播源,具体过程为:向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新m3u8文件并动态生成若干ts分片,保留从直播点开始向前的至少三个ts分片,将更新后的m3u8文件和从直播点开始向前的至少三个ts分片输出为输出HLS单播直播源;客户端向第一转换网元请求HLS单播直播源时,将m3u8文件和从直播点开始向前的至少三个ts分片实时发送给客户端,其中,距直播点最近的一个正在生成的ts分片采用chunked编码的方式发送;其余的已经生成的至少两个ts分片可以采用chunked编码或者非chunked编码方式发送;
客户端用于:向第一转换网元请求HLS单播直播源,解析m3u8文件和从直播点开始向前的至少三个ts分片,并根据需要选择其中一个ts分片的任意位置开始播放。
本实施例提供一种应用于上述***的实现低延时HLS直播的方法,包括以下步骤:
头端编码器提供动态更新的UDP组播直播源,第一转换网元向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新m3u8文件并动态生成若干ts分片,保留从直播点开始向前的至少三个ts分片,将更新后的m3u8文件和从直播点开始向前的至少三个ts分片输出为输出HLS单播直播源;
客户端向第一转换网元请求HLS单播直播源,第一转换网元将m3u8文件和从直播点开始向前的至少三个ts分片实时发送给客户端,其中,距直播点最近的一个正在生成的ts分片采用chunked编码的方式发送;其余的已经生成的至少两个ts分片可以采用chunked编码或者非chunked编码方式发送;
客户端解析m3u8文件和从直播点开始向前的至少三个ts分片,并根据需要选择其中一个ts分片的任意位置开始播放。
实施例2:
本实施例提供第二种实现低延时HLS直播的***,该***包括头端编码器、服务器和客户端,服务器包括第一存储网元;
头端编码器用于:提供动态更新的HLS单播直播源;
第一存储网元用于:向头端编码器获取HLS单播直播源,根据HLS单播直播源生成动态更新的m3u8文件并动态生成若干ts分片,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件进行录制并存储为本地m3u8文件和本地ts分片,将本地m3u8文件和本地ts分片输出为本地HLS单播直播源;客户端向第一存储网元请求本地HLS单播直播源时,将本地m3u8文件和本地ts分片实时发送给客户端,发送的本地ts分片个数≥从直播点开始向前的至少三个ts分片个数;本地ts分片中,距直播点最近的一个正在生成的ts分片采用chunked编码的方式发送;其余的已经生成的本地ts分片可以采用chunked编码或者非chunked编码方式发送;
客户端用于:向第一存储网元请求本地HLS单播直播源,解析本地m3u8文件和本地ts分片,并根据需要选择其中一个ts分片的任意位置开始播放。
本实施例提供一种应用于上述第二种***的实现低延时HLS直播的方法,包括以下步骤:
头端编码器提供动态更新的HLS单播直播源;
第一存储网元向头端编码器获取HLS单播直播源,根据HLS单播直播源生成动态更新的m3u8文件并动态生成若干ts分片,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件进行录制并存储为本地m3u8文件和本地ts分片,将本地m3u8文件和本地ts分片输出为本地HLS单播直播源;客户端向第一存储网元请求本地HLS单播直播源时,将本地m3u8文件和本地ts分片实时发送给客户端,发送的本地ts分片个数≥从直播点开始向前的至少三个ts分片个数;本地ts分片中,距直播点最近的一个正在生成的ts分片采用chunked编码的方式发送;其余的已经生成的本地ts分片可以采用chunked编码或者非chunked编码方式发送;
客户端解析本地m3u8文件和本地ts分片,并根据需要选择其中一个ts分片的任意位置开始播放。
实施例3:
参见图1所示,本实施例提供第三种实现低延时HLS直播的***,该***包括头端编码器、服务器和客户端,服务器包括第二转换网元和第二存储网元,第二转换网元和第二存储网元均具备chunked编码功能,客户端具备chunked解码功能;
第二转换网元用于:向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新m3u8文件并动态生成若干ts分片,将更新后的m3u8文件和从直播点开始向前的至少三个ts分片输出为HLS单播直播源;第二存储网元请求录制直播时,将更新后的m3u8文件和从直播点开始向前的至少三个ts分片发送给第二存储网元,距直播点最近的一个正在生成的ts分片采用chunked编码的方式发送;其余的已经生成的ts分片可以采用chunked编码或者非chunked编码方式发送;
第二存储网元用于:向第二转换网元请求录制直播,将第二转换网元发送的m3u8文件和ts分片进行录制并存储为本地m3u8文件和本地ts分片,本地ts分片的总个数≥从直播点开始向前的至少三个ts分片的总个数;将本地m3u8文件和本地ts分片实时发送给客户端,本地ts分片中,距直播点最近的一个正在生成的ts分片采用chunked编码的方式发送;其余的已经生成的本地ts分片可以采用chunked编码或者非chunked编码方式发送;
客户端用于:向第一存储网元请求本地HLS单播直播源,解析本地m3u8文件和本地ts分片,并根据需要选择其中一个ts分片的任意位置开始播放。
第二转换网元、第二存储网元和客户端均包括一个主m3u8文件和若干ts分片;主m3u8文件包含多个码率时,每个主m3u8文件中包括与码率个数相等的子m3u8文件的统一定位标识符url,每个子m3u8文件中包括多个ts分片的url。
参见图2所示,本实施例提供一种应用于上述第三种***的实现低延时HLS直播的方法,包括以下步骤:
S1、头端编码器提供动态更新的UDP组播直播源;以两种码率为例,头端编码器提供的UDP组播直播源的组播地址分别为:udp://224.11.11.10:12306和udp://224.11.11.11:12306;前者为第一码率组播地址,后者为第二码率组播地址;
S2、服务器包括第二转换网元和第二存储网元,第二转换网元向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新m3u8文件并动态生成若干ts分片,将更新后的m3u8文件和从直播点开始向前的至少三个ts分片输出为HLS单播直播源,从而实现UDP组播直播源到HLS单播直播源的转换;更新后的m3u8文件包括主m3u8文件和两个子m3u8文件;
UDP组播直播源转换到HLS单播直播源的具体过程参见图3所示,服务器10:00加入两个UDP组播直播并接收组播数据,生成一个主m3u8文件main.m3u8以及对应的子m3u8文件1.m3u8和2.m3u8;然后以10s为单位对组播数据进行切片,第二转换网元内存只保留包含当前ts分片的最新三个ts分片1_1.ts、1_2.ts、1_3.ts和2_1.ts、2_2.ts、2_3.ts,其中1_3.ts和2_3.ts为当前正在生成的ts分片,也就是距离直播点最近的一个ts分片;子m3u8文件1.m3u8中包含1_1.ts、1_2.ts、1_3.ts三个ts分片的url,子m3u8文件2.m3u8中包含2_1.ts、2_2.ts、2_3.ts三个ts分片的url。
服务器第二转换网元将UDP组播直播转换为HLS单播直播后的主m3u8文件url为http://172.16.0.129:9001/main.m3u8,对应的两个子m3u8文件url分别为:http://172.16.0.191:9001/1.m3u8;和http://172.16.0.191:9002/2.m3u8,具体示例如下:
主m3u8文件示例如下:
GET/main.m3u8HTTP/1.1
Range:bytes=0-
User-Agent:CDN/1.0
Via:172.16.0.161
Host:172.16.0.129:9001
Connection:close
HTTP/1.1 200OK
Content-Type:application/vnd.apple.mpegurl
Content-Length:174
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=706428
http://172.16.0.129:9001/1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2166662
http://172.16.0.129:9001/2.m3u8
名称为1.m3u8的子m3u8文件的示例如下:
GET/1.m3u8HTTP/1.1
Range:bytes=0-
User-Agent:CDN/1.0
Via:172.16.0.161
Host:172.16.0.129:9001
Connection:Keep-Alive
HTTP/1.1 200OK
Content-Type:application/vnd.apple.mpegurl
Content-Length:381
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:5507313
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:15Z
#EXTINF:10,
http://172.16.0.130:9001/1_5507313.ts
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:25Z
#EXTINF:10,
http://172.16.0.129:9001/1_5507314.ts
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:35Z
#EXTINF:10,
http://172.16.0.130:9001/1_5507315.ts
名称为2.m3u8的子m3u8文件的示例如下:
GET/2.m3u8HTTP/1.1
Range:bytes=0-
User-Agent:CDN/1.0
Via:172.16.0.161
Host:172.16.0.129:9001
Connection:Keep-Alive
HTTP/1.1 200OK
Content-Type:application/vnd.apple.mpegurl
Content-Length:381
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:5507315
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:25Z
#EXTINF:10,
http://172.16.0.130:9001/2_5507315.ts
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:35Z
#EXTINF:10,
http://172.16.0.129:9001/2_5507316.ts
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:45Z
#EXTINF:10,
http://172.16.0.130:9001/2_5507317.ts
第二存储网元请求录制直播时,第二转换网元将更新后的m3u8文件和从直播点开始向前的至少三个ts分片发送给第二存储网元,距直播点最近的一个ts分片采用chunked编码的方式发送;
S3、第二存储网元将第二转换网元发送的m3u8文件和ts分片进行录制并存储为本地m3u8文件和本地ts分片,本地ts分片的总个数≥从直播点开始向前的至少三个ts分片的总个数;
参见图4所示,服务器第二存储网元接收并存储转换后的m3u8文件及ts分片的过程为:第二存储网元收到第二转换网元的数据后生成自身对应的m3u8文件并存储在本地,根据第二转换网元的编码方式对数据进行解码并存储为本地m3u8文件和本地ts分片;本地m3u8文件包括主m3u8文件和两个子m3u8文件;
服务器第二存储网元存储的主m3u8文件及子m3u8文件示例如下:
主m3u8文件示例如下:
GET/fonsview_hls/hls_001?FvSeid=54e014f36b515f46&Fsv_filetype=0&Fsv_ctype=LIVES&Fsv_cid=1003
&Fsv_chan_hls_se_idx=0&Fsv_TBt=2874144&Fsv_ShiftEnable=1&Fsv_ShiftTsp=1&Fsv_SV_PARAM1=0&Fsv_otype=0
&Provider_id=fonsview_hls&Pcontent_id=hls_001HTTP/1.1
Host:172.16.0.161:8114
User-Agent:VLC/2.2.4LibVLC/2.2.4
Range:bytes=0-
Connection:close
Icy-MetaData:1
HTTP/1.1 200OK
Server:FonsView SS/1.0
Date:Thu,29Sep 2016 02:07:53GMT
Content-Type:application/vnd.apple.mpegurl
Cache-Control:no-cache
Pragma:no-cache
Accept-Ranges:bytes
Content-Length:628
Content-Range:bytes 0-627/628
Connection:close
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1003,BANDWIDTH=2167715
http://172.16.0.161:8114/fonsview_hls/hls_001?FvSeid=54e014f36b515f46&Fsv_filetype=1&Fsv_ctype=LIVES
&Fsv_cid=1003&Fsv_chan_hls_se_idx=0&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=1&Fsv_ShiftTsp=1&
Provider_id=fonsview_hls&Pcontent_id=hls_001&Fsv_otype=0
#EXT-X-STREAM-INF:PROGRAM-ID=1003,BANDWIDTH=706428
http://172.16.0.161:8114/fonsview_hls/hls_001?FvSeid=54e014f36b515f46&Fsv_filetype=1&Fsv_ctype=LIVES
&Fsv_cid=1003&Fsv_chan_hls_se_idx=0&Fsv_rate_id=1&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=1&Fsv_ShiftTsp=1
&Provider_id=fonsview_hls&Pcontent_id=hls_001&Fsv_otype=0
其中第一码率对应的包含最后三个ts分片url的子m3u8文件示例如下:
GET/fonsview_hls/hls_001?FvSeid=54e014f36b515f46&Fsv_filetype=1&Fsv_ctype=LIVES&Fsv_cid=1003
&Fsv_chan_hls_se_idx=0&Fsv_rate_id=0&Fsv_SV_PARAM1=0&Fsv_ShiftEnable=1&Fsv_ShiftTsp=1
&Provider_id=fonsview_hls&Pcontent_id=hls_001&Fsv_otype=0HTTP/1.1
Host:172.16.0.161:8114
User-Agent:VLC/2.2.4LibVLC/2.2.4
Range:bytes=0-
Connection:close
Icy-MetaData:1
HTTP/1.1 200 OK
Server:FonsView SS/1.0
Date:Thu,29 Sep 2016 02:07:53 GMT
Content-Type:application/vnd.apple.mpegurl
Cache-Control:no-cache
Pragma:no-cache
Accept-Ranges:bytes
Content-Length:2976
Content-Range:bytes 0-2975/2976
Connection:close
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:5507304
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:15Z
#EXTINF:10,883036
http://172.16.0.161:8114/LIVES/1475114775_0010000028_0000000005.ts?FvSeid=54e014f36b515f46
&Fsv_filetype=2&Provider_id=fonsview_hls&Pcontent_id=hls_001&Fsv_Sd=10&Fsv_otype=0
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:25Z
#EXTINF:10,883036
http://172.16.0.161:8114/LIVES/1475114785_0010000028_0000000006.ts?FvSeid=54e014f36b515f46
&Fsv_filetype=2&Provider_id=fonsview_hls&Pcontent_id=hls_001&Fsv_Sd=10&Fsv_otype=0
#EXT-X-PROGRAM-DATE-TIME:2016-09-29T02:06:35Z
#EXTINF:10,881720
http://172.16.0.161:8114/LIVES/1475114795_0010000028_0000000007.ts?FvSeid=54e014f36b515f46
&Fsv_filetype=2&Provider_id=fonsview_hls&Pcontent_id=hls_001&Fsv_Sd=10&Fsv_otype=0
第二存储网元给客户端实时发送本地m3u8文件和本地ts分片,本地ts分片中,距直播点最近的一个ts分片采用chunked编码的方式发送;
S4、客户端解析本地m3u8文件和本地ts分片,并根据需要选择其中一个ts分片的任意位置开始播放,具体过程如下:
如图5所示,客户端向服务器发直播请求,第二存储网元将当前录制的最新几个ts分片发送给客户端,此处最新几个ts分片的个数可以为12个;
第二存储网元根据当前分片的录制情况选择不同的编码方式发送媒体信息给客户端:对于正在录制的ts分片1475114785_0000000028_0000000007.ts数据进行chunked编码并发送数据给客户端,其他ts分片可以采用chunked编码或者非chunked编码方式发送;客户端解析本地m3u8文件和本地ts分片,并根据网络状况选择其中一个ts分片的任意位置开始播放。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。
Claims (8)
1.一种实现低延时HLS直播的***,该***包括头端编码器、服务器和客户端,其特征在于:
所述头端编码器用于:提供动态更新的原始直播源;
所述服务器用于:向头端编码器获取原始直播源,根据原始直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;实时发送更新后的索引文件和至少三个媒体分片文件,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述客户端用于:解析接收到的索引文件和媒体分片文件,并根据需要选择其中一个媒体分片文件的任意位置开始播放;
所述距直播点最近的一个媒体分片文件为正在生成的一个媒体分片文件,除距直播点最近的一个媒体分片文件外,服务器发送的其余媒体分片文件均为已经生成的媒体分片文件;所述服务器还用于:所述已经生成的媒体分片文件采用非分块传输编码的方式发送。
2.如权利要求1所述的实现低延时HLS直播的***,其特征在于:所述原始直播源为用户数据报协议UDP组播直播源;所述服务器包括第一转换网元,所述第一转换网元用于:
向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;客户端请求播放直播时,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件实时发送给客户端,从直播点开始向前的至少三个媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
3.如权利要求1所述的实现低延时HLS直播的***,其特征在于:所述原始直播源为HLS单播直播源;所述服务器包括第一存储网元,所述第一存储网元用于:
向头端编码器获取HLS单播直播源,根据HLS单播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,将本地索引文件和本地媒体分片文件输出为本地HLS单播直播源,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;客户端请求播放直播时,将本地索引文件和本地媒体分片文件实时发送给客户端,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
4.如权利要求1所述的实现低延时HLS直播的***,其特征在于:所述原始直播源为UDP组播直播源;所述服务器包括第二转换网元和第二存储网元,其中,
所述第二转换网元用于:向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;所述第二存储网元请求录制直播时,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件发送给第二存储网元,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述第二存储网元用于:向第二转换网元请求录制直播,将第二转换网元发送的索引文件和媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;将本地索引文件和本地媒体分片文件实时发送给客户端,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
5.一种应用于如权利要求1所述***的实现低延时HLS直播的方法,其特征在于,包括以下步骤:
所述头端编码器提供动态更新的原始直播源;
所述服务器向头端编码器获取原始直播源,根据原始直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;实时发送更新后的索引文件和至少三个媒体分片文件,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述客户端解析接收到的索引文件和媒体分片文件,并根据需要选择其中一个媒体分片文件的任意位置开始播放;
所述距直播点最近的一个媒体分片文件为正在生成的一个媒体分片文件,除距直播点最近的一个媒体分片文件外,服务器发送的其余媒体分片文件均为已经生成的媒体分片文件;所述已经生成的媒体分片文件采用非分块传输编码的方式发送。
6.如权利要求5所述的实现低延时HLS直播的方法,其特征在于:所述原始直播源为用户数据报协议UDP组播直播源;所述服务器给客户端实时发送更新后的索引文件和从直播点开始向前的至少三个媒体分片文件,从直播点开始向前的至少三个媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
7.如权利要求5所述的实现低延时HLS直播的方法,其特征在于:所述原始直播源为HLS单播直播源;所述服务器向头端编码器获取HLS单播直播源,根据HLS单播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,将本地索引文件和本地媒体分片文件输出为本地HLS单播直播源,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;给客户端实时发送本地索引文件和本地媒体分片文件,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
8.如权利要求5所述的实现低延时HLS直播的方法,其特征在于:所述原始直播源为UDP组播直播源;所述服务器包括第二转换网元和第二存储网元,所述第二转换网元向头端编码器获取UDP组播直播源,根据UDP组播直播源实时动态更新索引文件并动态生成若干媒体分片文件,将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件输出为HLS单播直播源;所述第二存储网元请求录制直播时,第二转换网元将更新后的索引文件和从直播点开始向前的至少三个媒体分片文件发送给第二存储网元,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送;
所述第二存储网元向第二转换网元请求录制直播,将第二转换网元发送的索引文件和媒体分片文件进行录制并存储为本地索引文件和本地媒体分片文件,所述本地媒体分片文件的总个数≥所述从直播点开始向前的至少三个媒体分片文件的总个数;给客户端实时发送本地索引文件和本地媒体分片文件,本地媒体分片文件中,距直播点最近的一个媒体分片文件采用分块传输编码的方式发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611143468.1A CN106790005B (zh) | 2016-12-13 | 2016-12-13 | 实现低延时hls直播的***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611143468.1A CN106790005B (zh) | 2016-12-13 | 2016-12-13 | 实现低延时hls直播的***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106790005A CN106790005A (zh) | 2017-05-31 |
CN106790005B true CN106790005B (zh) | 2019-09-17 |
Family
ID=58880579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611143468.1A Active CN106790005B (zh) | 2016-12-13 | 2016-12-13 | 实现低延时hls直播的***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790005B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107135400A (zh) * | 2017-06-12 | 2017-09-05 | 上海高顿教育培训有限公司 | 一种降低网络直播延时的方法 |
CN109151614B (zh) * | 2017-06-19 | 2023-05-16 | 中兴通讯股份有限公司 | 一种降低hls直播播放延迟的方法及装置 |
CN108540868B (zh) * | 2018-05-16 | 2019-04-16 | 北京百度网讯科技有限公司 | Hls直播的处理方法、装置、服务器、终端及存储介质 |
WO2021009597A1 (en) | 2019-07-12 | 2021-01-21 | Carrier Corporation | A system and a method for streaming videos by creating object urls at client |
CN110324727A (zh) | 2019-07-16 | 2019-10-11 | 浙江大华技术股份有限公司 | 计算机可读存储介质、服务器及其响应播放请求的方法 |
CN111131862A (zh) * | 2020-01-02 | 2020-05-08 | 山东云缦智能科技有限公司 | 一种实现cmaf直播源自动主备切换的实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102232298A (zh) * | 2011-04-07 | 2011-11-02 | 华为技术有限公司 | 媒体内容的传输处理方法、装置与*** |
CN102801690A (zh) * | 2011-05-25 | 2012-11-28 | 华为技术有限公司 | 流媒体的处理方法、分发服务器、客户端及*** |
CN103686202A (zh) * | 2012-09-18 | 2014-03-26 | 中兴通讯股份有限公司 | 一种dlna下基于http的转码实时传输方法及*** |
-
2016
- 2016-12-13 CN CN201611143468.1A patent/CN106790005B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102232298A (zh) * | 2011-04-07 | 2011-11-02 | 华为技术有限公司 | 媒体内容的传输处理方法、装置与*** |
CN102801690A (zh) * | 2011-05-25 | 2012-11-28 | 华为技术有限公司 | 流媒体的处理方法、分发服务器、客户端及*** |
CN103686202A (zh) * | 2012-09-18 | 2014-03-26 | 中兴通讯股份有限公司 | 一种dlna下基于http的转码实时传输方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106790005A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790005B (zh) | 实现低延时hls直播的***及方法 | |
US11805286B2 (en) | Apparatus and method for transmitting/receiving processes of a broadcast signal | |
CN107743703B (zh) | 用于媒体数据传输的方法、设备及计算机可读存储介质 | |
CN106233735B (zh) | 管理多播视频传送的方法 | |
US20160337424A1 (en) | Transferring media data using a websocket subprotocol | |
JP6698553B2 (ja) | 1つの要求メッセージに基づいたネットワーク・ノードへの多数のチャンクの要求 | |
CN100568966C (zh) | 一种音/视频数据的网络传输方法 | |
TW201703541A (zh) | 用於廣播之發信快取區段 | |
KR20160106618A (ko) | 콘텐츠 전달 | |
US10499094B2 (en) | Transmission apparatus, transmitting method, reception apparatus, and receiving method | |
US20190110091A1 (en) | Method and device for synchronously performing an operation on contents | |
US20180176278A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
US11765444B2 (en) | Streaming media data including an addressable resource index track | |
CN105049873A (zh) | 一种流媒体传输方法、装置和*** | |
KR20160138044A (ko) | 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입 | |
CN105900437B (zh) | 通信设备、通信数据生成方法和通信数据处理方法 | |
WO2016209727A1 (en) | Reporting media consumption based on service area | |
CN115643426B (zh) | 一种面向空间应用领域的通用视频播放方法和*** | |
US8811478B2 (en) | Data transmission method and apparatus | |
US20210306703A1 (en) | Determination of availability of chunks of data for network streaming media data | |
WO2015109842A1 (zh) | 一种处理分段节目的方法、服务器及客户端设备 | |
WO2016090912A1 (zh) | 一种直播视频的生成及播放方法、装置、终端及*** | |
US11582125B2 (en) | Repair mechanism for adaptive bit rate multicast |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |