CN106791959A - 一种通过组播传输hls流媒体的方法、***和终端 - Google Patents
一种通过组播传输hls流媒体的方法、***和终端 Download PDFInfo
- Publication number
- CN106791959A CN106791959A CN201510802023.9A CN201510802023A CN106791959A CN 106791959 A CN106791959 A CN 106791959A CN 201510802023 A CN201510802023 A CN 201510802023A CN 106791959 A CN106791959 A CN 106791959A
- Authority
- CN
- China
- Prior art keywords
- multicast
- hls
- slicing files
- terminal
- hlr
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26241—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the time of distribution, e.g. the best time of the day for inserting an advertisement or airing a children program
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6402—Address allocation for clients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6405—Multicasting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Databases & Information Systems (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媒体流领域。其中的方法包括:在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。能够实现组播技术来传输HLS视频、音频,大大减小了投资。另外,还可以有效使用HLS的自适应流媒体技术,适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。
Description
技术领域
本发明涉及HLS媒体流领域,尤其涉及一种通过组播传输HLS流媒体的方法、***和终端。
背景技术
HLS(HTTP Live Streaming)是美国苹果公司提出的一促动态码率自适应流媒体技术,主要用于流媒体音视频服务。其包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
HLS流媒体技术由于具有对流服务器与终端要求低、可通过多码率保证在不同网络下播放的流畅性等优点,所以近年来在互联网视频业务的应用中占有主流位置。目前HLS技术已经提交给IETF成为标准草案。
组播(Multicast)技术在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。组播技术通过网络复制传输流,极大减轻了服务器和网络压力。
在IPTV建设实践中,通过组播分发直播频道,相比单播方式减小了30%~50%投资。
可以看出,HLS与组播技术都有各自的特点,HLS可更好地适用于网络条件较差的情况,组播技术由于使用UDP技术,对网络条件要求较高。HLS基于HTTP,传统上只能使用TCP来传输,由于组播只能使用UDP,所以HLS难以直接使用组播来传输。
目前,国内各电信运营商设备与组网有较大不同,对组播支持能力不齐,所以部分网络开启组播、部分无法使用,需要一种能适应不同网络的情况融合传输技术。
为解决以上问题,开始有运营商希望能找到一种融合HLS与组播优点的解决方案。
如专利申请号为201510081200.9,“一种广电OTT融合终端及其实现方法”,其提出在终端侧实现HLS与组播的方案,该方案,存在以下不足:
1)该方案HLS与组播传输在网络侧无关联关系,仅由终端进行融合,无法实现组播上实现HLS的自适应特性。
2)由于HLS与组播无关联,所以无法实现HLS与组播的平滑切换。
发明内容
本发明要解决的技术问题是如何通过组播技术来传输分发HLS流媒体。
根据本发明一方面,提出一种通过组播传输HLS流媒体的方法,包括:在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。
在一个实施例中,索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。
在一个实施例中,终端根据索引文件获取组播地址对应的单播URL,当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。
在一个实施例中,终端记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;终端携带字节范围参数到HLR服务器下载对应的HLS流媒体分片文件。
在一个实施例中,终端在初始播放视频流时,通过单播方式向HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;
通过组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。
在一个实施例中,终端在从单播方式切换至组播方式接收HLS流媒体分片文件时,从转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。
根据本发明的另一方面,还提出一种通过组播传输HLS流媒体的***,包括:HLR服务器,用于将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;转换网关,用于从HLR服务器下载索引文件,通过索引文件的标签信息下载HLS流媒体分片文件,并将HLS流媒体分片文件转换为组播流发送至终端;终端,用于根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。
在一个实施例中,索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。
在一个实施例中,终端用于根据索引文件获取组播地址对应的单播URL,当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。
在一个实施例中,终端用于记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;携带字节范围参数到HLR服务器下载对应的HLS流媒体分片文件。
在一个实施例中,终端用于在初始播放视频流时,通过单播方式向HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;通过组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。
在一个实施例中,终端用于在从单播方式切换至组播方式接收HLS流媒体分片文件时,从转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。
根据本发明的另一方面,还提出一种终端,包括:地址获取模块,用于根据索引文件获取组播地址,其中索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址;接收模块,用于通过转换网关从HLR服务器接收组播流;还原模块,用于将接收到的组播流转换为HLS流媒体分片文件;播放模块,用于播放HLS流媒体分片文件。
在一个实施例中,地址获取模块用于根据索引文件获取组播地址对应的单播URL;单播组播切换模块,用于当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。
在一个实施例中,单播组播切换模块用于记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;携带字节范围参数到HLR服务器下载对应的HLS流媒体分片文件。
在一个实施例中,同步模块,用于在初始播放视频流时,通过单播方式向HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;通过组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。
在一个实施例中,同步模块用于在从单播方式切换至组播方式接收HLS流媒体分片文件时,从转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。
与现有技术相比,本发明在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS视频、音频,大大减小了投资。
另外,还可以有效使用HLS的自适应流媒体技术,适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明通过组播传输HLS流媒体的方法的一个实施例的流程示意图。
图2为本发明通过组播传输HLS流媒体的方法的另一个实施例的流程示意图。
图3为本发明通过组播传输HLS流媒体的***的一个实施例的结构示意图。
图4为本发明通过组播传输HLS流媒体的终端的一个实施例的结构示意图。
图5为本发明通过组播传输HLS流媒体的终端的另一个实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1为本发明通过组播传输HLS流媒体的方法的一个实施例的流程示意图。该方法包括以下步骤:
在步骤110,在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中。
其中,本发明的HLR服务器支持新的HLS索引扩展,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联。
在步骤120,通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端。
其中,转换网关从扩展型HLS服务器上下载M3U8索引文件,根据M3U8索引的标签信息再到扩展型HLS服务器上下载HLS流媒体分片,并按指定的组播组发送组播数据流。索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。例如,本发明对M3U8索引进行了扩展如表1所示:
标签 | 取值 | 备注 |
EXT-X-TRAN | TYPE=Multicast | 可使用组播进行传输 |
EXT-X-STREAM-INF | GroupIP=“***” | 该媒体流对应的组播地址 |
表1 M3U8索引扩展字段
M3U8示例如下:
#EXTM3U
EXT-X-TRAN TYPE=Multicast
#EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000,GroupIP=“239.1.1.1”
http://example.com/low.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000,GroupIP=“239.1.1.2”
http://example.com/mid.m3u8
在步骤130,终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。
在本发明的实施例中,在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS视频、音频,大大减小了投资。
图2为本发明通过组播传输HLS流媒体的方法的另一个实施例的流程示意图。该方法包括以下步骤:
在步骤210,在HLR服务器上将不同码流的HLR流媒体分片,并在M3U8标签中实现不同码流的HLS文件与组播组进行关联。
即在步骤210中把HLS流媒体的视、音频数据封装在组播协议报文中进行传输。HLS的流媒体数据是以TS格式封装的,每个TS报文为188个字节。
HLR服务器支持信息的HLS索引扩展,M3U8索引扩展如表1所示。
在步骤220,HLS->组播转换网关,负责把HLS的直播文件分片转换为组播流,HLS->组播转换网关不改变原HLS的TS分片文件。
HLS->组播转换网关在转换以TS封闭的流媒体分片时,按每7个TS(188字节)包生成一个UDP包,并在这载荷前,用2字节标明其序号,为终端进行重组提供标记。
在步骤230,终端解释M3U8索引文件,获得直播频道的组播地址及对应的单播URL,通过组播接收视频流,并把接收到的视频流转换为HLS直播分片文件,再送到播放器播放。
在步骤240,出现丢包时,终端查找组播相对应的文件URL,通过单播下载所对应的数据分片。
其中,由于组播网关是无缓存机制的,要充分利用HLS自适应网络机制,也需要在终端进行分片缓存。
在本发明的实施例中,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联;通过单播、组播结合,实现了组播缓存HLS分片的机制。
为了保证本发明能够实现初始播放同步,本发明还可以在终端初始播放时,先通过单播方式向HLS服务器下载当前直播的第1个分片。同时终端加入对应组播组,转换网关应比HLS服务的第1分片更快,如吐分片3。终端通过单播接收完第2个分片,同时也可通过组播接收到第3分片,后续将使用组播接收。
本发明的另一个实施例,当组播出现大量丢包或中断时,终端将把组播方式切换至单播。即终端把当前的TS PCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。
例如,在同一个HLS节目里,可以有高中低等多个视频流,这些视频流严格按照时间同步进行分片。如,按10秒一个间隔来分片,有高中低3个视频流,就同时有3个时间为10秒长的视频分片流。
终端在检查到需要进行切换时(如网络带宽不足,需要从高码率切换到低码率播放),终端需要保证视频的连续性。终端首先进行从高码率的组播组离开,加入低码率的组播组,从而可以接收到数据。但切换后接收到的数据因为是实时发送的,所以从离开到接收的这段时间切换的数据是缺失的。
为此,我们在切换时是通过单播方式来下载缺失的内容的。缺失的内容我们可以知道切换的时间,通过时间我们可以反算出该时间开始的数据是在哪个分片的哪个位置(ByteRange)。
在本发明的实施例中,终端把当前的TS PCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。能够保证组播与HLS单播的平滑切换,支持组播多码率切换,能够适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。
图3为本发明通过组播传输HLS流媒体的***的一个实施例的结构示意图。该***包括HLR服务器310、转换网关320和终端330。
HLR服务器310用于将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中。
其中,本发明的HLR服务器支持新的HLS索引扩展,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联。
转换网关320用于从HLR服务器下载索引文件,通过索引文件的标签信息下载HLS流媒体分片文件,并将HLS流媒体分片文件转换为组播流发送至终端。
其中,转换网关从扩展型HLS服务器上下载M3U8索引文件,根据M3U8索引的标签信息再到扩展型HLS服务器上下载HLS流媒体分片,并按指定的组播组发送组播数据流。索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。例如,本发明对M3U8索引进行了扩展如表1所示。
M3U8示例如下:
#EXTM3U
EXT-X-TRAN TYPE=Multicast
#EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000,GroupIP=“239.1.1.1”
http://example.com/low.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000,GroupIP=“239.1.1.2”
http://example.com/mid.m3u8
终端330用于根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。
在本发明的实施例中,在HLR服务器上将不同码流的HLR流媒体分片,并将HLR流媒体分片与组播组的关联关系写入索引文件中;通过索引文件的标签信息在HLR服务器下载HLS流媒体分片文件,并通过转换网关将HLS流媒体分片文件转换为组播流发送至终端;终端根据索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS视频、音频,大大减小了投资。
本发明的另一个实施例,HLR服务器310用于将不同码流的HLR流媒体分片,并在M3U8标签中实现不同码流的HLS文件与组播组进行关联。
即将HLS流媒体的视、音频数据封装在组播协议报文中进行传输。HLS的流媒体数据是以TS格式封装的,每个TS报文为188个字节。
转换网关320为HLS->组播转换网关,负责把HLS的直播文件分片转换为组播流,HLS->组播转换网关不改变原HLS的TS分片文件。
HLS->组播转换网关在转换以TS封闭的流媒体分片时,按每7个TS(188字节)包生成一个UDP包,并在这载荷前,用2字节标明其序号,为终端进行重组提供标记。
终端330用于解释M3U8索引文件,获得直播频道的组播地址及对应的单播URL,终端通过组播接收视频流,并把接收到的视频流转换为HLS直播分片文件,再送到播放器播放。出现丢包时,终端330查找组播相对应的文件URL,通过单播下载所对应的数据分片。
其中,由于组播网关是无缓存机制的,要充分利用HLS自适应网络机制,也需要在终端进行分片缓存。
在本发明的实施例中,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联;通过单播、组播结合,实现了组播缓存HLS分片的机制。
为了保证本发明能够实现初始播放同步,本发明的终端330还用于在初始播放时,先通过单播方式向HLS服务器下载当前直播的第1个分片。同时终端加入对应组播组,转换网关应比HLS服务的第1分片更快,如吐分片3。终端通过单播接收完第2个分片,同时也可通过组播接收到第3分片,后续将使用组播接收。
本发明的另一个实施例,当组播出现大量丢包或中断时,终端330用于将把组播方式切换至单播。即终端把当前的TS PCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。
例如,在同一个HLS节目里,可以有高中低等多个视频流,这些视频流严格按照时间同步进行分片。如,按10秒一个间隔来分片,有高中低3个视频流,就同时有3个时间为10秒长的视频分片流。
终端在检查到需要进行切换时(如网络带宽不足,需要从高码率切换到低码率播放),终端需要保证视频的连续性。终端首先进行从高码率的组播组离开,加入低码率的组播组,从而可以接收到数据。但切换后接收到的数据因为是实时发送的,所以从离开到接收的这段时间切换的数据是缺失的。
为此,我们在切换时是通过单播方式来下载缺失的内容的。缺失的内容我们可以知道切换的时间,通过时间我们可以反算出该时间开始的数据是在哪个分片的哪个位置(ByteRange)。
在本发明的实施例中,终端把当前的TS PCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。能够保证组播与HLS单播的平滑切换,支持组播多码率切换,能够适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。
图4为本发明通过组播传输HLS流媒体的终端的一个实施例的结构示意图。该终端包括地址获取模块410、接收模块420、还原模块430和播放模块440。
地址获取模块410用于根据索引文件获取组播地址,其中索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。
其中,本发明的HLR服务器支持新的HLS索引扩展,通过扩展HLS索引文件,在扩展型HLS服务器上把传统HLS与组播进行关联。转换网关从扩展型HLS服务器上下载M3U8索引文件,地址获取模块410根据M3U8索引的标签信息再到扩展型HLS服务器上下载HLS流媒体分片,并按指定的组播组发送组播数据流。索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址。例如,本发明对M3U8索引进行了扩展如表1所示。
M3U8示例如下:
#EXTM3U
EXT-X-TRAN TYPE=Multicast
#EXT-X-STREAM-INF:BANDWIDTH=1280000,AVERAGE-BANDWIDTH=1000000,GroupIP=“239.1.1.1”
http://example.com/low.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2560000,AVERAGE-BANDWIDTH=2000000,GroupIP=“239.1.1.2”
http://example.com/mid.m3u8
接收模块420用于通过转换网关从HLR服务器接收组播流。
还原模块430用于将接收到的组播流转换为HLS流媒体分片文件。
播放模块440用于播放HLS流媒体分片文件。
在本发明的实施例中,终端根据索引文件获取组播地址,通过转换网关从HLR服务器接收组播流,并将接收到的组播流转换为HLS流媒体分片文件发送至播放器。因此,能够实现组播技术来传输HLS视频、音频,大大减小了投资。
本发明通过组播传输HLS流媒体的终端的另一个实施例的结构示意图。该终端包括:地址获取模块510、接收模块520、单播组播切换模块530、同步模块540、还原模块550和播放模块560。
地址获取模块510用于根据索引文件获取组播地址对应的单播URL。
接收模块520用于通过转换网关从HLR服务器接收组播流。
单播组播切换模块530用于当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。
单播组播切换模块530还用于把当前的TS PCR时间记录下来,并根据分片时长、分片码流等参数计算出切换分片对应的字节范围ByteRange;终端携带ByteRange参数到HLS服务器下载对应的分片。
例如,在同一个HLS节目里,可以有高中低等多个视频流,这些视频流严格按照时间同步进行分片。如,按10秒一个间隔来分片,有高中低3个视频流,就同时有3个时间为10秒长的视频分片流。
终端在检查到需要进行切换时(如网络带宽不足,需要从高码率切换到低码率播放),终端需要保证视频的连续性。终端首先进行从高码率的组播组离开,加入低码率的组播组,从而可以接收到数据。但切换后接收到的数据因为是实时发送的,所以从离开到接收的这段时间切换的数据是缺失的。
为此,我们在切换时是通过单播方式来下载缺失的内容的。缺失的内容我们可以知道切换的时间,通过时间我们可以反算出该时间开始的数据是在哪个分片的哪个位置(ByteRange)。
为了保证本发明能够实现初始播放同步,本发明还可以设置同步模块540,用于初始播放时,先通过单播方式向HLS服务器下载当前直播的第1个分片。同时终端加入对应组播组,转换网关应比HLS服务的第1分片更快,如吐分片3。终端通过单播接收完第2个分片,同时也可通过组播接收到第3分片,后续将使用组播接收。
还原模块550用于将接收到的组播流转换为HLS流媒体分片文件。
播放模块560用于播放HLS流媒体分片文件。
在本发明的实施例中,终端可以通过单播、组播结合,实现了组播缓存HLS分片的机制。同时能够保证组播与HLS单播的平滑切换,支持组播多码率切换,能够适应不同的网络环境,非常适用于网络情况复杂的电信运营商数据承载网。
至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
Claims (17)
1.一种通过组播传输HLS流媒体的方法,其特征在于,包括:
在HLR服务器上将不同码流的HLR流媒体分片,并将所述HLR流媒体分片与组播组的关联关系写入索引文件中;
通过所述索引文件的标签信息在所述HLR服务器下载HLS流媒体分片文件,并通过转换网关将所述HLS流媒体分片文件转换为组播流发送至终端;
所述终端根据所述索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。
2.根据权利要求1所述的方法,其特征在于,
所述索引文件的标签信息包括所述HLS流媒体分片文件的传输类型和对应的组播地址。
3.根据权利要求1或2所述的方法,其特征在于,
所述终端根据所述索引文件获取组播地址对应的单播URL,当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。
4.根据权利要求3所述方法,其特征在于,
所述终端记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;
所述终端携带所述字节范围参数到所述HLR服务器下载对应的HLS流媒体分片文件。
5.根据权利要求1或2所述的方法,其特征在于,
所述终端在初始播放视频流时,通过单播方式向所述HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;
通过所述组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。
6.根据权利要求5所述的方法,其特征在于,
所述终端在从单播方式切换至组播方式接收所述HLS流媒体分片文件时,从所述转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。
7.一种通过组播传输HLS流媒体的***,其特征在于,包括:
HLR服务器,用于将不同码流的HLR流媒体分片,并将所述HLR流媒体分片与组播组的关联关系写入索引文件中;
转换网关,用于从所述HLR服务器下载索引文件,通过所述索引文件的标签信息下载HLS流媒体分片文件,并将所述HLS流媒体分片文件转换为组播流发送至终端;
终端,用于根据所述索引文件获取组播地址,将接收到的组播流转换为HLS流媒体分片文件发送至播放器。
8.根据权利要求7所述的***,其特征在于,
所述索引文件的标签信息包括所述HLS流媒体分片文件的传输类型和对应的组播地址。
9.根据权利要求7或8所述的***,其特征在于,
所述终端用于根据所述索引文件获取组播地址对应的单播URL,当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。
10.根据权利要求9所述***,其特征在于,
所述终端用于记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;携带所述字节范围参数到所述HLR服务器下载对应的HLS流媒体分片文件。
11.根据权利要求7或8所述的***,其特征在于:
所述终端用于在初始播放视频流时,通过单播方式向所述HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;通过所述组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。
12.根据权利要求11所述的***,其特征在于,
所述终端用于在从单播方式切换至组播方式接收所述HLS流媒体分片文件时,从所述转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。
13.一种终端,其特征在于,包括:
地址获取模块,用于根据索引文件获取组播地址,其中所述索引文件的标签信息包括HLS流媒体分片文件的传输类型和对应的组播地址;
接收模块,用于通过转换网关从HLR服务器接收组播流;
还原模块,用于将接收到的组播流转换为HLS流媒体分片文件;
播放模块,用于播放所述HLS流媒体分片文件。
14.根据权利要求13所述的终端,其特征在于,还包括:
所述地址获取模块用于根据所述索引文件获取组播地址对应的单播URL;
单播组播切换模块,用于当接收到的组播流出现丢包或中断时,通过单播方式下载所对应的HLS流媒体分片文件。
15.根据权利要求14所述的终端,其特征在于,
所述单播组播切换模块用于记录当前HLS流媒体分片文件的PCR时间,当接收到的组播流出现丢包或中断时,根据分片时长、分片码流参数计算切换分片对应的字节范围;携带所述字节范围参数到HLR服务器下载对应的HLS流媒体分片文件。
16.根据权利要求13-15任一所述的终端,其特征在于,还包括:
同步模块,用于在初始播放视频流时,通过单播方式向所述HLR服务器下载当前播放的HLS流媒体分片文件,并获取对应的组播地址;通过所述组播地址,使用组播方式接收后续HLS流媒体分片文件对应的组播流。
17.根据权利要求16所述的终端,其特征在于,
所述同步模块用于在从单播方式切换至组播方式接收所述HLS流媒体分片文件时,从所述转换网关接收与当前单播方式下载的HLS流媒体分片文件所对应的组播流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510802023.9A CN106791959A (zh) | 2015-11-19 | 2015-11-19 | 一种通过组播传输hls流媒体的方法、***和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510802023.9A CN106791959A (zh) | 2015-11-19 | 2015-11-19 | 一种通过组播传输hls流媒体的方法、***和终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106791959A true CN106791959A (zh) | 2017-05-31 |
Family
ID=58916491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510802023.9A Pending CN106791959A (zh) | 2015-11-19 | 2015-11-19 | 一种通过组播传输hls流媒体的方法、***和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106791959A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360448A (zh) * | 2017-08-11 | 2017-11-17 | 中广热点云科技有限公司 | 一种视频数据单播组播切换方法 |
CN109511018A (zh) * | 2018-12-27 | 2019-03-22 | 贵州省广播电视信息网络股份有限公司 | 一种用于ott直播在复杂网络环境流畅播放的方法 |
CN109756774A (zh) * | 2017-11-07 | 2019-05-14 | 中兴通讯股份有限公司 | 一种ott组播频道切换的方法及装置 |
CN110049120A (zh) * | 2019-04-12 | 2019-07-23 | 海能达通信股份有限公司 | 多媒体文件传输方法、***、核心网及装置 |
CN111343511A (zh) * | 2020-03-23 | 2020-06-26 | 烽火通信科技股份有限公司 | 一种通过组播实现的hls直播***及方法 |
CN113141415A (zh) * | 2021-05-07 | 2021-07-20 | 广州小鹏汽车科技有限公司 | 车辆的远程驾驶***、方法、电子设备及存储介质 |
CN115134337A (zh) * | 2022-05-20 | 2022-09-30 | 安徽华速达电子科技有限公司 | 一种多场景下工业互联网设备数据传输控制方法及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791939A (zh) * | 2003-05-16 | 2006-06-21 | 皇家飞利浦电子股份有限公司 | 记录和重放的方法以及视频记录和重放*** |
CN101060617A (zh) * | 2007-05-22 | 2007-10-24 | 华为技术有限公司 | 一种视频点播控制方法、客户端设备和切换控制装置 |
CN101521798A (zh) * | 2009-03-16 | 2009-09-02 | 华为技术有限公司 | 一种播放模式切换的方法和装置 |
CN101827306A (zh) * | 2009-03-03 | 2010-09-08 | 中兴通讯股份有限公司 | 单播业务的切换方法与装置 |
CN103078847A (zh) * | 2012-12-24 | 2013-05-01 | 深圳市龙视传媒有限公司 | 一种多码率流文件的存储和读取方法及相关装置 |
US20150046568A1 (en) * | 2013-08-11 | 2015-02-12 | Imvision Software Technologies Ltd. | Method and system for playing multicast over-the-top (ott) content streams |
CN104519372A (zh) * | 2014-12-19 | 2015-04-15 | 深圳市九洲电器有限公司 | 一种流媒体播放的切换方法和*** |
CN104837071A (zh) * | 2015-05-11 | 2015-08-12 | 华为软件技术有限公司 | 一种文件推送的方法及装置 |
CN105049954A (zh) * | 2015-07-02 | 2015-11-11 | 中兴通讯股份有限公司 | Ott媒体的组播传输方法、装置及*** |
-
2015
- 2015-11-19 CN CN201510802023.9A patent/CN106791959A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791939A (zh) * | 2003-05-16 | 2006-06-21 | 皇家飞利浦电子股份有限公司 | 记录和重放的方法以及视频记录和重放*** |
CN101060617A (zh) * | 2007-05-22 | 2007-10-24 | 华为技术有限公司 | 一种视频点播控制方法、客户端设备和切换控制装置 |
CN101827306A (zh) * | 2009-03-03 | 2010-09-08 | 中兴通讯股份有限公司 | 单播业务的切换方法与装置 |
CN101521798A (zh) * | 2009-03-16 | 2009-09-02 | 华为技术有限公司 | 一种播放模式切换的方法和装置 |
CN103078847A (zh) * | 2012-12-24 | 2013-05-01 | 深圳市龙视传媒有限公司 | 一种多码率流文件的存储和读取方法及相关装置 |
US20150046568A1 (en) * | 2013-08-11 | 2015-02-12 | Imvision Software Technologies Ltd. | Method and system for playing multicast over-the-top (ott) content streams |
CN104519372A (zh) * | 2014-12-19 | 2015-04-15 | 深圳市九洲电器有限公司 | 一种流媒体播放的切换方法和*** |
CN104837071A (zh) * | 2015-05-11 | 2015-08-12 | 华为软件技术有限公司 | 一种文件推送的方法及装置 |
CN105049954A (zh) * | 2015-07-02 | 2015-11-11 | 中兴通讯股份有限公司 | Ott媒体的组播传输方法、装置及*** |
Non-Patent Citations (2)
Title |
---|
刘浩宇: "无线网络视频传输的优化与仿真实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
吕敏: "TS流实时低延迟无缝拼接的算法研究及验证", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360448A (zh) * | 2017-08-11 | 2017-11-17 | 中广热点云科技有限公司 | 一种视频数据单播组播切换方法 |
CN107360448B (zh) * | 2017-08-11 | 2019-07-12 | 中广热点云科技有限公司 | 一种视频数据单播组播切换方法 |
CN109756774A (zh) * | 2017-11-07 | 2019-05-14 | 中兴通讯股份有限公司 | 一种ott组播频道切换的方法及装置 |
CN109511018A (zh) * | 2018-12-27 | 2019-03-22 | 贵州省广播电视信息网络股份有限公司 | 一种用于ott直播在复杂网络环境流畅播放的方法 |
CN110049120A (zh) * | 2019-04-12 | 2019-07-23 | 海能达通信股份有限公司 | 多媒体文件传输方法、***、核心网及装置 |
CN111343511A (zh) * | 2020-03-23 | 2020-06-26 | 烽火通信科技股份有限公司 | 一种通过组播实现的hls直播***及方法 |
CN111343511B (zh) * | 2020-03-23 | 2022-04-08 | 武汉市烽视威科技有限公司 | 一种通过组播实现的hls直播***及方法 |
CN113141415A (zh) * | 2021-05-07 | 2021-07-20 | 广州小鹏汽车科技有限公司 | 车辆的远程驾驶***、方法、电子设备及存储介质 |
CN115134337A (zh) * | 2022-05-20 | 2022-09-30 | 安徽华速达电子科技有限公司 | 一种多场景下工业互联网设备数据传输控制方法及*** |
CN115134337B (zh) * | 2022-05-20 | 2023-08-22 | 安徽华速达电子科技有限公司 | 一种多场景下工业互联网设备数据传输控制方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106791959A (zh) | 一种通过组播传输hls流媒体的方法、***和终端 | |
CN104704793B (zh) | 用于多媒体数据的处理的方法和装置 | |
CN103518351B (zh) | 使用文件递送方法的ip广播流式传输服务分布 | |
JP5788473B2 (ja) | 端末の出力を同期させる方法およびシステム | |
CN104471895B (zh) | 一种支持流媒体进行组播的方法和相关装置及*** | |
CN103957469B (zh) | 基于实时转封装的互联网视频点播方法及*** | |
CN108702359B (zh) | 用于增强mbms内容提供和内容摄取的方法和装置 | |
US8316108B2 (en) | Method and apparatus for obtaining media over a communications network | |
CN108632559B (zh) | 一种视频数据处理方法及装置 | |
CN109151058A (zh) | 一种数据传输方法和装置 | |
CN109819214A (zh) | 一种视频分屏的方法和装置 | |
CN116648897A (zh) | 内容递送 | |
CN108881818A (zh) | 一种视频数据的传输方法和装置 | |
CN108881819A (zh) | 一种音频数据的传输方法和装置 | |
JP2011512747A (ja) | マルチキャスト配信サービスのセグメント化 | |
CN110177023A (zh) | 一种基于视联网的通信连接检测方法及装置 | |
CN102378066B (zh) | 一种实现低码率高清点播的方法和*** | |
CN108881134A (zh) | 一种基于视频会议的通信方法和*** | |
CN109257655A (zh) | 一种节目切换时的音频处理方法和装置 | |
CN109889380A (zh) | 一种数据包的发送速率处理方法和*** | |
CN105338420B (zh) | 媒体播放方法和装置以及提供装置和播放*** | |
CN110392280A (zh) | 一种视频封面的更换方法和装置 | |
Adeliyi et al. | Fast channel navigation of internet protocol television using adaptive hybrid delivery method | |
CN108882021B (zh) | 一种视频播放方法和装置 | |
WO2009080112A1 (en) | Method and apparatus for distributing media over a communications network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |