CN104506967B - Udp直播流到hls直播流的实时转换方法及系统 - Google Patents

Udp直播流到hls直播流的实时转换方法及系统 Download PDF

Info

Publication number
CN104506967B
CN104506967B CN201510003445.XA CN201510003445A CN104506967B CN 104506967 B CN104506967 B CN 104506967B CN 201510003445 A CN201510003445 A CN 201510003445A CN 104506967 B CN104506967 B CN 104506967B
Authority
CN
China
Prior art keywords
section
live
clock
streams
udp
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
Application number
CN201510003445.XA
Other languages
English (en)
Other versions
CN104506967A (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.)
Baishitong Network TV Technology Development Co Ltd
Original Assignee
Baishitong Network TV Technology Development Co 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 Baishitong Network TV Technology Development Co Ltd filed Critical Baishitong Network TV Technology Development Co Ltd
Priority to CN201510003445.XA priority Critical patent/CN104506967B/zh
Publication of CN104506967A publication Critical patent/CN104506967A/zh
Application granted granted Critical
Publication of CN104506967B publication Critical patent/CN104506967B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/25Management 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/262Content 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/26283Content 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 for associating distribution time parameters to content, e.g. to generate electronic program guide data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请适用于互联网的音视频技术领域,提供了一种UDP直播流到HLS直播流的实时转换方法及系统,所述方法包括:数据分离步骤,实时接收至少一个UDP直播流,并从所述UDP直播流分离出音视频数据;索引时钟建立步骤,根据所述UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟;切片生成步骤,根据各所述切片的所述起始索引时钟,对所述音视频数据进行重新组合和封装,转换成符合HLS直播流的所述切片。借此,本申请能够基于现有UDP直播服务技术方案上,无缝扩展HLS直播和点播服务技术,大大节省了设备投入和技术改造的成本。

Description

