CN113207007B - 基于hls协议的直播录制方法 - Google Patents

基于hls协议的直播录制方法 Download PDF

Info

Publication number
CN113207007B
CN113207007B CN202110477472.6A CN202110477472A CN113207007B CN 113207007 B CN113207007 B CN 113207007B CN 202110477472 A CN202110477472 A CN 202110477472A CN 113207007 B CN113207007 B CN 113207007B
Authority
CN
China
Prior art keywords
live broadcast
slice
broadcast source
file
source
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
CN202110477472.6A
Other languages
English (en)
Other versions
CN113207007A (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.)
Hangzhou Arcvideo Technology Co ltd
Original Assignee
Hangzhou Arcvideo Technology 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 Hangzhou Arcvideo Technology Co ltd filed Critical Hangzhou Arcvideo Technology Co ltd
Priority to CN202110477472.6A priority Critical patent/CN113207007B/zh
Publication of CN113207007A publication Critical patent/CN113207007A/zh
Application granted granted Critical
Publication of CN113207007B publication Critical patent/CN113207007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • 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/64Addressing
    • H04N21/6402Address allocation for clients
    • 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

Landscapes

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

Abstract

本发明公开了一种基于HLS协议的直播录制方法,包括以下步骤:预设置步骤,定义录制过程中的参数;直播源请求步骤,轮询请求直播源的m3u8文件,获取其内容进入直播源解析步骤,终止轮询代表直播结束;直播源解析步骤,解析直播源的m3u8文件内容,计算出当前直播切片的序号、时间点,结合预设置步骤中定义的更新方式、结束方式及最后直播标识,来判断m3u8文件中是否有新生成的切片、是否已经直播结束,从而触发后续分支逻辑;内容下载步骤;组装录制文件步骤;最后直播标识步骤,记录当前录制系统中每个直播源最后解析的切片信息,包括切片的序号或切片的绝对时间,便于下次直播源解析进行判断是否更新;结束步骤,直播源解析步骤中发现直播已经结束所触发的逻辑。

Description

