CN114401193A - 一种支持mpts的hls切片方法及装置 - Google Patents

一种支持mpts的hls切片方法及装置 Download PDF

Info

Publication number
CN114401193A
CN114401193A CN202111611414.4A CN202111611414A CN114401193A CN 114401193 A CN114401193 A CN 114401193A CN 202111611414 A CN202111611414 A CN 202111611414A CN 114401193 A CN114401193 A CN 114401193A
Authority
CN
China
Prior art keywords
program
current
slice file
file
slice
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
Application number
CN202111611414.4A
Other languages
English (en)
Other versions
CN114401193B (zh
Inventor
卢红
徐钰峰
于亚茹
胡钉昂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202111611414.4A priority Critical patent/CN114401193B/zh
Publication of CN114401193A publication Critical patent/CN114401193A/zh
Application granted granted Critical
Publication of CN114401193B publication Critical patent/CN114401193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种支持MPTS的HLS切片方法及装置,在HLS的M3U8文件中扩展多节目传输流标签,针对多路节目流的关键帧可能不对齐的问题,设计“基本对齐的多路关键帧组”,以便将基本对齐的多路关键帧组留给下一个切片,优化解码。进一步地,针对MPTS存在节目切换,需要播放器快速启动新节目播放的需求,为每个视频的切片文件增加了对应的关键帧索引切片文件,对多路视频流MPTS的关键帧、PCR、PTS、SEI时间戳等进行记录,每个关键帧索引切片文件一般包含几十条记录,计算量小、搜索速度快,以便播放器快速定位到关键帧,启动新节目的解码。

Description

一种支持MPTS的HLS切片方法及装置
技术领域
本发明涉及新兴信息技术领域,尤指一种支持多节目传输流(Multi-programtransport stream)MPTS的HLS切片方法及装置。
背景技术
多画面视频将多机位视频同时传输到用户终端,由用户终端选择感兴趣的某一个机位播放。多画面视频一般传输一路多画面合成马赛克视频、几路(例如4-6路)多机位独立画面。多画面视频可用在体育赛事、文艺演出、活动直播等场景。在IPTV业务中已经有过多次多画面直播实践,例如网球大师杯比赛在IPTV的多画面视频直播。
IPTV的组播传输无法应用在互联网视频中。互联网视频不能采用类似IPTV的组播技术,一般采用HLS/FLV/HTTPD等技术。传统HLS仅支持单节目传输流(SPTS),用户切换多画面时延迟大,用户体验较差。
发明内容
本发明实施例提供一种支持MPTS的HLS切片方法及装置,用以解决现有技术中存在的HLS不支持MPTS问题。
本发明实施例提供的一种支持MPTS的HLS切片方法,包括:
确定接收到的传输流是否为多节目传输流MPTS;
在确定接收到的传输流为多节目传输流MPTS时,在HLS的M3U8文件中扩展多节目传输流标签;
顺序开启切片文件,并顺序读取所述传输流中包含的各传输包;
针对读取的当前传输包,确定开启的当前切片文件包含的传输包总时长是否小于设定切片上限长度;
在确定开启的当前切片文件包含的传输包总时长小于设定切片上限长度时,读取所述当前传输包内包含的各节目的关键帧;
确定所述当前传输包内包含的各节目的关键帧之间的对齐偏差是否小于设定帧数;
在确定所述各节目的关键帧之间的对齐偏差小于设定帧数,且所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中。
在一个实施例中,还包括:从所述传输流中读取节目关联表PAT信息和节目映射表PMT信息,并写入所述M3U8文件中。
在一个实施例中,还包括:从设置中读取默认的首次播放节目标识,并写入所述M3U8文件中。
在一个实施例中,还包括:建立与每个所述切片文件对应的关键帧索引切片文件;
在所述关键帧索引切片文件中记录对应的切片文件中包含的各节目的全部关键帧的关键帧信息,所述关键帧信息包括所述关键帧的节目标识、视频标识、节目时钟参考和显示时间标签。
在一个实施例中,还包括:在确定所述多节目传输流中携带有SEI时戳时,在所述关键帧索引切片文件中记录所述关键帧的SEI时戳。
在一个实施例中,所述读取所述当前传输包内包含的各节目的关键帧,具体包括:
根据所述传输流的PMT记录的每个节目标识的视频标识,遍历所述当前传输包中的各节目,确定各节目的节目标识是否为关键帧;
在确定节目标识为关键帧时,将所述显示时间标签标记为所述关键帧的显示时间标签;
在所述关键帧索引文件中缓存所述关键帧的关键帧信息。
在一个实施例中,在确定所述各节目的关键帧之间的对齐偏差小于设定帧数,且所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中,具体包括:
在确定所述各节目的关键帧之间的对齐偏差小于设定帧数时,确定所述当前切片文件包含的传输包总时长是否大于设定切片下限长度;
在确定所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中,关闭与所述当前切片文件对应开启的关键帧索引切片文件,并将所述当前传输包的关键帧信息写入下一个开启的关键帧索引切片文件。
在一个实施例中,还包括:
在确定所述各节目的关键帧之间的对齐偏差大于设定帧数时,将所述当前传输包写入所述当前切片文件中,并将所述当前传输包的关键帧信息写入与所述当前切片文件对应开启的关键帧索引切片文件;
在确定所述当前切片文件包含的传输包总时长小于设定切片下限长度时,将所述当前传输包写入所述当前切片文件中,并将所述当前传输包的关键帧信息写入与所述当前切片文件对应开启的关键帧索引切片文件。
在一个实施例中,还包括:在确定所述当前切片文件包含的传输包总时长大于设定切片上限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中。
在一个实施例中,在所述确定开启的当前切片文件包含的传输包总时长是否大于设定切片上限长度之前,还包括:
获取所述当前传输包的节目时钟参考;
确定所述当前传输包是否为开启的当前切片文件中的第一个传输包;
若是,则将所述当前传输包的节目时钟参考作为所述当前切片文件的节目时钟参考;
若否,则将所述当前切片文件的节目时钟参考与所述当前传输包的节目时钟参考之差作为所述当前切片文件包含的传输包总时长。
另一方面,本发明实施例还提供了一种支持MPTS的HLS切片装置,包括:
第一确定模块,用于确定接收到的传输流是否为多节目传输流MPTS;
第一处理模块,用于在确定接收到的传输流为多节目传输流MPTS时,在HLS的M3U8文件中扩展多节目传输流标签;
第二处理模块,用于顺序开启切片文件,并顺序读取所述传输流中包含的各传输包;
第二确定模块,用于针对读取的当前传输包,确定开启的当前切片文件包含的传输包总时长是否小于设定切片上限长度;
读取模块,用于在确定开启的当前切片文件包含的传输包总时长小于设定切片上限长度时,读取所述当前传输包内包含的各节目的关键帧;
第三确定模块,用于确定所述当前传输包内包含的各节目的关键帧之间的对齐偏差是否小于设定帧数;
第三处理模块,用于在确定所述各节目的关键帧之间的对齐偏差小于设定帧数,且所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中。
另一方面,本发明实施例还提供了一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例提供的支持MPTS的HLS切片方法。
另一方面,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行本发明实施例提供的支持MPTS的HLS切片方法。
本发明有益效果如下:
本发明实施例提供的一种支持MPTS的HLS切片方法及装置,在HLS的M3U8文件中扩展多节目传输流标签,针对多路节目流的关键帧可能不对齐的问题,设计“基本对齐的多路关键帧组”,以便将基本对齐的多路关键帧组留给下一个切片,优化解码。
进一步地,针对MPTS存在节目切换,需要播放器快速启动新节目播放的需求,为每个视频的切片文件增加了对应的关键帧索引切片文件,对多路视频流MPTS的关键帧、PCR、PTS、SEI时间戳等进行记录,每个关键帧索引切片文件一般包含几十条记录,计算量小、搜索速度快,以便播放器快速定位到关键帧,启动新节目的解码。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的支持MPTS的HLS切片方法的流程示意图;
图2为本发明实施例提供的支持MPTS的HLS切片方法中计算当前切片文件包含的传输包总时长的流程示意图;
图3为本发明实施例提供的支持MPTS的HLS切片方法中读取当前传输包内包含的各节目的关键帧的流程示意图;
图4为本发明实施例提供的HLS切片方法适用的系统架构示意图;
图5为本发明实施例提供的HLS切片装置的结构示意图;
图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在IPTV中,直播视频一般采用组播传输,延迟较低(1s-2s),且多路视频(多个组播流)之间的延迟差异较小,因此传统IPTV的多画面直播采用的技术实现方案是:直播现场前端制作设备进行多画面合成为马赛克画面,马赛克画面视频和几路独立画面各自编码为多路独立的组播流。用户终端首先显示马赛克画面这一路组播,并经过页面制作选择框。当用户通过遥控器选择时,立即切换到该机位视频流的组播。
由于IPTV组播传输的延迟差异不大(<1s),基本可以满足IPTV多画面直播的用户体验要求。但IPTV的这种多路视频流各自传输的方法无法应用在互联网视频(包括OTT电视和手机视频)中。互联网视频不能采用类似IPTV的组播技术,一般采用HLS/FLV/HTTPD等技术。以HLS为例,采用视频切片技术和HTTP服务,非常适合大规模的互联网视频传输。但HLS视频带来较大的延迟,一般延迟10-45秒,有的甚至20-60s,且各路HLS视频延迟的差异较大,有的20s,有时50s。而且传统HLS仅支持单节目传输流(SPTS),用户切换多画面时将请求新的HLS流,HLS切片的延迟特性会导致切换到新的HLS流时发生10s-60s的延迟。即使采用多个HLS视频流各自并发请求的方式,也会导致各路HLS视频流的传输延迟差异达10-30s,用户体验较差。
目前现有的针对多机位画面同步的技术,在编码阶段实现多路编码的时钟对齐同步、同步字段编写到编码层辅助字段H.264SEI等。这些技术提供了辅助同步信息,对于多路视频的同步对齐具有重要作用,这些技术主要使用在播出前端,因为播出前端的IP直播流一般采用组播等技术,传输延迟很低。但是在CDN到用户端,一般采用HLS协议,多个独立HLS流经过CDN分发和CDN到终端的传输延迟差异较大。
多视点视频与多画面视频应用不同。多视点视频提供更多的机位,例如16-64个机位,180-360度视角,甚至立体视角,用户在观看直播视频内容时可自由选择想观看的视角画面,进行立体式的环绕观看。现有的一种针对多视点视频的视点切换技术,定义并扩展了HLS标签使之支持多视点的多路视频、按视点切换的需求请求当前视点的视频,实现视点的平滑过渡。但这种技术在请求当前视点的视频时,采用的是单路HLS视频流(即SPTS),每次请求新的视点的视频都不可避免产生HLS的延迟,其视点切换的视频虽然在画面序列上是平滑的、但视频从CDN根据HLS协议传输到终端是有延迟的。
是否存在既能利用HLS的优点在互联网上传输多画面视频流,又能解决多路HLS视频流在CDN分发和CDN到终端的传输延迟差异呢?经过研究,发明人认为传统数字电视的成熟的多节目传输流(MPTS)技术在本质上可以避免多路视频的传输延迟差异。相对于单节目传输流(SPTS),MPTS也是传输流(TS)的一种格式,MPTS将多个节目通过复用器,形成一个TS传输,MPTS可以在本质上保障多路视频的传输同步。MPTS主要使用在传统的广播式的数字电视和卫星电视中。目前现有的HLS规范中,仅要求对SPTS进行切片,HLS规范不对MPTS进行定义。因此HLS目前不能利用MPTS的传输同步优势。
采用MPTS传输必然带来带宽需求的大大增加,例如6路高清的带宽需求为36-48Mbps,6路4K的带宽需求为90Mbps-180Mbps。随着千兆宽带技术和5G技术的发展和普及,承载MPTS高带宽业务将不再是问题,采用HLS MPTS的高带宽业务,能够充分发挥千兆宽带和5G的带宽优势,给用户带来多画面切换更加平滑的视觉体验。
基于此,本发明提出一种支持多节目传输流MPTS的HLS切片方法及装置,实现对MPTS的HLS切片,从而保障多画面直播/点播时采用HLS协议多路视频流的传输同步。本发明可以在千兆宽带/5G网络下提供一种大带宽的多画面视频应用,提升多画面视频的收看体验。
具体地,传输流(TS)是由一系列的传输包组成,传输包的长度固定为188个字节,由Header和Payload组成,Payload可能是PES包,也可能是节目特定信息PSI。节目特定信息PSI中的节目关联表(PAT)和节目映射表(PMT)比较重要。PAT给出了节目号及其对应PMT的标识(ID),PMT给出了本节目的视频标识(Video-ID),音频标识(Audio-PID)。
传输流本身可以是单节目传输流(SPTS),也可以是多个SPTS复用形成的多节目传输流(MPTS)。MPTS是将多个SPTS采用交织调度算法后进行复用。无论SPTS还是MPTS,都需要符合传输流的语法结构,其传输方式相同。MPTS经过每个188字节的传输包传送后,复用时的交织调度算法保证了MPTS内部多个节目的传输同步不存在问题。MPTS经过HLS切片后,切片文件包含的是MPTS包,因此HLS MPTS也保证了内部多个节目的传输同步。
相比于多路HLS SPTS的独立传输,HLS MPTS内在的多节目传输同步机制具有较大的优势。只要网络带宽足够,无论网络或CDN怎么延迟,无论延迟抖动是多大,HLS MPTS都会确保多路节目的传输同步。相反,多路HLS SPTS分别传输,各自的延迟或延迟抖动不相同,导致多路HLS SPTS的节目传输不同步。HLS SPTS可以扩大客户端的缓存,在缓存中对多路SPTS进行时间对齐,这样虽然实现了传输同步,但增加了更多的延迟,客户端的计算量也加大了。
由于现有的HLS规范本身仅支持SPTS,本发明提出的支持MPTS的HLS切片方法,本质上是扩展了HLS使之支持MPTS。
具体地,本发明实施例提供的一种支持多节目传输流MPTS的HLS切片方法,如图1所示,包括以下步骤:
S1、确定接收到的传输流是否为MPTS;若是,则执行步骤S2,若否,则认为传输流时单节目传输流(SPTS),则对SPTS进行现有的HLS切片方法。
S2、在HLS的M3U8文件中扩展多节目传输流标签。具体地,可以对HLS的媒体播放列表(Media Playlist)文件的标签(tag)进行扩展,扩展标签使之可区分这个MediaPlaylist是否为MPTS。标签格式可以为#EXT-X-MPTS,在Media Playlist中写入#EXT-X-MPTS标签,表示这是一个HLS MPTS。
可选地,在一个实施例中,还可以包括步骤S21、从传输流中读取节目关联表(PAT)信息和节目映射表(PMT)信息,并写入M3U8文件中。具体地,对HLS的Media Playlist文件的标签(tag)进行扩展,对切片MPTS内部的多个节目流进行标识,将原来由传输流携带的PAT和PMT作为HLS的扩展标签写到M3U8文件中,便于HLS时播放的快速读取,即播放器在播放时从M3U8文件读取PAT和PMT的效率会高于从MPTS中读取PAT和PMT的效率。
例如,将MPTS的PAT写入到M3U8文件的格式可以为:
#EXT-X-MPTSPAT-INF:MPTSNAME=N1,ProgID=0x0081
#EXT-X-MPTSPAT-INF:MPTSNAME=N2,ProgID=0x0082
#EXT-X-MPTSPAT-INF:MPTSNAME=N3,ProgID=0x0083
#EXT-X-MPTSPAT-INF:MPTSNAME=N4,ProgID=0x0084
#EXT-X-MPTSPAT-INF:MPTSNAME=N5,ProgID=0x0085
#EXT-X-MPTSPAT-INF:MPTSNAME=N6,ProgID=0x0086
例如,将MPTS的PMT写入到M3U8文件的格式可以为:
#EXT-X-MPTSPMT-INF:ProgID=0x0086,VideoID=0x1410
#EXT-X-MPTSPMT-INF:ProgID=0x0086,AudioID=0x1420
可选地,在一个实施例中,还可以包括步骤S22、从设置中读取默认的首次播放节目标识,并写入M3U8文件中。具体地,设置一个默认的首次播放节目标(default ProgID),以便播放器第一次选择播放哪个画面,即提示播放器在没有用户选择的情况下播放的哪一路节目。例如,default ProgID的格式可以为:#EXT-X-MPTSDEFAULT-INF:ProgID=0x0086。
S3、顺序开启切片文件,并顺序读取传输流中包含的各传输包。
可选地,在一个实施例中,还可以建立与每个切片文件对应的关键帧索引切片文件,在关键帧索引切片文件中可以记录对应的切片文件中包含的各节目的全部关键帧的关键帧信息。在切片时生成新增的关键帧索引切片文件,目的是给播放器在切换节目时提供一个快速定位到新节目关键帧的方式,播放器在切换节目时从关键帧索引切片文件中定位关键帧的效率大大高于从MPTS中解码定位关键帧的效率。
S4、针对读取的当前传输包,确定开启的当前切片文件包含的传输包总时长是否小于设定切片上限长度;若是,则执行步骤S5,若否,则执行步骤S9。
具体地,一般会设置HLS切片文件的时间长度为一固定长度,例如5s,但实际上每个切片文件的时长是变动的,这是由于一个切片文件包含的每一个节目标识都必须包括关键帧,关键帧的需求导致切片文件长度不是准确的5s。具体可以设置一个变动系数,将固定长度乘以变动系数,切片文件的时间长度在该范围内变动,该范围有切片上限长度和切片下限长度,例如切片上限长度为固定长度的1.2倍,切片下限长度为固定长度的0.8倍,即切片文件最大不能超过5s的1.2倍,最小不能小于5s的0.8倍。1.2和0.8只是变动系数的一种设置,也可根据情况设置另一种数值,例如1.1和0.9等。如果切片文件包含的传输包总时长超过规定的切片上限长度,则执行步骤S9关闭当前切片文件,并将当前传输包写入下一个开启的切片文件中。进一步地,还可以执行步骤S91、关闭与当前切片文件对应开启的关键帧索引切片文件,并将当前传输包的关键帧信息写入下一个开启的关键帧索引切片文件。
S5、读取当前传输包内包含的各节目的关键帧。
具体地,可以遍历PMT记录的每个Prog ID的VideoID,记录关键帧信息。如果不是关键帧,则继续遍历,如果当前传输包的每个Prog ID都不是关键帧,则会读MPTS的下一个传输包。
S6、确定当前传输包内包含的各节目的关键帧之间的对齐偏差是否小于设定帧数;若是,则执行步骤S7,若否,则执行步骤S8。
具体地,确定各节目的关键帧之间的对齐偏差小于设定帧数是为了计算“基本对齐的多路关键帧组”,使下一个切片文件以“基本对齐的多路关键帧组”开头,以便优化解码。
“基本对齐的多路关键帧组”的含义是针对MPTS而言。在SPTS的情况下其实就是1路视频的1个关键帧,SPTS不存在对齐。在MPTS情况下,不能期望每路Prog ID的Video ID的关键帧是绝对同步对齐的,但我们可以考虑一种基本对齐。例如Prog ID1…Prog ID6都出现了关键帧,这6个关键帧的对齐偏差在时间上小于或等于某个设定值(例如6帧),那么就认为是“基本对齐的多路关键帧组”。判断当前关键帧开启“基本对齐的多路关键帧组”,是指判断当前时间出现某个Prog ID的关键帧且该时间之后其他所有Prog ID的关键帧将会形成“基本对齐的多路关键帧组”。
S7、确定当前切片文件包含的传输包总时长是否大于设定切片下限长度,若是,则执行步骤S9,若否,则执行步骤S8。
具体地,如果当前出现某个Prog ID的关键帧,则计算并判断当前时间之后其他所有的Prog ID的关键帧是否将会形成“基本对齐的多路关键帧”。如果形成了“基本对齐的多路关键帧”,且会计算当前切片文件包含的传输包总时长是否已经达到规定的切片下限长度,例如切片长度的0.8倍。如果没达到,则执行步骤S8。如果达到,则执行步骤S9,将“基本对齐的多路关键帧组”留给下一个切片文件,使得下一个切片文件的开头有基本对齐的多路关键帧组可供优化解码。
S8、将当前传输包写入当前切片文件中。
可选地,在一个实施例中,还可以包括将当前传输包的关键帧信息写入与当前切片文件对应开启的关键帧索引切片文件。
S9、关闭当前切片文件,并将当前传输包写入下一个开启的切片文件中。
可选地,在一个实施例中,还可以包括关闭与当前切片文件对应开启的关键帧索引切片文件,并将当前传输包的关键帧信息写入下一个开启的关键帧索引切片文件。
具体地,传统SPTS的切片方法按照标准长度进行切片,例如按5秒切片,一般是按PTS时戳每5秒生成一个文件,但为了提高解码效率、需保证每个切片是以关键帧开头,因此当切片时如果遇到关键帧、且当前切片时长已经大于5秒*0.8,则结束当前切片,将关键帧留给下一个切片的开头。
HLS SPTS切片时,只需要判断关键帧,在切片时长>0.8倍率时结束,将关键帧留个下一个切片。传统的HLS切片不支持MPTS,本发明实施例提供的HLS切片方法支持MPTS的HLS切片。MPTS的情况比较复杂,多路节目流的关键帧可能不对齐,而本发明设计的“基本对齐的多路关键帧组”,以便将基本对齐的多路关键帧组留给下一个切片,优化解码。
在播放HLS SPTS切片时,只需要顺序播放即可,因此HLS SPTS不针对播放器做特殊设计。而MPTS存在节目切换,需要播放器快速启动新节目的播放。为此,本发明在HLS切片时为每个视频的切片文件增加了对应的关键帧索引切片文件,对多路视频流MPTS的关键帧、PCR、PTS、SEI时间戳等进行记录,每个关键帧索引切片文件一般包含几十条记录,计算量小、搜索速度快,以便播放器快速定位到关键帧,启动新节目的解码。
可选地,在一个实施例中,如图2所示,计算当前切片文件包含的传输包总时长可以采用如下方式实现:
S41、获取当前传输包的节目时钟参考(PCR_current);
S42、确定当前传输包是否为开启的当前切片文件中的第一个传输包;若是,则执行步骤S43,若否,则执行步骤S44;
S43、将当前传输包的节目时钟参考作为当前切片文件的节目时钟参考,即PCR_current=PCR_first;
S44、将当前切片文件的节目时钟参考与当前传输包的节目时钟参考之差作为当前切片文件包含的传输包总时长Dur=PCR_current-PCR_first。
可选地,在一个实施例中,上述步骤S5、读取当前传输包内包含的各节目的关键帧,如图3所示,可以采用如下方式实现:
S51、根据传输流的PMT记录的每个节目标识(Prog ID)的视频标识(Video ID),遍历当前传输包中的各节目;
S52、确定各节目的节目标识是否为关键帧;若是,则执行步骤S53,若否,则返回S51;
S53、将显示时间标签标记为关键帧的显示时间标签;
S54、在关键帧索引文件中缓存关键帧的关键帧信息,具体地,关键帧信息可以包括关键帧的节目标识(Prog ID)、视频标识(Video ID)、节目时钟参考(Key_PCR)和显示时间标签(Key_PTS)。
可选地,在一个实施例中,在播出前端,可采用支持多机位同步的第三方编码器,例如编码器NTP时钟对齐、编码器可以将同步时钟写到H.264的SEI辅助字段。SEI时戳是多路编码器共同对齐的绝对时间。在传输流打包时,自身带有PCR时戳和PTS/DTS时戳,这些时戳在编码器启动编码时开始计时,主要是供单路节目编码端与解码端的时序同步,并不能保证多路编码的绝对同步,而SEI时戳可以保障多路节目的绝对同步。另外,各路编码器可以采用一致的GOP结构。经过多路复用器后,形成多路节目交织的MPTS流。如果在播出前端启用了H.264的SEI时戳,在确定多节目传输流中携带有SEI时戳时,那么可以读取关键帧的SEI时戳,在关键帧索引切片文件中还可以记录关键帧的SEI时戳(SEI_TS)。
每个切片文件都对应一个关键帧索引切片文件。对于每一个切片文件,新增的关键帧索引切片文件的文件名可以与切片文件的文件名可以相同、后缀为index,例如filexx.ts对应filexx.index。关键帧索引切片文件的格式可以为:
#KeyFrame:ProgID,VideoID,KeyF_PCR,KeyF_PTS,SEI_TS
#KeyFrame:ProgID,VideoID,KeyF_PCR,KeyF_PTS,SEI_TS
……
其中,SEI_TS字段可选。
具体地,切片算法会遍历PMT记录的每个Prog ID的Video ID,判断当前帧是否关键帧。如果某个Prog ID是关键帧,记录其关键帧的PTS为Key_PTS。如果MPTS不启用H.264的SEI字段记录绝对时间戳,那么就缓存当前传输包里面的关键帧的Prog ID,Video ID,Key_PCR,Key_PTS,这个缓存之后会写入到关键帧索引切片文件filexxx.index。如果MPTS启用SEI时戳,那么读取当前关键帧的SEI时间戳,记录当前关键帧的Prog ID,Video ID,Key_PCR,Key_PTS,SEI_TS,之后会写入到关键帧索引切片文件filexxx.index。
例如,对于6路节目,每个10秒切片,GOP=25,关键帧间隔1s,一般一个关键帧索引切片文件包含6x10个关键帧的索引记录,在有Secene change detection的情况下,会增加少量的关键帧的索引记录。由于每个关键帧索引切片文件仅包含几十条关键帧的索引记录,因此搜索关键帧的计算量很小,关键帧索引切片文件可在播放HLS MPTS时大大提高关键帧的搜索定位速度。
本发明实施例提供的HLS切片方法可以适用的系统架构,如图4所示,其中,在播出前端的编码器对视频进行编码和马赛克多画面的合成,编码器输出的SPTS传输至多路复用器进行复用形成1路MPTS。MPTS传输到直播注入设备后,采用本发明实施例提供的HLS切片方法生成多个MPTS切片和M3U8文件的Media Playlist携带HLS MPTS扩展标签,以及多个MPTS关键帧索引切片文件注入到CDN网络中,传输至用户终端的HLS MPTS播放器进行播放。
本发明实施例提供的支持MPTS的HLS切片方法可以应用在多画面视频直播注入设备中。具体地,在多画面视频直播前端中,多台编码器(包括马赛克画面编码)可以通过NTP服务器实现时间同步,并将绝对时间写入到H.264SEI辅助信息,再经过多路复用器形成1路MPTS。MPTS传输到多画面视频直播注入设备,在此设备中采用本发明实施例提供的支持MPTS的HLS切片方法,将MPTS视频切片为多个小的MPTS切片文件,同时生成M3U8文件和关键帧索引切片文件,注入到CDN。本发明实施例提供的支持MPTS的HLS切片方法也可以应用在多画面视频点播文件注入设备中。具体地,对于已经保存为多个TS文件或MP4文件的多机位视频,可以通过多路复用软件,重新复用为1路MPTS。然后多画面视频点播文件注入设备将MPTS通过本发明实施例提供的支持MPTS的HLS切片方法,生成多个小的MPTS切片文件、M3U8文件和关键帧索引切片文件,注入到CDN。
相比于传统的IPTV组播技术,本发明提出的支持MPTS的HLS切片方法可以使得互联网视频在播放多画面直播时采用HLS MPTS技术,做到较好的多路视频流同步传输,提升用户体验。而且HLS MPTS中采用的多路关键帧组基本对齐的原则进行切片,可以快速实现节目切换、切换前后的节目在时间上保持准确同步,这是组播技术无法提供的。
现有针对多机位画面同步的技术,在编码阶段实现多路编码的时钟对齐同步、同步字段写到编码层辅助字段H.264SEI。这种技术提供了辅助同步信息,该技术可以用在播出前端,保证提供多路视频流同步对齐。但该技术只是说从编码器以IP直播流形式传输到中心端,这种属于前端制作领域。在播出前端,IP直播流形式一般采用多路组播或多路UDP单播,该技术没有提供视频到用户终端的传输方法。如果用户终端收看多路直播视频流,一种方法是IPTV组播,另一种方法是基于互联网的HLS技术。如果采用HLS技术在用户端收看多路IPTV直播流,则从CDN分发和CDN到终端的多路HLS SPTS流之间的传输延迟差异较大。
现有针对多视点视频的视点切换技术,定义并扩展了HLS标签使之支持多视点的多路视频、按视点切换的需求请求当前视点的视频,实现视点的平滑过渡。但这种技术在请求当前视点的视频时,采用的是单路HLS视频流(即SPTS),每次请求新视点的视频都不可避免产生HLS延迟,其视点切换的视频虽然是平滑的、但视频从CDN根据HLS协议传输到终端是有延迟差异的。
现有基于HLS的多机位视频直播系统,扩展了HLS多媒体播放列表(MediaPlaylist)实现对多机位的描述。并且提出多机位编码系统包括编码模块、缓存模块和对齐校正模块,编码模块用于完成多机位的音视频编码并封装成HLS协议分发,缓存模块用于缓存各机位的内容,对齐校正模块用于将各机位的画面进行同步对齐。但在涉及用户终端播放时,其仅提出多机位播放系统,在经过网络传输后,在终端获取多机位源的播放地址后,多机位播放系统采用下述逻辑进行呈现,也仅仅是播放多路SPTS HLS流。本质上无法解决多路SPTS HLS流的传输延迟差异问题。
基于同一发明构思,本发明实施例还提供了一种支持MPTS的HLS切片装置,由于该装置解决问题的原理与前述一种支持MPTS的HLS切片方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
本发明实施例提供的一种支持MPTS的HLS切片装置,如图5所示,包括:
第一确定模块501,用于确定接收到的传输流是否为多节目传输流MPTS;
第一处理模块502,用于在确定接收到的传输流为多节目传输流MPTS时,在HLS的M3U8文件中扩展多节目传输流标签;
第二处理模块503,用于顺序开启切片文件,并顺序读取传输流中包含的各传输包;
第二确定模块504,用于针对读取的当前传输包,确定开启的当前切片文件包含的传输包总时长是否小于设定切片上限长度;
读取模块505,用于在确定开启的当前切片文件包含的传输包总时长小于设定切片上限长度时,读取当前传输包内包含的各节目的关键帧;
第三确定模块506,用于确定当前传输包内包含的各节目的关键帧之间的对齐偏差是否小于设定帧数;
第三处理模块507,用于在确定各节目的关键帧之间的对齐偏差小于设定帧数,且当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭当前切片文件,并将当前传输包写入下一个开启的切片文件中。
可选地,在一个实施例中,第一处理模块502还用于:从传输流中读取节目关联表PAT信息和节目映射表PMT信息,并写入M3U8文件中。
可选地,在一个实施例中,第一处理模块502还用于:从设置中读取默认的首次播放节目标识,并写入M3U8文件中。
可选地,在一个实施例中,第二处理模块503还用于:建立与每个切片文件对应的关键帧索引切片文件;第三处理模块507还用于:在关键帧索引切片文件中记录对应的切片文件中包含的各节目的全部关键帧的关键帧信息,关键帧信息包括关键帧的节目标识、视频标识、节目时钟参考和显示时间标签。
可选地,在一个实施例中,第三处理模块507还用于:在确定多节目传输流中携带有SEI时戳时,在关键帧索引切片文件中记录关键帧的SEI时戳。
可选地,在一个实施例中,读取模块505具体用于:根据传输流的PMT记录的每个节目标识的视频标识,遍历当前传输包中的各节目,确定各节目的节目标识是否为关键帧;在确定节目标识为关键帧时,将显示时间标签标记为关键帧的显示时间标签;在关键帧索引文件中缓存关键帧的关键帧信息。
可选地,在一个实施例中,第三确定模块506具体包括用于:在确定各节目的关键帧之间的对齐偏差小于设定帧数时,确定当前切片文件包含的传输包总时长是否大于设定切片下限长度;
第三处理模块507具体用于:在确定当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭当前切片文件,并将当前传输包写入下一个开启的切片文件中,关闭与当前切片文件对应开启的关键帧索引切片文件,并将当前传输包的关键帧信息写入下一个开启的关键帧索引切片文件。
可选地,在一个实施例中,第三处理模块507还用于:
在确定各节目的关键帧之间的对齐偏差大于设定帧数时,将当前传输包写入当前切片文件中,并将当前传输包的关键帧信息写入与当前切片文件对应开启的关键帧索引切片文件;
在确定当前切片文件包含的传输包总时长小于设定切片下限长度时,将当前传输包写入当前切片文件中,并将当前传输包的关键帧信息写入与当前切片文件对应开启的关键帧索引切片文件。
可选地,在一个实施例中,第三处理模块507还用于:在确定当前切片文件包含的传输包总时长大于设定切片上限长度时,关闭当前切片文件,并将当前传输包写入下一个开启的切片文件中。
可选地,在一个实施例中,第二确定模块504还用于:
获取当前传输包的节目时钟参考;
确定当前传输包是否为开启的当前切片文件中的第一个传输包;
若是,则将当前传输包的节目时钟参考作为当前切片文件的节目时钟参考;
若否,则将当前切片文件的节目时钟参考与当前传输包的节目时钟参考之差作为当前切片文件包含的传输包总时长。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的电子设备可以至少包括至少一个处理器、以及至少一个计算机存储介质。其中,计算机存储介质存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本发明各种示例性实施方式的支持MPTS的HLS切片方法中的步骤。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用电子设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理器601、上述至少一个计算机存储介质602、连接不同系统组件(包括计算机存储介质602和处理器601)的总线603。
总线603表示几类总线结构中的一种或多种,包括计算机存储介质总线或者计算机存储介质控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
计算机存储介质602可以包括易失性计算机存储介质形式的可读介质,例如随机存取计算机存储介质(RAM)621和/或高速缓存存储介质622,还可以进一步包括只读计算机存储介质(ROM)623。
计算机存储介质602还可以包括具有一组(至少一个)程序模块624的程序/实用工具625,这样的程序模块624包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备600也可以与一个或多个外部设备604(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口605进行。并且,电子设备600还可以通过网络适配器606与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器606通过总线603与用于电子设备600的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本发明提供的一种支持MPTS的HLS切片方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的支持MPTS的HLS切片方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取计算机存储介质(RAM)、只读计算机存储介质(ROM)、可擦式可编程只读计算机存储介质(EPROM或闪存)、光纤、便携式紧凑盘只读计算机存储介质(CD-ROM)、光计算机存储介质件、磁计算机存储介质件、或者上述的任意合适的组合。
本发明的实施方式的支持MPTS的HLS切片的程序产品可以采用便携式紧凑盘只读计算机存储介质(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘计算机存储介质、CD-ROM、光学计算机存储介质等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读计算机存储介质中,使得存储在该计算机可读计算机存储介质中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种支持MPTS的HLS切片方法,其特征在于,包括:
确定接收到的传输流是否为多节目传输流MPTS;
在确定接收到的传输流为多节目传输流MPTS时,在HLS的M3U8文件中扩展多节目传输流标签;
顺序开启切片文件,并顺序读取所述传输流中包含的各传输包;
针对读取的当前传输包,确定开启的当前切片文件包含的传输包总时长是否小于设定切片上限长度;
在确定开启的当前切片文件包含的传输包总时长小于设定切片上限长度时,读取所述当前传输包内包含的各节目的关键帧;
确定所述当前传输包内包含的各节目的关键帧之间的对齐偏差是否小于设定帧数;
在确定所述各节目的关键帧之间的对齐偏差小于设定帧数,且所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中。
2.如权利要求1所述的HLS切片方法,其特征在于,还包括:从所述传输流中读取节目关联表PAT信息和节目映射表PMT信息,并写入所述M3U8文件中。
3.如权利要求1所述的HLS切片方法,其特征在于,还包括:从设置中读取默认的首次播放节目标识,并写入所述M3U8文件中。
4.如权利要求1所述的HLS切片方法,其特征在于,还包括:建立与每个所述切片文件对应的关键帧索引切片文件;
在所述关键帧索引切片文件中记录对应的切片文件中包含的各节目的全部关键帧的关键帧信息,所述关键帧信息包括所述关键帧的节目标识、视频标识、节目时钟参考和显示时间标签。
5.如权利要求4所述的HLS切片方法,其特征在于,还包括:在确定所述多节目传输流中携带有SEI时戳时,在所述关键帧索引切片文件中记录所述关键帧的SEI时戳。
6.如权利要求4或5所述的HLS切片方法,其特征在于,所述读取所述当前传输包内包含的各节目的关键帧,具体包括:
根据所述传输流的PMT记录的每个节目标识的视频标识,遍历所述当前传输包中的各节目,确定各节目的节目标识是否为关键帧;
在确定节目标识为关键帧时,将所述显示时间标签标记为所述关键帧的显示时间标签;
在所述关键帧索引文件中缓存所述关键帧的关键帧信息。
7.如权利要求6所述的HLS切片方法,其特征在于,在确定所述各节目的关键帧之间的对齐偏差小于设定帧数,且所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中,具体包括:
在确定所述各节目的关键帧之间的对齐偏差小于设定帧数时,确定所述当前切片文件包含的传输包总时长是否大于设定切片下限长度;
在确定所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中,关闭与所述当前切片文件对应开启的关键帧索引切片文件,并将所述当前传输包的关键帧信息写入下一个开启的关键帧索引切片文件。
8.如权利要求7所述的HLS切片方法,其特征在于,还包括:
在确定所述各节目的关键帧之间的对齐偏差大于设定帧数时,将所述当前传输包写入所述当前切片文件中,并将所述当前传输包的关键帧信息写入与所述当前切片文件对应开启的关键帧索引切片文件;
在确定所述当前切片文件包含的传输包总时长小于设定切片下限长度时,将所述当前传输包写入所述当前切片文件中,并将所述当前传输包的关键帧信息写入与所述当前切片文件对应开启的关键帧索引切片文件。
9.如权利要求1-5、7-8任一项所述的HLS切片方法,其特征在于,还包括:在确定所述当前切片文件包含的传输包总时长大于设定切片上限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中。
10.如权利要求1-5、7-8任一项所述的HLS切片方法,其特征在于,在所述确定开启的当前切片文件包含的传输包总时长是否大于设定切片上限长度之前,还包括:
获取所述当前传输包的节目时钟参考;
确定所述当前传输包是否为开启的当前切片文件中的第一个传输包;
若是,则将所述当前传输包的节目时钟参考作为所述当前切片文件的节目时钟参考;
若否,则将所述当前切片文件的节目时钟参考与所述当前传输包的节目时钟参考之差作为所述当前切片文件包含的传输包总时长。
11.一种支持MPTS的HLS切片装置,其特征在于,包括:
第一确定模块,用于确定接收到的传输流是否为多节目传输流MPTS;
第一处理模块,用于在确定接收到的传输流为多节目传输流MPTS时,在HLS的M3U8文件中扩展多节目传输流标签;
第二处理模块,用于顺序开启切片文件,并顺序读取所述传输流中包含的各传输包;
第二确定模块,用于针对读取的当前传输包,确定开启的当前切片文件包含的传输包总时长是否小于设定切片上限长度;
读取模块,用于在确定开启的当前切片文件包含的传输包总时长小于设定切片上限长度时,读取所述当前传输包内包含的各节目的关键帧;
第三确定模块,用于确定所述当前传输包内包含的各节目的关键帧之间的对齐偏差是否小于设定帧数;
第三处理模块,用于在确定所述各节目的关键帧之间的对齐偏差小于设定帧数,且所述当前切片文件包含的传输包总时长大于设定切片下限长度时,关闭所述当前切片文件,并将所述当前传输包写入下一个开启的切片文件中。
12.一种电子设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有被所述至少一个处理器执行的指令;所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行根据权利要求1-10中任一项所述的方法。
13.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序用于执行根据权利要求1-10中任一项所述的方法。
CN202111611414.4A 2021-12-27 2021-12-27 一种支持mpts的hls切片方法及装置 Active CN114401193B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111611414.4A CN114401193B (zh) 2021-12-27 2021-12-27 一种支持mpts的hls切片方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111611414.4A CN114401193B (zh) 2021-12-27 2021-12-27 一种支持mpts的hls切片方法及装置

Publications (2)

Publication Number Publication Date
CN114401193A true CN114401193A (zh) 2022-04-26
CN114401193B CN114401193B (zh) 2024-04-16

Family

ID=81226985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111611414.4A Active CN114401193B (zh) 2021-12-27 2021-12-27 一种支持mpts的hls切片方法及装置

Country Status (1)

Country Link
CN (1) CN114401193B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170155697A1 (en) * 2015-12-01 2017-06-01 Le Holdings (Beijing) Co., Ltd. Method and device for processing streaming media
CN108391176A (zh) * 2018-04-09 2018-08-10 四川百视通科技有限公司 一种rtmp协议到hls协议的实时转换系统及其工作方法
US20190364330A1 (en) * 2018-05-11 2019-11-28 Arris Enterprises Llc Broadcast Delivered HLS System
CN111343511A (zh) * 2020-03-23 2020-06-26 烽火通信科技股份有限公司 一种通过组播实现的hls直播系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170155697A1 (en) * 2015-12-01 2017-06-01 Le Holdings (Beijing) Co., Ltd. Method and device for processing streaming media
CN108391176A (zh) * 2018-04-09 2018-08-10 四川百视通科技有限公司 一种rtmp协议到hls协议的实时转换系统及其工作方法
US20190364330A1 (en) * 2018-05-11 2019-11-28 Arris Enterprises Llc Broadcast Delivered HLS System
CN111343511A (zh) * 2020-03-23 2020-06-26 烽火通信科技股份有限公司 一种通过组播实现的hls直播系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马蓝洋: "延时服务器的优越性以及在直播中的应用", 中国有线电视, 15 March 2019 (2019-03-15) *

Also Published As

Publication number Publication date
CN114401193B (zh) 2024-04-16

Similar Documents

Publication Publication Date Title
US10129609B2 (en) Method for transceiving media files and device for transmitting/receiving using same
JP6462566B2 (ja) 送信装置、送信方法、受信装置および受信方法
JP6610555B2 (ja) 受信装置、送信装置、およびデータ処理方法
TWI686077B (zh) 低延遲視訊串流
US11375258B2 (en) Transitioning between broadcast and unicast streams
CN105340289B (zh) 发送方法、接收方法、发送装置及接收装置
CN101854533B (zh) 频道切换方法、装置及系统
KR101797507B1 (ko) 미디어 컨텐트 송수신 방법 및 그를 이용한 송수신 장치
CN107409234A (zh) 基于lct利用dash格式的基于文件格式的流式传输
US10887645B2 (en) Processing media data using file tracks for web content
CN101083756A (zh) 基于互联网的电视流媒体数据实时传输和服务装置及方法
CN103262556A (zh) 收发媒体内容的方法和利用该方法进行收发的装置
US8793728B1 (en) Systems and methods for processing a traffic log having an optional-promotion log entry
JP7453266B2 (ja) 送信装置
CN103297707B (zh) 一种超高清视频播放系统
CN102355605B (zh) Iptv机顶盒的直播时移处理方法
US20110088069A1 (en) Network device, information processing apparatus, stream switching method, information processing method, program, and content distribution system
CN101207795A (zh) 一种具有时移功能的直播服务器及实现方法
CN114401193B (zh) 一种支持mpts的hls切片方法及装置
CN114401376A (zh) 一种多画面视频播放方法及装置
WO2016090916A1 (zh) 码流传输方法和装置
Veenhuizen et al. Frame accurate media synchronization of heterogeneous media sources in an HBB context
GB2477263A (en) Seamless splicing between audio and video streams by aligning audio ES packets with video IDR locations
CN200994173Y (zh) 一种具有时移功能的直播服务器
Kim et al. Seamless video switching system for service compatible 3DTV broadcasting

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