UDP直播流到HLS直播流的实时转换方法及系统
技术领域
本申请涉及互联网的音视频技术领域,尤其涉及一种UDP直播流到HLS直播流的实时转换方法及系统。
背景技术
UDP(User Datagram Protocol,用户数据报协议)协议因其自身的高效数据传输特点,在音视频领域应用比较广泛。现有广泛流行的传统广电有线电视和IPTV(InternetProtocol Television,互联网协议电视)音视频直播、点播服务都采用UDP协议进行传输。因广电有线电视和IPTV直播点播系统均运行在特殊的私有封闭网络环境中,安全性高,干扰因素少,采用UDP协议进行数据传输应用方便,资源消耗少。
随着近年来互联网视频应用的崛起,开放式互联网视频应用逐步受到重视及爆发性的发展。而开放式互联网环境中因诸多安全和不可控因素,严重限制UDP协议的使用。将UDP协议直播流实时转换成HLS(HTTP Live Streaming,超文本直播流)协议直播流在互联网上提供服务成为一种选择。但重新组建HLS技术框架系统,涉及设备的大量采购和系统的重新搭建,成本高,耗时长,不利于多平台服务提供商。
综上可知,现有技术在开放式互联网实际应用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本申请的目的在于提供一种UDP直播流到HLS直播流的实时转换方法及系统。
为了实现上述目的,本申请提供一种UDP直播流到HLS直播流的实时转换方法,包括:
数据分离步骤,实时接收至少一个UDP直播流,并从所述UDP直播流分离出音视频数据;
索引时钟建立步骤,根据所述UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟;
切片生成步骤,根据各所述切片的所述起始索引时钟,对所述音视频数据进行重新组合和封装,转换成符合HLS直播流的所述切片。
根据本申请所述的实时转换方法,所述数据分离步骤之后且所述索引时钟建立步骤之前还包括:
时钟校准步骤,对分离后所述音视频数据进行时钟校准。
根据本申请所述的实时转换方法,所述索引时钟建立步骤进一步包括:
从分离出的所述音视频数据中找出第一个切片的关键帧,并以所述第一个切片的关键帧在所述UDP直播流中的时钟作为第一个理论起始索引时钟T;
根据所述第一个理论起始索引时钟T和切片时长D,计算出后续切片的理论起始索引时钟TS,第n个切片的理论起始索引时钟TS(n)=T+(n-1)*D;
在分离后的所述音视频数据中找出TS(n+1)和TS(n)之间最小关键帧的时钟TIDR(n)作为第n个切片的所述起始索引时钟。
根据本申请所述的实时转换方法,所述以第一个切片的关键帧在所述UDP直播流中的时钟作为第一个理论起始索引时钟T的步骤包括:
若包括多个所述UDP直播流,则在多个所述UDP直播流的所述第一个切片的关键帧中最大的时钟作为所述第一理论起始索引时钟。
根据本申请所述的实时转换方法,所述切片生成步骤进一步包括:
将满足TIDR(n+1)>T’>=TIDR(n)条件的所述音视频数据作为同一切片内切片数据;根据所述切片数据的时钟顺序进行排列组合及TS封装,形成符合HLS直播流的所述切片,所述T’为泛指每个完整的音视频数据包时钟;
计算每个所述切片时长TD(n),所述TD(n)=TIDR(n+1)-TIDR(n)。
根据本申请所述的实时转换方法,所述切片生成步骤之后还包括:
文件命名步骤,根据各所述切片的生成时间命名各所述切片的文件名,该文件名与所述生成时间建立唯一时间映射关系;
直播列表更新步骤,在每次生成一个新切片后,生成并更新直播列表;
存储映射建立步骤,将超出直播时间效应的失效切片实时搬移,并建立存储映射关系存储所述失效切片。
根据本申请所述的实时转换方法,所述文件命名步骤进一步包括:
在每个所述切片生成时,记录所述切片的系统生成时间并转换成对应的UNIX生成时间,第n个切片的UNIX生成时间FT(n)=(T1+(n–1)*D)/D;T1为第一个切片UNIX生成时间,D为切片时长;
根据每个所述切片的所述UNIX生成时间命名所述切片的文件名,第n个切片的文件名FN(n)=FT(n)+“.ts”。
根据本申请所述的实时转换方法,所述文件命名步骤包括:
若包括多个所述UDP直播流,将最先生成的所述切片对应的所述生成时间命名所述切片的所述文件名。
根据本申请所述的实时转换方法,所述存储映射建立步骤进一步包括:
将所述失效切片实时搬移出直播目录,并根据所述失效切片的频道名、编码码率以及以小时为单位的生成时间建立所述存储映射关系,分别建立三级目录实时存储所述失效切片。
根据本申请所述的实时转换方法,所述存储映射建立步骤之后还包括:
点播列表生成步骤,根据提交节目的起始时间及节目时长,生成对应两级点播列表,所述两级点播列表包括各频道的多个编码码率对应一级点播列表和各所述编码码率对应的二级点播列表。
本申请还提供一种UDP直播流到HLS直播流的实时转换系统,包括:
数据分离模块,用于实时接收至少一个UDP直播流,并从所述UDP直播流分离出音视频数据;
索引时钟建立模块,用于根据所述UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟;
切片生成模块,用于根据各所述切片的所述起始索引时钟,对所述音视频数据进行重新组合和封装,转换成符合HLS直播流的所述切片。
根据本申请所述的实时转换系统,还包括:
时钟校准模块,用于在建立所述起始索引时钟之前,对分离后所述音视频数据进行时钟校准。
根据本申请所述的实时转换系统,所述索引时钟建立模块进一步包括:
第一索引建立子模块,用于从分离出的所述音视频数据中找出第一个切片的关键帧,并以所述第一个切片的关键帧在所述UDP直播流中的时钟作为第一个理论起始索引时钟T;
第二索引建立子模块,用于根据所述第一个理论起始索引时钟T和切片时长D,计算出后续切片的理论起始索引时钟TS,第n个切片的理论起始索引时钟TS(n)=T+(n-1)*D;
第三索引建立子模块,用于在分离后的所述音视频数据中找出TS(n+1)和TS(n)之间最小关键帧的时钟TIDR(n)作为第n个切片的所述起始索引时钟。
根据本申请所述的实时转换系统,所述第一索引建立子模块用于在若包括多个所述UDP直播流时,在多个所述UDP直播流的所述第一个切片的关键帧中最大的时钟作为所述第一理论起始索引时钟。
根据本申请所述的实时转换系统,所述切片生成模块进一步包括:
切片生成子模块,用于将满足TIDR(n+1)>T’>=TIDR(n)条件的所述音视频数据作为同一切片内切片数据;根据所述切片数据的时钟顺序进行排列组合及TS封装,形成符合HLS直播流的所述切片,所述T’为泛指每个完整的音视频数据包时钟;
时长计算子模块,用于计算每个所述切片时长TD(n),所述TD(n)=TIDR(n+1)-TIDR(n)。
根据本申请所述的实时转换系统,还包括:
文件命名模块,用于在生成所述切片后,根据各所述切片的生成时间命名各所述切片的文件名,该文件名与所述生成时间建立唯一时间映射关系;
直播列表更新模块,用于在每次生成一个新切片后,生成并更新直播列表;
存储映射建立模块,用于将超出直播时间效应的失效切片实时搬移,并建立存储映射关系存储所述失效切片。
根据本申请所述的实时转换系统,所述文件命名模块进一步包括:
时间转换子模块,用于在每个所述切片生成时,记录所述切片的系统生成时间并转换成对应的UNIX生成时间,第n个切片的UNIX生成时间FT(n)=(T1+(n–1)*D)/D;T1为第一个切片UNIX生成时间,D为切片时长;
命名子模块,用于根据每个所述切片的所述UNIX生成时间命名所述切片的文件名,第n个切片的文件名FN(n)=FT(n)+“.ts”。
根据本申请所述的实时转换系统,所述命名子模块子模块用于在若包括多个所述UDP直播流时,将最先生成的所述切片对应的所述生成时间命名所述切片的所述文件名。
根据本申请所述的实时转换系统,所述存储映射建立模块还用于将所述失效切片实时搬移出直播目录,并根据所述失效切片的频道名、编码码率以及以小时为单位的生成时间建立所述存储映射关系,分别建立三级目录实时存储所述失效切片。
根据本申请所述的实时转换系统,还包括:
点播列表生成模块,用于在转换成符合HLS直播流的所述切片后,根据提交节目的起始时间及节目时长,生成对应两级点播列表,所述两级点播列表包括各频道的多个编码码率对应一级点播列表和各所述编码码率对应的二级点播列表。
本申请能够基于现有UDP直播服务技术方案上,无缝扩展HLS直播和点播服务技术,大大节省了设备投入和技术改造的成本。而且,本申请还可将直播音视频切片数据合理收录,建立唯一时间映射关系并存储,从而可快速、方便地实现提供点播回看业务,减少直播实时收录及后期人工编辑等工作,提高了工作效率。
附图说明
图1是本申请UDP直播流到HLS直播流的实时转换方法的流程图;
图2是本申请优选UDP直播流到HLS直播流的实时转换方法的流程图;
图3是本申请UDP直播流到HLS直播流的实时转换系统的结构示意图;
图4是本申请优选UDP直播流到HLS直播流的实时转换系统的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1是本申请UDP直播流到HLS直播流的实时转换方法的流程图,包括:
步骤S101,数据分离步骤,实时接收至少一个UDP直播流,并从UDP直播流分离出音视频数据。
所述UDP直播流为基于UDP协议的直播流数据。
步骤S102,索引时钟建立步骤,根据UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟。
优选的是,根据UDP直播流中时钟信息及关键帧信息,建立协议转换起始索引时钟;并以该起始索引时钟和切片时长为基准,确定后续切片的起始点索引理论时钟。起始点确定后并以此为基准建立后续切片理论时钟起始点索引,然后再计算出各切片的实际起始索引时钟,这是UDP协议到HLS协议转换的基础。
步骤S103,切片生成步骤,根据各切片的起始索引时钟,对音视频数据进行重新组合和封装,转换成符合HLS直播流的切片,从而完成UDP组播的直播流实时转换成HLS协议直播流。
优选的是,在所述数据分离步骤之后且索引时钟建立步骤之前还可包括:
时钟校准步骤,对分离后音视频数据进行时钟校准。
图2是本申请优选UDP直播流到HLS直播流的实时转换方法的流程图,UDP协议和HLS协议分别是针对不同应用领域的传输方案,技术实现差别大;由于直播特点,数据流内音视频时钟会定时重置,对协议转换带来不便;同一频道多个直播流同时输入,输出要保证同一时刻输出的命名一致的每个切片内音视频数据时钟严格同步。所述方法包括:
步骤S201,数据分离步骤,实时接收至少一个UDP直播流,并从UDP直播流分离出音视频数据。
步骤S202,时钟校准步骤,对分离后音视频数据进行时钟校准。
所述时钟校准用于直播流内起始索引时钟确定、对分离后的音视频数据时钟进行同步处理及合理处理时钟重置等。
步骤S203,索引时钟建立步骤,根据UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟。
优选的是,所述索引时钟建立步骤进一步包括:
1)从分离出的音视频数据中找出第一个切片的关键帧,并以第一个切片的关键帧在UDP直播流中的时钟作为第一个理论起始索引时钟T。若包括多个UDP直播流,则在多个UDP直播流的第一个切片的关键帧中最大的时钟作为第一理论起始索引时钟。
2)根据第一个理论起始索引时钟T和切片时长D,计算出后续切片的理论起始索引时钟TS,第n个切片的理论起始索引时钟TS(n)=T+(n-1)*D。
3)在分离后的音视频数据中找出TS(n+1)和TS(n)之间最小关键帧的时钟TIDR(n)作为第n个切片的起始索引时钟。
协议转换的各切片起始索引时钟建立优选如下:
表一
第一步:从接收的UDP直播流数据中分离出的视频流数据中,找到第一个切片的关键帧。以第一个切片的关键帧在直播流中的时钟,作为第一个理论起始索引时钟,记为T。并以T为起点,根据切片时长,确定所有后续切片的理论起始索引时钟。多个直播输入流,以同时找到的最大T作为起始索引时钟。
则第n个切片的理论起始索引时钟为:TS(n)=T+(n-1)*D
第二步:在分离后的视频流中寻找TIDR(n)作为第n个切片的起始时钟。
第三步:将满足TIDR(n+1)>T’>=TIDR(n)条件的所有音视频数据作为同一个切片内数据。对这些数据按时钟顺序进行排列组合及TS封装,形成单独的切片;同时计算切片时长TD(n),实现UDP数据流到HLS数据流的转换。TD(n)=TIDR(n+1)-TIDR(n)
以上三步作为本申请切片的核心算法,确保单个或多个输入流无论是严格遵循HLS编码标准直播流还是传统直播流,均能顺利切片,并满足HLS协议要求。
步骤S204,切片生成步骤,根据各切片的起始索引时钟,对音视频数据进行重新组合和封装,转换成符合HLS直播流的切片。
优选的时,所述切片生成步骤进一步包括:
1)将满足TIDR(n+1)>T’>=TIDR(n)条件的音视频数据作为同一切片内切片数据。根据切片数据的时钟顺序进行排列组合及TS(Transport Stream,传送流)封装,形成符合HLS直播流的切片,所述T’为泛指每个完整的音视频数据包时钟;
2)计算每个切片时长TD(n),TD(n)=TIDR(n+1)-TIDR(n)。
重新组合并进行TS封装。根据切片时长和起始点索引关系,对重新封装后的音视频数据进行分段处理,形成完整、独立且顺序的符合HLS协议TS切片文件流。
步骤S205,文件命名步骤,根据各切片的生成时间命名各切片的文件名,该文件名与生成时间建立唯一时间映射关系。若包括多个UDP直播流,将最先生成的切片对应的生成时间命名切片的文件名。
优选的是,采用建立和UNIX时间唯一映射的文件名。UNIX时间方便和北京时间进行唯一转换。唯一的且和生成时间映射的文件命名,方便快速根据时间查找到符合要求的对应的文件数据。所述文件命名步骤进一步包括:
1)在每个切片生成时,记录切片的系统生成时间并转换成唯一对应的UNIX生成时间,根据UNIX生成时间进行文件名映射,切片文件名时间映射规则如下:
表二
符号 表示内容
n 自然数
T1 第一个切片的UNIX生成时间
D 切片时长
FT(n) 第n个切片的UNIX生成时间
FN(n) 第n个切片命名
第n个切片的UNIX生成时间FT(n)=(T1+(n–1)*D)/D。
2)根据每个切片的UNIX生成时间命名切片的文件名,第n个切片的文件名FN(n)=FT(n)+“.ts”。
如北京时间2014/12/114:15:00对应的UNIX生成时间为1417414500,切片时长10秒。该时间输出第一个切片,单个直播流命名情况如下:
FT(1)=(1417414500+(1-1)*10)/10=141741450;
FN(1)=FT(1)+“.ts”=141741450.ts;
第二个切片命名为:
FT(2)=(1417414500+(2-1)*10)/10=141741451;
FN(2)=141741451.ts……
同一频道多个流命名规则:无论输出先后顺序,各个输出的切片内容如时钟一致,则其第一个切片文件命名取最先生成切片对应的UNIX时间转换后的文件名。假设直播编码器输出4个码率的东方卫视直播频道,在北京时间2014/12/114:15:00时先后输出4个码率的切片文件,每个切片时长10秒。输出时间分别为:
表三
输入流 输出时间
S1T1 2014/12/114:15:00
S2T1 2014/12/114:15:01
S3T1 2014/12/114:15:00
S4T1 2014/12/114:15:02
T=MIN(S1T1,S2T1,S3T1,S4T1)=14:15:00;
每个流最终参照时间以2014/12/114:15:00为准,文件命名均统一为:
FT(1)=(1417414500+(1-1)*10)/10=141741450;
FN(1)=141741450.ts
北京时间2014/12/114:15:10时刻先后分别输出第二个切片文件的时间为:
表四
输入流 输出时间
S1T2 2014/12/114:15:11
S2T2 2014/12/114:15:09
S3T2 2014/12/114:15:11
S4T2 2014/12/114:15:12
则:FT(2)=(T+(2-1)*10)/10=141741451;
FN(2)=(T1+D)/D=1417414511.ts
……
根据该规则,实现多个输入流文件命名保持同步,确保切片后续存储时间化,为回看做好准备。
步骤S206,直播列表更新步骤,在每次生成一个新切片后,生成并更新直播列表。
优选的是,每产生一个新的切片文件后,及时生成并更新m3u8播放列表。
并且,多个输入流需实时进行时钟校准和检验,确保同一编号不同输出流切片输出时钟完全一致。
步骤S207,存储映射建立步骤,将超出直播时间效应的失效切片实时搬移,并建立存储映射关系存储失效切片。
由于直播有实效性特点,在直播目录中,新切片会不断产生,因此需将超出直播设定失效时间的失效切片文件及时搬移出直播目录。
优选的是,所述存储映射建立步骤进一步包括:
将失效切片实时搬移出直播目录,并根据失效切片的频道名、编码码率以及以小时为单位的生成时间建立存储映射关系,分别建立三级目录实时存储失效切片。这样,既达到对直播频道的实时收录功能,也可根据生成时间点方便快速查找对应数据,以此为基础提供回看服务。文件名映射规则确定及失效切片文件映射存储关系确定,是本申请直播转回看的核心基础。
对实时输出的直播数据文件的命名建立时间映射关系,将失效文件转移直播目录,建立索引存储。为使直播数据能够顺利转换成点播回看数据,需对直播输出切片文件进行必要的命名,并和生成时间建立起统一的唯一映射关系;同时对超出直播时间效应的失效切片文件,转移到合理的索引目录达到收录和实现回看的目的。
在本申请的具体实施例中,切片存储目录生成规则如下:
存储目录根据频道名、直播码率及生成时间,分别建立多级目录进行存储。
一级目录以频道名命名:东方卫视频道一级目录命名为:东方卫视。该目录收录东方卫视频道所有切片文件。
二级目录以码率进行命名:东方卫视频道同时提供4个码率进行服务,每个码率分别为700000bp/s,900000bp/s,1300000bp/s,2300000bp/s。则二级目录分别命名为:“700000”,“900000”,“1300000”,“2300000”。该目录收录所有对应编码码率各个时间段切片文件。
三级目录以小时进行命名:如北京时间2014/12/114:00:00,对应目录为“2014120114”,该目录中收录切片文件名对应时间从2014/12/0114:00:00~2014/12/0114:59:59之间的切片文件。
更好的是,所述存储映射建立步骤之后还包括:
点播列表生成步骤,根据提交节目的起始时间及节目时长,生成对应两级点播列表,两级点播列表包括各频道的多个编码码率对应一级点播列表和各编码码率对应的二级点播列表。
例如根据以上映射规则,点播回看功能如下实现:根据提交节目起始时间及节目时长,生成对应的m3u8播放列表并提供服务。如提交东方卫视2014/12/0112:00:00“午间新闻”时长30分钟的节目。系统根据该信息提供两级点播列表。首先生成东方卫视4个码率一级m3u8列表,一级m3u8列表包含一级和二级文件夹目录及该码率播放列表文件,如下:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000
东方卫视/700000/700.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=900000
东方卫视/900000/900.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1300000
东方卫视/1300000/1300.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2300000
东方卫视/2300000/2300.m3u8
#EXT-X-ENDLIST
时长30分钟“午间新闻”对应以“2014/12/0112:00:00”为起始时间。以700000bp/s码率为例生成二级m3u8列表。
第一步:将起始时间进行UNIX时间转换,并根据UNIX生成时间及文件名映射关系,推算出播放列表内第一个切片命名。
FN(n)=(T+(n-1)*D)/D+‘.ts’;
2014/12/0112:00:00对应UNIX生成时间1417406400,该时间点FN(1)对应回看目录中以“141740640.ts”命名的文件。
第二步:根据节目时长和切片时长,计算切片数目及反推播放列表中最后一切片文件命名。
n=30*60/10=180片
根据第一切片命名和切片数目,推算出列表内最后切片FN(180)文件名为“141740819.ts”。
第三步:在三级目录“2014120112”中寻找文件编号包含及介于“141740640.ts~141740819.ts”之间的所有切片文件,并将切片名添加到m3u8列表中,生成二级m3u8列表。
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:141740640
#EXT-X-VERSION:3
#EXTINF:10,
2014120112/141740640.ts
#EXTINF:10,
2014120112/141740641.ts
……
#EXTINF:10,
2014120112/141740820.ts
#EXT-X-ENDLIST
本申请优选实施方式中将从切片时间索引建立、切片文件命名时间索引映射和切片存储映射三个方面进行。这三个索引的建立,互相配合,共同完成切片协议转换和直播转回看功能。
本申请能够低成本充分利用现有技术,高性能地实现无缝转换成符合HLS协议要求的直播流,既能极大地节省设备投入和技术改造,也能够快速实现HLS的各项应用要求。同时将直播音视频切片数据合理收录,建立唯一时间映射关系并存储,快速、方便实现提供点播回看数据,减少直播实时收录及后期人工编辑等工作,提高工作效率。本申请主要分为三个方面:实时接收UDP组播单个或多个符合要求的直播流,进行音视频数据分离、分析、校准并进行TS封装,按要求进行切片和播放列表生成,输出符合HLS协议的单个或多个切片直播流;对输出切片流文件命名建立唯一时间映射关系;对直播失效切片文件以频道名、编码码率及小时为单位进行实时存储,实现收录和回看功能。
图3是本申请UDP直播流到HLS直播流的实时转换系统的结构示意图,所述实时转换系统100至少包括有数据分离模块10、索引时钟建立模块20以及切片生成模块30,其中:
所述数据分离模块10,用于实时接收至少一个UDP直播流,并从UDP直播流分离出音视频数据。
所述索引时钟建立模块20,用于根据UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟。
所述切片生成模块30,用于根据各切片的起始索引时钟,对音视频数据进行重新组合和封装,转换成符合HLS直播流的切片。
本申请在保持现有UDP直播服务技术方案完全不变的情况下,无缝扩展HLS直播服务技术;同时对已生成直播切片数据建立文件名和生成时间唯一映射关系,并根据生成时间建立时间索引合理存储,方便根据过往时间和播放时长生成回看播放列表并提供回看数据,实现了直播数据收录及直播转回看功能。
本申请在现有技术的基础上无缝扩展HLS应用技术,极大节省技术改造和设备更新成本投入,可应用于互联网直播和回看业务。
图4是本申请优选UDP直播流到HLS直播流的实时转换系统的结构示意图,所述实时转换系统100可包括有数据分离模块10、索引时钟建立模块20、切片生成模块30、时钟校准模块40、文件命名模块50、直播列表更新模块60、存储映射建立模块70和/或点播列表生成模块80,其中:
所述数据分离模块10,用于实时接收至少一个UDP直播流,并从UDP直播流分离出音视频数据。
时钟校准模块40,用于在建立起始索引时钟之前,对分离后音视频数据进行时钟校准。
所述索引时钟建立模块20,用于根据UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟。
优选的是,索引时钟建立模块20进一步包括:
第一索引建立子模块21,用于从分离出的音视频数据中找出第一个切片的关键帧,并以第一个切片的关键帧在UDP直播流中的时钟作为第一个理论起始索引时钟T。优选的是,第一索引建立子模块10用于在若包括多个UDP直播流时,在多个UDP直播流的第一个切片的关键帧中最大的时钟作为第一理论起始索引时钟。
第二索引建立子模块22,用于根据第一个理论起始索引时钟T和切片时长D,计算出后续切片的理论起始索引时钟TS,第n个切片的理论起始索引时钟TS(n)=T+(n-1)*D。
第三索引建立子模块23,用于在分离后的音视频数据中找出TS(n+1)和TS(n)之间最小关键帧的时钟TIDR(n)作为第n个切片的起始索引时钟。
所述切片生成模块30,用于根据各切片的起始索引时钟,对音视频数据进行重新组合和封装,转换成符合HLS直播流的切片。优选的是,切片生成模块30进一步包括:
切片生成子模块31,用于将满足TIDR(n+1)>T’>=TIDR(n)条件的音视频数据作为同一切片内切片数据。根据切片数据的时钟顺序进行排列组合及TS封装,形成符合HLS直播流的切片,T’为泛指每个完整的音视频数据包时钟。
时长计算子模块32,用于计算每个切片时长TD(n),TD(n)=TIDR(n+1)-TIDR(n)。
所述文件命名模块50,用于在生成切片后,根据各切片的生成时间命名各切片的文件名,该文件名与生成时间建立唯一时间映射关系。优选的是,所述文件命名模块50进一步包括:
时间转换子模块51,用于在每个切片生成时,记录切片的系统生成时间并转换成对应的UNIX生成时间,第n个切片的UNIX生成时间FT(n)=(T1+(n–1)*D)/D。T1为第一个切片UNIX生成时间,D为切片时长。
命名子模块52,用于根据每个切片的UNIX生成时间命名切片的文件名,第n个切片的文件名FN(n)=FT(n)+“.ts”。文件命名子模块52还用于在若包括多个UDP直播流时,将最先生成的切片对应的生成时间命名切片的文件名。
所述直播列表更新模块60,用于在每次生成一个新切片后,生成并更新直播列表。
所述存储映射建立模块70,用于将超出直播时间效应的失效切片实时搬移,并建立存储映射关系存储失效切片。优选的是,存储映射建立模块70还用于将失效切片实时搬移出直播目录,并根据失效切片的频道名、编码码率以及以小时为单位的生成时间建立存储映射关系,分别建立三级目录实时存储失效切片。
所述点播列表生成模块80,用于在转换成符合HLS直播流的切片后,根据提交节目的起始时间及节目时长,生成对应两级点播列表,两级点播列表包括各频道的多个编码码率对应一级点播列表和各编码码率对应的二级点播列表。
综上所述,本申请能够基于现有UDP直播服务技术方案上,无缝扩展HLS直播和点播服务技术,大大节省了设备投入和技术改造的成本。而且,本申请还可将直播音视频切片数据合理收录,建立唯一时间映射关系并存储,从而可快速、方便地实现提供点播回看业务,减少直播实时收录及后期人工编辑等工作,提高了工作效率。
当然,本申请还可有其它多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请所附的权利要求的保护范围。