基于HLS协议的直播录制方法
技术领域
本发明属于视频直播录制技术领域,具体涉及一种基于HLS协议的直播录制方法。
背景技术
HLS协议(HTTP Live Streaming,基于HTTP的自适应码率流媒体传输协议)通常以m3u8作为封装格式,m3u8只是一个描述性的文件,真正的文件流是其内部声明的TS(Transport Stream,传送流)文件(TS也是一种常用的视频封装格式,加密都是对该文件进行加密,TS只是一种封装格式,也有其他格式,比如mp4)。
现有技术中,普通的HLS直播录制如果采用录屏方式容易造成画质降低、增加客户端资源消耗、无法过滤由于断流产生的黑屏等情况。而专业的HLS直播录制服务或机器太过于庞大且复杂,对服务端硬件要求较高且并发录制数量往往不高。
发明内容
本发明要解决的技术问题是提供一种基于HLS协议的直播录制方法。
为解决上述技术问题,本发明采用如下的技术方案:
本发明实施例提供了一种基于HLS协议的直播录制方法,包括以下步骤:预设置步骤,定义录制过程中的参数;
直播源请求步骤,轮询请求直播源的m3u8文件,获取其内容进入直播源解析步骤,终止轮询代表直播结束;
直播源解析步骤,解析直播源的m3u8文件内容,计算出当前直播切片的序号、时间点,结合预设置步骤中定义的更新方式、结束方式及最后直播标识,来判断m3u8文件中是否有新生成的切片、是否已经直播结束,从而触发后续分支逻辑;
内容下载步骤,当直播源解析步骤中发现有新生成的切片时触发,基于切片地址进行切片下载,再结合预设置步骤中定义的存储地址,将切片保存至本地硬盘中;
组装录制文件步骤,在内容下载后执行,当直播切片下载完成后需要将该切片信息记录在录制的视频信息中,录制的视频信息也是一个m3u8文件,如果是直播的第一个切片需要新建该文件,如果m3u8文件已存在,需要向该文件中添加一条切片文件记录信息;同时需要向最后直播标识中记录一下该直播源最后解析的切片信息;
最后直播标识步骤,记录当前录制系统中每个直播源最后解析的切片信息,包括切片的序号或切片的绝对时间,便于下次直播源解析进行判断是否更新;
结束步骤,直播源解析步骤中发现直播已经结束所触发的逻辑,用于将本次录制的m3u8文件追加一个结束标识符,表明该文件已录制完成。
优选地,预设置步骤中,参数包括轮询直播源请求的时间间隔、判断直播源是否更新的方式、判断直播源是否结束的方式和录制的文件存储路径。
优选地,轮询直播源请求的时间间隔与直播源m3u8文件中定义的最大切片时长相同。
优选地,判断HLS直播源是否更新的方式包括以切片序号为标识和以切片时间为标识。
优选地,定义判断HLS直播源是否结束的方式包括以多久没有更新代表直播停止和以HLS直播源包含结束标识代表直播停止。
优选地,直播源解析步骤具体工作过程如下:
直播源解析步骤接收到直播源请求模块转发的HLS直播源内容后,进行逐行解析,筛选出切片信息,包括每个切片的序号、每个切片的时间、每个切片的名称和HLS直播源结束标识;
解析完以上信息后,首先获取到预设置模块定义的判断HLS直播源是否更新的方式:
如果是以切片序号为标识,那么从最后直播标识中获取到该HLS直播源最后一次的更新序号,对比数值大小,只要该切片序号比最后一次更新的序号大就认为是新切片,转交至内容下载步骤处理;
如果是以切片时间为标识,那么从最后直播标识中获取到该HLS直播源最后一次的更新时间,对比时间早晚,只要该切片时间比最后一次更新的时间晚就认为是新切片,转交至内容下载步骤处理;
如果以上两种情况均判定为旧切片,那么需要获取预设置步骤中定义的判断HLS直播源是否结束的方式:如果以多久没有更新代表直播停止,那么需要判定上次更新时间距离当前时间是否超过该值,如果超过需要转交结束步骤处理;如果以HLS直播源包含结束标识代表直播停止,那么需要判断直播源内容中是否包含HLS直播源结束标识,如果包含需要转交至结束步骤处理;以上条件均不满足直接进行下一轮直播源请求继续监测。
优选地,内容下载步骤具体过程如下:
接收到直播源解析模块转发的切片信息后,需要先判断本次切片的请求方式再进行下载:
如果是绝对路径,直接使用切片名称下载即可;
如果是相对路径,需要根据HLS直播源地址生成切片下载地址;
拿到待下载的切片地址后,再获取预设置步骤中定义的存储路径,进行下载、写入即可,下载时可以增加重试逻辑用于保障文件完整性,最后将本次写入的切片信息及路径信息转发至组装录制文件步骤。
采用本发明具有如下的有益效果:
(1)可以对HLS直播进行原生无损画面的录制;
(2)由于是对切片进行录制,因此可以自动过滤由于直播信源中断产生的黑屏(信源中断时,通常不会产生新的切片);
(3)支持智能跟随直播停止同步停止录制;
(4)适用于多场景下的直播录制;
(5)在保证录制稳定性的情况下支持较高(4核8G百兆带宽的普通服务器支持600路1080P直播录制)的单机并发数。
附图说明
图1为本发明实施例的基于HLS协议的直播录制方法的步骤流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例是基于HLS协议的直播源,因此需要先了解HLS直播源的部分格式规范,HLS协议一般以m3u8为后缀,m3u8文件仅为描述文件,真正直播流内容一般是以TS作为封装格式,每个TS文件又称为切片,范例如下,本发明具体实施方式中的部分说明均以此范例为准。
直播源地址范例:
http://static.danghongyun.com/demo.m3u8
直播源内容:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:1086
#EXT-X-PROGRAM-DATE-TIME:2021-01-09T12:31:16Z
#EXTINF:5.000,
testa.ts
#EXT-X-PROGRAM-DATE-TIME:2021-01-09T12:31:21Z
#EXTINF:5.000,
testb.ts
#EXT-X-PROGRAM-DATE-TIME:2021-01-09T12:31:26Z
#EXTINF:5.000,
testc.ts
#EXT-X-ENDLIST
其中需要重点关注的有:
#EXT-X-TARGETDURATION:每个切片的最大时长,实际切片可以超过该时长,但是不允许超过2倍该时长。
#EXT-X-MEDIA-SEQUENCE:该直播源中第一个切片的序号,每个TS文件在m3u8文件中都有固定唯一的序列号。
#EXT-X-PROGRAM-DATE-TIME:每个切片的绝对时间。
#EXTINF:每个切片的实际时长。
#EXT-X-ENDLIST:如果包含此标识,代表该HLS直播源已结束。
参照图1,所示本发明实施例的基于HLS协议的直播录制方法的步骤流程图,包括以下步骤:
预设置步骤,定义录制过程中的参数;其中参数主要包含轮询直播源请求的时间间隔、判断直播源是否更新的方式、判断直播源是否结束的方式、录制的文件存储路径,提取这些参数作为设置参数是为了满足不同的直播录制场景,比如7x24小时的长直播录制、2小时的事件型直播等场景下对更新方式、结束方式等要求不同,具体在实施方式中将予以详细说明。
直播源请求步骤,轮询请求直播源的m3u8文件,获取其内容进入直播源解析步骤,终止轮询代表直播结束;轮询请求的原因是因为m3u8文件是随着时间推进而不断更新的,可以在预设置步骤中设置轮询的时间间隔,即每隔多久去请求一次直播源的m3u8文件。根据预设置定义的轮询间隔,对HLS直播源进行轮询请求,比如范例中的请求地址为http://static.danghongyun.com/demo.m3u8,将该请求响应的内容后转发至直播源解析模块,同时携带HLS直播源地址。
直播源解析步骤,解析直播源的m3u8文件内容,计算出当前直播切片的序号、时间点,结合预设置步骤中定义的更新方式、结束方式及最后直播标识,来判断m3u8文件中是否有新生成的切片(ts文件)、是否已经直播结束,从而触发后续分支逻辑;
内容下载步骤,当直播源解析步骤中发现有新生成的切片时触发,基于切片地址进行切片下载,再结合预设置步骤中定义的存储地址,将切片保存至本地硬盘中;
组装录制文件步骤,在内容下载后执行,当直播切片下载完成后需要将该切片信息记录在录制的视频信息中,录制的视频信息也是一个m3u8文件,如果是直播的第一个切片需要新建该文件,如果m3u8文件已存在,需要向该文件中添加一条切片文件记录信息;同时需要向最后直播标识中记录一下该直播源最后解析的切片信息;
最后直播标识步骤,记录当前录制系统中每个直播源最后解析的切片信息,包括切片的序号或切片的绝对时间,便于下次直播源解析进行判断是否更新;存储切片信息的同时需要关联对应的直播源,因为不同的直播源最后直播标识不同,在直播源解析模块获取的时候便于查找。
结束步骤,直播源解析步骤中发现直播已经结束所触发的逻辑,用于将本次录制的m3u8文件追加一个结束标识符,表明该文件已录制完成,可以对外进行发布播放。
通过以上基于HLS协议的直播录制方法可以对HLS直播进行原生画面的录制,且支持智能跟随直播停止同步停止录制,同时在保证录制稳定性的情况下支持较高(4核8G百兆带宽的普通服务器支持600路1080P直播录制)的单机并发数。在实际应用实例中,以上步骤可以均包含在录制装置中,无需分开安装部署。
具体应用实例中,预设置模块中完成以下设置及定义:
(1)轮询直播源请求的时间间隔,该间隔会影响录制文件的完整性,建议跟随直播源m3u8文件中定义的最大切片时长,比如范例中的m3u8文件中#EXT-X-TARGETDURATION为3秒,那么该轮询时间间隔应在3秒左右。
(2)定义判断HLS直播源是否更新的方式,包括以切片序号为标识和以切片时间为标识,该两种选择适应的业务场景不同,具体如下:
a.以切片序号为标识即以HLS直播源中的#EXT-X-MEDIA-SEQUENCE属性作为当前HLS直播源的最后一次更新标识,适用于7×24小时的HLS直播源,因为长直播型的HLS直播源中的序号比较稳定,不会突然归零导致录制异常;
b.以切片时间为标识即以HLS直播源中的#EXT-X-PROGRAM-DATE-TIME属性作为当前HLS直播源的最后一次更新标识,适用于短时间的事件型的直播源,因为事件型直播的启停操作较为频繁,切片序号不稳定,以时间为标识较为精准。
(3)定义判断HLS直播源是否结束的方式包括以多久没有更新代表直播停止和以HLS直播源包含结束标识,其中以多久没有更新代表直播停止适用于7x24小时直播,以HLS直播源包含结束标识(#EXT-X-ENDLIST)代表直播停止适用于事件型直播。
(4)定义录制存储的路径,供内容下载步骤中写入文件使用。
具体应用实例中,直播源解析步骤接收到直播源请求模块转发的HLS直播源内容后,进行逐行解析,筛选出切片信息,如下:
每个切片的序号:由HLS直播源中的#EXT-X-MEDIA-SEQUENC属性值+本次HLS直播源中的切片顺序(从0开始),举例如下:
直播源内容:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:1086
#EXT-X-PROGRAM-DATE-TIME:2021-01-09T12:31:16Z
#EXTINF:5.000,
testa.ts
#EXT-X-PROGRAM-DATE-TIME:2021-01-09T12:31:21Z
#EXTINF:5.000,
testb.ts
#EXT-X-PROGRAM-DATE-TIME:2021-01-09T12:31:26Z
#EXTINF:5.000,
testc.ts
其中每个切片的序号计算方式:
testa.ts:1086+0=1086
testb.ts:1086+1=1087
testc.ts:1086+2=1088
每个切片的时间:#EXT-X-PROGRAM-DATE-TIME属性值;
每个切片的名称:testa.ts、testb.ts、testc.ts,此处举例的切片为相对路径,也有绝对路径方式即http全路径,交由内容下载步骤进行适配;
HLS直播源结束标识用于解析是否含有#EXT-X-ENDLIST标识;
解析完以上信息后,首先获取到预设置模块定义的判断HLS直播源是否更新的方式:
如果是以切片序号为标识,那么从最后直播标识中获取到该HLS直播源最后一次的更新序号,对比数值大小,只要该切片序号比最后一次更新的序号大就认为是新切片,转交至内容下载步骤处理;
如果是以切片时间为标识,那么从最后直播标识中获取到该HLS直播源最后一次的更新时间,对比时间早晚,只要该切片时间比最后一次更新的时间晚就认为是新切片,转交至内容下载步骤处理;
如果以上两种情况均判定为旧切片,那么需要获取预设置步骤中定义的判断HLS直播源是否结束的方式:
如果以多久没有更新代表直播停止,那么需要判定上次更新时间距离当前时间是否超过该值,如果超过需要转交结束步骤处理;如果以HLS直播源包含结束标识(#EXT-X-ENDLIST)代表直播停止,那么需要判断直播源内容中是否包含HLS直播源结束标识,如果包含需要转交至结束步骤处理;以上条件均不满足直接进行下一轮直播源请求继续监测。
具体应用实例中,内容下载步骤中,接收到直播源解析模块转发的切片信息后,需要先判断本次切片的请求方式再进行下载:
如果是绝对路径,直接使用切片名称下载即可;
如果是相对路径,需要根据HLS直播源地址生成切片下载地址,例:直播源为http://static.danghongyun.com/demo.m3u8、切片为testa.ts,那么切片的地址为http://static.danghongyun.com/testa.ts,即将m3u8文件名称换成切片名称;
拿到待下载的切片地址后,再获取预设置步骤中定义的存储路径,进行下载、写入即可,下载时可以增加重试逻辑用于保障文件完整性,最后将本次写入的切片信息及路径信息转发至组装录制文件步骤。
具体应用实例中,组装录制文件步骤中,录制的文件内容参考m3u8规范,在整个录制过程中都处于更新的状态,由内容下载步骤触发,接收到内容下载步骤传递的切片信息后,需要先在预设置步骤定义的存储路径中检查是否存在录制后的m3u8文件;
如果是直播的第一个切片需要在该存储路径下写入一个全新的m3u8文件,按照m3u8规范即可,文件名称根据业务而定,此处举例为vod.m3u8,不作为本发明的限制条件,内容如下:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
然后后续再更新此m3u8,追加接收到的切片信息,追加后如下:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXTINF:5.000,
testa-new.ts
其中:
#EXTINF:为下载模块传递的切片时长;
testa-new.ts为下载模块写入到存储上的文件名称,更新完成后将此切片信息记录至最后直播标识中,然后进行下一轮直播源请求。
具体应用实例中,结束步骤中,当直播源解析模块判定为结束时执行,需要对组装录制文件模块更新的m3u8进行追加结束标识用来转换为m3u8点播文件,追加后的文件内容为:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXTINF:5.000,
testa-new.ts
#EXT-X-ENDLIST
至此,该HLS直播源的收录已结束,产生的录制文件为vod.m3u8,提供对外发布访问即可。
应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。

Claims (3)

1.一种基于HLS协议的直播录制方法,其特征在于,包括以下步骤:
预设置步骤,定义录制过程中的参数;参数包括轮询直播源请求的时间间隔、判断直播源是否更新的方式、判断直播源是否结束的方式和录制的文件存储路径;判断HLS直播源是否更新的方式包括以切片序号为标识和以切片时间为标识;定义判断HLS直播源是否结束的方式包括以多久没有更新代表直播停止和以HLS直播源包含结束标识代表直播停止;
直播源请求步骤,轮询请求直播源的m3u8文件,获取其内容进入直播源解析步骤,终止轮询代表直播结束;
直播源解析步骤,解析直播源的m3u8文件内容,计算出当前直播切片的序号、时间点,结合预设置步骤中定义的更新方式、结束方式及最后直播标识,来判断m3u8文件中是否有新生成的切片、是否已经直播结束,从而触发后续分支逻辑;直播源解析步骤具体工作过程如下:
直播源解析步骤接收到直播源请求模块转发的HLS直播源内容后,进行逐行解析,筛选出切片信息,包括每个切片的序号、每个切片的时间、每个切片的名称和HLS直播源结束标识;
解析完以上信息后,首先获取到预设置模块定义的判断HLS直播源是否更新的方式:
如果是以切片序号为标识,那么从最后直播标识中获取到该HLS直播源最后一次的更新序号,对比数值大小,只要该切片序号比最后一次更新的序号大就认为是新切片,转交至内容下载步骤处理;
如果是以切片时间为标识,那么从最后直播标识中获取到该HLS直播源最后一次的更新时间,对比时间早晚,只要该切片时间比最后一次更新的时间晚就认为是新切片,转交至内容下载步骤处理;
如果以上两种情况均判定为旧切片,获取预设置步骤中定义的判断HLS直播源是否结束的方式:如果以多久没有更新代表直播停止,判定上次更新时间距离当前时间是否超过该值,如果超过需要转交结束步骤处理;如果以HLS直播源包含结束标识代表直播停止,判断直播源内容中是否包含HLS直播源结束标识,如果包含需要转交至结束步骤处理;以上条件均不满足直接进行下一轮直播源请求继续监测;
内容下载步骤,当直播源解析步骤中发现有新生成的切片时触发,基于切片地址进行切片下载,再结合预设置步骤中定义的存储地址,将切片保存至本地硬盘中;
组装录制文件步骤,在内容下载后执行,当直播切片下载完成后需要将该切片信息记录在录制的视频信息中,录制的视频信息也是一个m3u8文件,如果是直播的第一个切片需要新建该文件,如果m3u8文件已存在,需要向该文件中添加一条切片文件记录信息;同时需要向最后直播标识中记录一下该直播源最后解析的切片信息;
最后直播标识步骤,记录当前录制系统中每个直播源最后解析的切片信息,包括切片的序号或切片的绝对时间,便于下次直播源解析进行判断是否更新;
结束步骤,直播源解析步骤中发现直播已经结束所触发的逻辑,用于将本次录制的m3u8文件追加一个结束标识符,表明该文件已录制完成。
2.如权利要求1所述的基于HLS协议的直播录制方法,其特征在于,轮询直播源请求的时间间隔与直播源m3u8文件中定义的最大切片时长相同。
3.如权利要求1所述的基于HLS协议的直播录制方法,其特征在于,内容下载步骤具体过程如下:
接收到直播源解析模块转发的切片信息后,需要先判断本次切片的请求方式再进行下载:
如果是绝对路径,直接使用切片名称下载即可;
如果是相对路径,需要根据HLS直播源地址生成切片下载地址;
拿到待下载的切片地址后,再获取预设置步骤中定义的存储路径,进行下载、写入即可,下载时可以增加重试逻辑用于保障文件完整性,最后将本次写入的切片信息及路径信息转发至组装录制文件步骤。
CN202110477472.6A 2021-04-29 2021-04-29 基于hls协议的直播录制方法 Active CN113207007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110477472.6A CN113207007B (zh) 2021-04-29 2021-04-29 基于hls协议的直播录制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110477472.6A CN113207007B (zh) 2021-04-29 2021-04-29 基于hls协议的直播录制方法

Publications (2)

Publication Number Publication Date
CN113207007A CN113207007A (zh) 2021-08-03
CN113207007B true CN113207007B (zh) 2022-11-15

Family

ID=77029397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110477472.6A Active CN113207007B (zh) 2021-04-29 2021-04-29 基于hls协议的直播录制方法

Country Status (1)

Country Link
CN (1) CN113207007B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114125487A (zh) * 2021-12-02 2022-03-01 北京思特奇信息技术股份有限公司 一种基于hls接口的视频直播录制方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343511A (zh) * 2020-03-23 2020-06-26 烽火通信科技股份有限公司 一种通过组播实现的hls直播系统及方法
WO2021073539A1 (zh) * 2019-10-16 2021-04-22 中兴通讯股份有限公司 一种hls播放方法、客户端、服务器及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683884B (zh) * 2015-02-09 2018-08-07 网宿科技股份有限公司 一种流媒体直播方法及系统
CN105721811A (zh) * 2015-05-15 2016-06-29 乐视云计算有限公司 直播视频的录制方法和系统
CN105847941B (zh) * 2016-03-17 2019-02-19 央广视讯传媒股份有限公司 一种基于hls协议的音视频流直播方法
CN105812895A (zh) * 2016-03-17 2016-07-27 张俊莲 一种视频点播数据处理方法及其系统
US10686855B2 (en) * 2016-09-22 2020-06-16 Verizon Patent And Licensing Inc. HLS over multimedia broadcast multicast service (MBMS)
CN107864406B (zh) * 2017-10-24 2019-03-26 广东省南方数字电视无线传播有限公司 时移视频播放方法、装置和系统
CN109819345B (zh) * 2017-11-20 2021-08-10 网宿科技股份有限公司 直播视频的处理、时移方法、视频处理装置及云存储系统
CN111447455A (zh) * 2018-12-29 2020-07-24 北京奇虎科技有限公司 直播视频流回放处理方法、装置及计算设备
CN110351506A (zh) * 2019-07-17 2019-10-18 视联动力信息技术股份有限公司 一种视频录制方法、装置、电子设备及可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021073539A1 (zh) * 2019-10-16 2021-04-22 中兴通讯股份有限公司 一种hls播放方法、客户端、服务器及存储介质
CN111343511A (zh) * 2020-03-23 2020-06-26 烽火通信科技股份有限公司 一种通过组播实现的hls直播系统及方法

Also Published As

Publication number Publication date
CN113207007A (zh) 2021-08-03

Similar Documents

Publication Publication Date Title
US10911789B2 (en) Automatic failover for live video streaming
US9414002B2 (en) Receiving apparatus, receiving method, and program
CN108124202B (zh) 一种使流媒体服务器支持hls协议的方法
US7624128B2 (en) Method and apparatus for synchronizing EPG information between server and client
CN113518247B (zh) 视频播放方法、相关设备及计算机可读存储介质
CN103002274A (zh) 一种基于离线下载的移动多媒体实时转码播放系统及方法
US11223856B2 (en) Method for processing streaming media data and server for processing streaming media
TW202123718A (zh) 動態縮減替換內容之播放以幫助對齊替換內容之結束與已替換內容之結束
US20020091816A1 (en) Broadcast data access system for multimedia clients in a broadcast network architecture
US11212369B2 (en) Distributed storage of state information and session recovery using state information
US20150347415A1 (en) Http live streaming dateranges
KR20150023251A (ko) 광고 판단 해결의 가속화
US20220394360A1 (en) Real-time ad tracking proxy
CN113207007B (zh) 基于hls协议的直播录制方法
US20240171797A1 (en) Techniques for providing a content stream based on a delivered stream of content
CN111510790A (zh) 视频请求方法、系统、计算机设备及计算机可读存储介质
JP5237292B2 (ja) リッチ・メディア・ストリームの管理
JP4055776B2 (ja) コンテンツ配信システム、並びにこれに用いられるピア及びピアプログラム
US10171847B2 (en) Information device and distribution device
CN107302525A (zh) 拉流控制方法及装置、可读存储介质、流媒体服务器
US20160173551A1 (en) System and method for session mobility for adaptive bitrate streaming
CN113873298A (zh) 视频重定向的方法、电子设备以及计算机可读存储介质
JP2003527704A (ja) シーンを表示する装置及びその方法
US20220264171A1 (en) Use of In-Band Data to Facilitate Ad Harvesting for Dynamic Ad Replacement
CN112788353B (zh) 直播时移处理方法、装置、电子设备和可读存储介质

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