Claims (18)

1.一种UDP直播流到HLS直播流的实时转换方法,其特征在于,包括:
数据分离步骤,实时接收至少一个UDP直播流,并从所述UDP直播流分离出音视频数据;
索引时钟建立步骤,根据所述UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟;
切片生成步骤,根据各所述切片的所述起始索引时钟,对所述音视频数据进行重新组合和封装,转换成符合HLS直播流的所述切片;
所述切片生成步骤之后还包括:
文件命名步骤,根据各所述切片的生成时间命名各所述切片的文件名,该文件名与所述生成时间建立唯一时间映射关系;
直播列表更新步骤,在每次生成一个新切片后,生成并更新直播列表;
存储映射建立步骤,将超出直播时间效应的失效切片实时搬移,并建立存储映射关系存储所述失效切片。
2.根据权利要求1所述的实时转换方法,其特征在于,所述数据分离步骤之后且所述索引时钟建立步骤之前还包括:
时钟校准步骤,对分离后所述音视频数据进行时钟校准。
3.根据权利要求1所述的实时转换方法,其特征在于,所述索引时钟建立步骤进一步包括:
从分离出的所述音视频数据中找出第一个切片的关键帧,并以所述第一个切片的关键帧在所述UDP直播流中的时钟作为第一个理论起始索引时钟T;
根据所述第一个理论起始索引时钟T和切片时长D,计算出后续切片的理论起始索引时钟TS,第n个切片的理论起始索引时钟TS(n)=T+(n-1)*D;
在分离后的所述音视频数据中找出TS(n+1)和TS(n)之间最小关键帧的时钟TIDR(n)作为第n个切片的所述起始索引时钟。
4.根据权利要求3所述的实时转换方法,其特征在于,所述以第一个切片的关键帧在所述UDP直播流中的时钟作为第一个理论起始索引时钟T的步骤包括:
若包括多个所述UDP直播流,则在多个所述UDP直播流的所述第一个切片的关键帧中最大的时钟作为所述第一个理论起始索引时钟。
5.根据权利要求3所述的实时转换方法,其特征在于,所述切片生成步骤进一步包括:
将满足TIDR(n+1)>T’>=TIDR(n)条件的所述音视频数据作为同一切片内切片数据;根据所述切片数据的时钟顺序进行排列组合及TS封装,形成符合HLS直播流的所述切片,所述T’为泛指每个完整的音视频数据包时钟;
计算每个所述切片时长TD(n),所述TD(n)=TIDR(n+1)-TIDR(n)。
6.根据权利要求1所述的实时转换方法,其特征在于,所述文件命名步骤进一步包括:
在每个所述切片生成时,记录所述切片的系统生成时间并转换成对应的UNIX生成时间,第n个切片的UNIX生成时间FT(n)=(T1+(n–1)*D)/D;T1为第一个切片UNIX生成时间,D为切片时长;
根据每个所述切片的所述UNIX生成时间命名所述切片的文件名,第n个切片的文件名FN(n)=FT(n)+“.ts”。
7.根据权利要求6所述的实时转换方法,其特征在于,所述文件命名步骤包括:
若包括多个所述UDP直播流,将最先生成的所述切片对应的所述生成时间命名所述切片的所述文件名。
8.根据权利要求1所述的实时转换方法,其特征在于,所述存储映射建立步骤进一步包括:
将所述失效切片实时搬移出直播目录,并根据所述失效切片的频道名、编码码率以及以小时为单位的生成时间建立所述存储映射关系,分别建立三级目录实时存储所述失效切片。
9.根据权利要求1所述的实时转换方法,其特征在于,所述存储映射建立步骤之后还包括:
点播列表生成步骤,根据提交节目的起始时间及节目时长,生成对应两级点播列表,所述两级点播列表包括各频道的多个编码码率对应一级点播列表和各所述编码码率对应的二级点播列表。
10.一种UDP直播流到HLS直播流的实时转换系统,其特征在于,包括:
数据分离模块,用于实时接收至少一个UDP直播流,并从所述UDP直播流分离出音视频数据;
索引时钟建立模块,用于根据所述UDP直播流中时钟信息及关键帧信息建立符合HLS直播流的各切片的起始索引时钟;
切片生成模块,用于根据各所述切片的所述起始索引时钟,对所述音视频数据进行重新组合和封装,转换成符合HLS直播流的所述切片;
还包括:
文件命名模块,用于在生成所述切片后,根据各所述切片的生成时间命名各所述切片的文件名,该文件名与所述生成时间建立唯一时间映射关系;
直播列表更新模块,用于在每次生成一个新切片后,生成并更新直播列表;
存储映射建立模块,用于将超出直播时间效应的失效切片实时搬移,并建立存储映射关系存储所述失效切片。
11.根据权利要求10所述的实时转换系统,其特征在于,还包括:
时钟校准模块,用于在建立所述起始索引时钟之前,对分离后所述音视频数据进行时钟校准。
12.根据权利要求10所述的实时转换系统,其特征在于,所述索引时钟建立模块进一步包括:
第一索引建立子模块,用于从分离出的所述音视频数据中找出第一个切片的关键帧,并以所述第一个切片的关键帧在所述UDP直播流中的时钟作为第一个理论起始索引时钟T;
第二索引建立子模块,用于根据所述第一个理论起始索引时钟T和切片时长D,计算出后续切片的理论起始索引时钟TS,第n个切片的理论起始索引时钟TS(n)=T+(n-1)*D;
第三索引建立子模块,用于在分离后的所述音视频数据中找出TS(n+1)和TS(n)之间最小关键帧的时钟TIDR(n)作为第n个切片的所述起始索引时钟。
13.根据权利要求12所述的实时转换系统,其特征在于,所述第一索引建立子模块用于在若包括多个所述UDP直播流时,在多个所述UDP直播流的所述第一个切片的关键帧中最大的时钟作为所述第一个理论起始索引时钟。
14.根据权利要求12所述的实时转换系统,其特征在于,所述切片生成模块进一步包括:
切片生成子模块,用于将满足TIDR(n+1)>T’>=TIDR(n)条件的所述音视频数据作为同一切片内切片数据;根据所述切片数据的时钟顺序进行排列组合及TS封装,形成符合HLS直播流的所述切片,所述T’为泛指每个完整的音视频数据包时钟;
时长计算子模块,用于计算每个所述切片时长TD(n),所述TD(n)=TIDR(n+1)-TIDR(n)。
15.根据权利要求10所述的实时转换系统,其特征在于,所述文件命名模块进一步包括:
时间转换子模块,用于在每个所述切片生成时,记录所述切片的系统生成时间并转换成对应的UNIX生成时间,第n个切片的UNIX生成时间FT(n)=(T1+(n–1)*D)/D;T1为第一个切片UNIX生成时间,D为切片时长;
命名子模块,用于根据每个所述切片的所述UNIX生成时间命名所述切片的文件名,第n个切片的文件名FN(n)=FT(n)+“.ts”。
16.根据权利要求15所述的实时转换系统,其特征在于,所述命名子模块子模块用于在若包括多个所述UDP直播流时,将最先生成的所述切片对应的所述生成时间命名所述切片的所述文件名。
17.根据权利要求10所述的实时转换系统,其特征在于,所述存储映射建立模块还用于将所述失效切片实时搬移出直播目录,并根据所述失效切片的频道名、编码码率以及以小时为单位的生成时间建立所述存储映射关系,分别建立三级目录实时存储所述失效切片。
18.根据权利要求10所述的实时转换系统,其特征在于,还包括:
点播列表生成模块,用于在转换成符合HLS直播流的所述切片后,根据提交节目的起始时间及节目时长,生成对应两级点播列表,所述两级点播列表包括各频道的多个编码码率对应一级点播列表和各所述编码码率对应的二级点播列表。
CN201510003445.XA 2015-01-05 2015-01-05 Udp直播流到hls直播流的实时转换方法及系统 Active CN104506967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510003445.XA CN104506967B (zh) 2015-01-05 2015-01-05 Udp直播流到hls直播流的实时转换方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510003445.XA CN104506967B (zh) 2015-01-05 2015-01-05 Udp直播流到hls直播流的实时转换方法及系统

Publications (2)

Publication Number Publication Date
CN104506967A CN104506967A (zh) 2015-04-08
CN104506967B true CN104506967B (zh) 2017-11-21

Family

ID=52948671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510003445.XA Active CN104506967B (zh) 2015-01-05 2015-01-05 Udp直播流到hls直播流的实时转换方法及系统

Country Status (1)

Country Link
CN (1) CN104506967B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017035804A1 (zh) * 2015-09-02 2017-03-09 深圳好视网络科技有限公司 一种传送流切片方法及装置
CN105979362A (zh) * 2015-10-29 2016-09-28 乐视致新电子科技(天津)有限公司 一种视频处理方法及装置
CN105898372A (zh) * 2015-12-15 2016-08-24 乐视云计算有限公司 视频直播转点播方法及系统
CN107404455A (zh) * 2016-05-18 2017-11-28 冯山泉 一种直播方法、系统及装置
CN106603503B (zh) * 2016-11-22 2019-01-08 腾讯科技(深圳)有限公司 直播数据的处理方法和装置
CN106657123A (zh) * 2016-12-30 2017-05-10 杭州当虹科技有限公司 一种基于hls协议的直播时移方案
CN108391176A (zh) * 2018-04-09 2018-08-10 四川百视通科技有限公司 一种rtmp协议到hls协议的实时转换系统及其工作方法
CN108650481B (zh) * 2018-04-19 2021-08-10 北京软通智慧城市科技有限公司 一种视频流数据的存储方法及装置
CN108810655B (zh) * 2018-06-29 2020-09-18 北京比利信息技术有限公司 基于ip的直播实时推荐方案的实现方法
CN111343511B (zh) * 2020-03-23 2022-04-08 武汉市烽视威科技有限公司 一种通过组播实现的hls直播系统及方法
CN113285947B (zh) * 2021-05-21 2022-04-26 烽火通信科技股份有限公司 一种hls直播和组播直播接续的方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716662A (zh) * 2013-12-05 2014-04-09 乐视网信息技术(北京)股份有限公司 一种混合传输方法及服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9491521B2 (en) * 2013-06-21 2016-11-08 Arris Enterprises, Inc. Trick play seek operation for HLS converted from DTCP

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716662A (zh) * 2013-12-05 2014-04-09 乐视网信息技术(北京)股份有限公司 一种混合传输方法及服务器

Also Published As

Publication number Publication date
CN104506967A (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN104506967B (zh) Udp直播流到hls直播流的实时转换方法及系统
CN108391176A (zh) 一种rtmp协议到hls协议的实时转换系统及其工作方法
CN104244023B (zh) 视频云编辑系统和方法
US9246971B2 (en) System and method for segment demarcation and identification in adaptive streaming
CN109101504B (zh) 一种日志压缩和索引方法
CN110674362A (zh) 搜索推荐方法、装置、电子设备及可读存储介质
US9100727B2 (en) Broadcasting links to enhanced content
CN110022295B (zh) 一种数据传输的方法和视联网系统
CN111092901A (zh) 一种工业互联网平台中设备接入及数据存储的方法
CN109788235B (zh) 一种基于视联网的会议记录信息的处理方法和系统
CN108111872A (zh) 一种音频直播系统
CN110650313B (zh) 一种监控资源的目录展示方法、装置及存储介质
CN110619066A (zh) 一种基于目录树的信息获取方法和装置
CN111083422A (zh) 视联网调度会议异常分析方法、装置、设备、系统及介质
CN108574819B (zh) 一种终端设备和一种视频会议的方法
EP3197151B1 (en) Mosaic service presentation/delivery method and apparatus
CN109413460B (zh) 一种视联网终端的功能菜单的展示方法和系统
CN110516141B (zh) 数据查询方法、装置、电子设备以及可读存储介质
CN109450995B (zh) 一种服务器端数据的获取方法和系统
CN111159586B (zh) 一种基于视联网的视频查询方法及装置
CN110619074A (zh) 一种基于视联网的搜索方法和视联网管理平台
CN110809021A (zh) 一种菜单排序方法、装置、电子设备及存储介质
CN101686381B (zh) 基于数字电视的网络广播媒体信息播发方法
CN110516061A (zh) 一种数据处理方法、装置和计算机可读存储介质
CN101317214A (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
GR01 Patent grant
GR01 Patent grant