CN111741338A - Hls流媒体播放方法、系统、设备及存储介质 - Google Patents
Hls流媒体播放方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111741338A CN111741338A CN202010719812.7A CN202010719812A CN111741338A CN 111741338 A CN111741338 A CN 111741338A CN 202010719812 A CN202010719812 A CN 202010719812A CN 111741338 A CN111741338 A CN 111741338A
- Authority
- CN
- China
- Prior art keywords
- slice
- playlist
- streaming media
- target
- length
- 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
Images
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/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/26258—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 for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/643—Communication protocols
Abstract
本发明公开了一种HLS流媒体播放方法、系统、设备及存储介质,当接收到播放列表请求时,首先通过用户发送的播放列表请求的文件名,选择与播放列表请求对应的TS切片长度,再检测切片模块是否存在与TS切片长度对应的播放列表;当不存在播放列表时,提取预置缓冲流媒体中的视频帧,根据视频帧与TS切片长度生成目标播放列表,并将目标播放列表上传至播放列表请求对应的客户端,以供用户进行观看,由于播放列表根据不同播放列表请求对应的TS切片长度生成,TS切片长度越短,用户观看流媒体直播的延时越短,有效降低了直播延时,且通过HLS协议进行流媒体传输,保留了流媒体无插件播放的便捷性。
Description
技术领域
本发明涉及多媒体技术领域,尤其涉及一种HLS(HTTP Live Streaming,Apple的动态码流自适应技术)流媒体播放方法、系统、设备及存储介质。
背景技术
随着互联网及移动通讯技术的发展,流媒体能够跨网传输及多终端无插件播放等需求也越来越重要。HLS(HTTP Live Streaming,Apple的动态码流自适应技术),越来越多的被应用到各种终端的流媒体播放业务中,但是目前HLS以固定的长度将连续的流媒体数据分割为多个TS(Transport Stream,传输流)切片文件,播放终端根据M3U8播放列表,通过HTTP协议下载分片实现视频播放,因此通过HLS协议进行流媒体直播时,其直播延时(播放的时间与前端视频编码真实时间比较的延时)一般会高于其他流媒体直播的协议。开发人员在降低流媒体直播延时,采用的解决方式为更换传输方式,但是采用更换传输方式降低流媒体直播延时将牺牲HLS传输的很多优势,不能便捷地实现流媒体的多终端无插件播放。
发明内容
本发明的主要目的在于提供一种HLS流媒体播放方法、系统、设备及存储介质,旨在解决通过HLS协议进行流媒体直播时,其直播延较高,若通过更换传输方式降低流媒体直播延时,又不能便捷地实现流媒体的多终端无插件播放的技术问题。
为实现上述目的,本发明实施例提供一种HLS流媒体播放方法,所述HLS流媒体播放方法包括:
当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度,并检测存储容器中是否存在基于所述TS切片长度的播放列表;
若不存在所述播放列表,则提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表,并将所述目标播放列表上传至发起所述播放列表请求的客户端。
优选地,所述提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表的步骤包括:
提取预置缓冲流媒体中存储的多个视频帧,并分别对多个所述视频帧进行TS头封装;
根据所述TS切片长度对封装后的多个视频帧进行切片,生成与所述TS切片长度相同的多个目标切片文件,并将多个所述目标切片文件整合为目标切片文件组;
根据预设生成规则对所述目标切片文件组进行处理,生成目标播放列表。
优选地,所述根据所述播放列表请求的文件名,确定TS切片长度的步骤包括:
获取所述播放列表请求的文件名,并根据所述文件名识别出所述播放列表请求对应的播放模式;
基于预设数据库查找与所述播放模式对应的切片长度,并将所述切片长度确定为TS切片长度。
优选地,所述检测存储容器中是否存在基于所述TS切片长度的播放列表的步骤包括:
检测存储容器中是否存在与所述TS切片长度相同的多个切片文件形成的切片文件组;
若存在所述切片文件组,则判定存在基于所述TS切片长度的播放列表;
若不存在所述切片文件组,则判定不存在基于所述TS切片长度的播放列表。
优选地,所述将所述目标播放列表上传至发起所述播放列表请求的客户端的步骤之后,还包括:
当检测所述流媒体中存在更新视频帧时,检测所述更新视频帧的缓冲时长是否大于或等于所述TS切片长度;
若所述缓冲时长大于或等于所述TS切片长度,则提取所述更新视频帧,并对所述视频帧按照所述TS切片长度进行封装组合,得到更新切片文件;
基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表。
优选地,所述基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表的步骤包括:
分别识别所述目标切片文件组中,多个目标切片文件的生成时间;
将多个所述目标切片文件中,生成时间距离当前时间点最远的目标切片文件替换为所述更新切片文件,形成更新切片文件组;
根据预设更新规则对所述更新切片文件组进行处理,生成更新播放列表。
优选地,所述当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度的步骤之前包括:
对视频源流媒体接入的视频流的格式进行识别,得到所述视频流的封装方式;
查找与所述视频流的封装方式对应的解复用方式,并调用所述解复用方式对所述视频流进行解复用,得到多个视频帧。
为实现上述目的,本发明还提供一种HLS流媒体播放系统,所述HLS流媒体播放系统包括:
切片模块,用于当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度,并检测存储容器中是否存在基于所述TS切片长度的播放列表;
HTTP服务模块,用于若不存在所述播放列表,则提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表,并将所述目标播放列表上传至发起所述播放列表请求的客户端。
进一步地,为实现上述目的,本发明还提供一种HLS流媒体播放设备,所述HLS流媒体播放设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的HLS流媒体播放程序,所述HLS流媒体播放程序被所述处理器执行时实现上述的HLS流媒体播放方法的步骤。
进一步地,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有HLS流媒体播放程序,所述HLS流媒体播放程序被处理器执行时实现上述的HLS流媒体播放方法的步骤。
本发明实施例提供一种HLS流媒体播放方法、系统、设备及存储介质,当接收到播放列表请求时,首先通过用户发送的播放列表请求的文件名,选择与播放列表请求对应的TS切片长度,再检测切片模块是否存在与TS切片长度对应的播放列表;当不存在播放列表时,提取预置缓冲流媒体中的视频帧,根据视频帧与TS切片长度生成目标播放列表,并将目标播放列表上传至播放列表请求对应的客户端,以供用户进行观看,由于播放列表根据不同播放列表请求对应的TS切片长度生成,TS切片长度越短,用户观看流媒体直播的延时越短,有效降低了直播延时,且通过HLS协议进行流媒体传输,保留了流媒体无插件播放的便捷性。
附图说明
图1为本发明HLS流媒体播放方法实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明HLS流媒体播放方法第一实施例的流程示意图;
图3为本发明HLS流媒体播放方法第一实施例中循环buffer的读写示意图;
图4为本发明HLS流媒体播放方法第二实施例的流程示意图;
图5为本发明HLS流媒体播放系统较佳实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种HLS流媒体播放方法、系统、设备及存储介质,当接收到播放列表请求时,首先通过用户发送的播放列表请求的文件名,选择与播放列表请求对应的TS切片长度,再检测切片模块是否存在与TS切片长度对应的播放列表;当不存在播放列表时,提取预置缓冲流媒体中的视频帧,根据视频帧与TS切片长度生成目标播放列表,并将目标播放列表上传至播放列表请求对应的客户端,以供用户进行观看,由于播放列表根据不同播放列表请求对应的TS切片长度生成,TS切片长度越短,用户观看流媒体直播的延时越短,有效降低了直播延时,且通过HLS协议进行流媒体传输,保留了流媒体无插件播放的便捷性。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的HLS流媒体播放设备结构示意图。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本发明实施例HLS流媒体播放设备可以是PC,也可以是平板电脑、便携计算机等可移动式终端设备。
如图1所示,该HLS流媒体播放设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的HLS流媒体播放设备结构并不构成对HLS流媒体播放设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及HLS流媒体播放程序。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的HLS流媒体播放程序,并执行以下操作:
当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度,并检测存储容器中是否存在基于所述TS切片长度的播放列表;
若不存在所述播放列表,则提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表,并将所述目标播放列表上传至发起所述播放列表请求的客户端。
进一步地,所述提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表的步骤包括:
提取预置缓冲流媒体中存储的多个视频帧,并分别对多个所述视频帧进行TS头封装;
根据所述TS切片长度对封装后的多个视频帧进行切片,生成与所述TS切片长度相同的多个目标切片文件,并将多个所述目标切片文件整合为目标切片文件组;
根据预设生成规则对所述目标切片文件组进行处理,生成目标播放列表。
进一步地,所述根据所述播放列表请求的文件名,确定TS切片长度的步骤包括:
获取所述播放列表请求的文件名,并根据所述文件名识别出所述播放列表请求对应的播放模式;
基于预设数据库查找与所述播放模式对应的切片长度,并将所述切片长度确定为TS切片长度。
进一步地,所述检测存储容器中是否存在基于所述TS切片长度的播放列表的步骤包括:
检测存储容器中是否存在与所述TS切片长度相同的多个切片文件形成的切片文件组;
若存在所述切片文件组,则判定存在基于所述TS切片长度的播放列表;
若不存在所述切片文件组,则判定不存在基于所述TS切片长度的播放列表。
进一步地,所述将所述目标播放列表上传至发起所述播放列表请求的客户端的步骤之后,处理器1001还可以用于调用存储器1005中存储的HLS流媒体播放程序,并执行以下操作:
当检测所述流媒体中存在更新视频帧时,检测所述更新视频帧的缓冲时长是否大于或等于所述TS切片长度;
若所述缓冲时长大于或等于所述TS切片长度,则提取所述更新视频帧,并对所述视频帧按照所述TS切片长度进行封装组合,得到更新切片文件;
基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表。
进一步地,所述基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表的步骤包括:
分别识别所述目标切片文件组中,多个目标切片文件的生成时间;
将多个所述目标切片文件中,生成时间距离当前时间点最远的目标切片文件替换为所述更新切片文件,形成更新切片文件组;
根据预设更新规则对所述更新切片文件组进行处理,生成更新播放列表。
进一步地,所述当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度的步骤之前,处理器1001还可以用于调用存储器1005中存储的HLS流媒体播放程序,并执行以下操作:
对视频源流媒体接入的视频流的格式进行识别,得到所述视频流的封装方式;
查找与所述视频流的封装方式对应的解复用方式,并调用所述解复用方式对所述视频流进行解复用,得到多个视频帧。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
参照图2,本发明第一实施例提供一种HLS流媒体播放方法的流程示意图。该实施例中,所述HLS流媒体播放方法包括以下步骤:
步骤S10,当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度,并检测存储容器中是否存在基于所述TS切片长度的播放列表;
本实施例中的HLS流媒体播放方法应用于HLS流媒体播放系统,HLS流媒体播放系统中至少包含直播源接入模块、直播源管理模块、解复用模块、媒体流缓冲模块、切片模块、HTTP服务模块,其中直播源接入模块用于接入视频源,本实施例中支持通过RTSP、RTMP、HLS等方式接入视频源,也支持通过安防领域监控设备的主流视频协议规范接入视频源,比如GB/T 28181、onvif等视频协议;直播源管理模块用于对接入的视频源进行管理,包含接入媒体类型、接入协议格式、接入状态、视频接出方式及参数配置等功能;解复用模块用于对接入的不同格式的视频流解复用,并组合成以视频帧的形式存在的ES流;媒体流缓冲模块用于实现媒体流的缓存和管理,缓存机制采用循环buffer的方式,循环buffer用于根据场景自定义循环buffer的缓存大小,自定义每一帧音视频所占用的空间大小,其中循环buffer的读写示意图如图3所示,循环buffer是一个循环读写的过程,当buffer中写入一帧视频数据时,记录写入位置(pos_w),下一帧数据以上一帧帧数据长度Lf+1的位置作为写入的起始位置,其中Lf为视频帧的帧大小读取视频帧数据时,根据记录的视频帧按照顺序进行读取,并记录读取位置(pos_r),当写入位置pos_w+Lf>Lc时,如果读取位置pos_r>Lf,则视频帧重新从缓存buffer的起始位置开始写入,避免内存搬移对资源的消耗,其中Lc为分配的缓存长度;在视频帧写入时,每一帧的起始位置预留64byte,作为切片模块对视频帧进行TS封装的TS包头位置,在进行TS头的封装时,可直接在buffer中添加头字段即可,减少内存搬移导致的资源的消耗;切片模块用于根据视频播放客户端发送的播放列表请求的文件名,确定TS切片长度,根据TS切片长度,从缓存buffer中顺序的选择视频帧的数量,进行TS头的封装,在内存中形成三个目标TS切片文件,并生成m3u8形式的播放列表,再把目标TS切片文件与m3u8播放列表保存到容器;HTTP服务模块用于接收播放客户端HTTP请求,从HLS切片模块拉取播放列表m3u8文件及目标TS切片文件,传送至播放客户端进行解码和播放。HLS是基于HTTP超文本传输协议实现的流媒体传输协议,越来越多的被应用到各种终端的流媒体播放业务中,其基于HTTP协议实现,能够很容易实现私网穿透及网页无插件播放。基于HLS协议的流媒体传输其优势在于基础设施完善,可快速部署实现,不用过多的考虑防火墙穿透或者代理的问题,另外客户端可根据带宽情况动态选择合适码率的播放列表进行播放。
进一步地,当用户根据自身需求,需要调整视频直播的延时数值大小时,在进行视频直播的客户端中选择适合的播放模式,例如在需要降低直播延时时,选择极速播放模式,或在需要提高视频直播的稳定性时,选择平稳模式,客户端根据用户选择的播放模式,生成与用户选择的播放模式对应的播放列表请求,并发送至HLS流媒体播放系统。进一步地,当HTTP服务模块接收到客户端基于HTTP的播放列表请求时,系统获取播放列表请求的文件名,通过文件名识别出与播放列表请求对应的播放模式。进一步地,系统从预设数据库中查找与播放模式对应的切片长度,并将该切片长度作为TS切片长度,其中预设数据库为按照数据结构来组织、存储和管理数据的仓,在本实施例中预设数据库可以但不限定于存储切片长度信息、播放模式信息等。进一步地,系统检测切片模块中是否存在由多个与TS切片长度相同的切片文件形成的播放列表,以在存在播放列表时,将播放列表通过HTTP服务模块上传至客户端,用户可通过选择列表中的音视频进行播放,播放列表中包含对一个或多个音视频进行排序后的音视频文件名。
所述根据所述播放列表请求对应的文件名,确定TS切片长度的步骤包括:
步骤S11,获取所述播放列表请求的文件名,并根据所述文件名识别出所述播放列表请求对应的播放模式;
步骤S12,基于预设数据库查找与所述播放模式对应的切片长度,并将所述切片长度确定为TS切片长度。
进一步地,系统通过HTTP服务模块接收到客户端基于HTTP发送的播放列表请求时,获取播放列表请求的请求信息中包含的文件名,将文件名与多个播放模式进行对比,并记录多个播放模式中,与文件名的信息相同的播放模式。进一步地,系统将与文件名的信息相同的播放模式的信息输入预设数据库,在预设数据库中查找与该播放模式对应的切片长度。进一步地,系统将查找到的切片长度,确定为TS切片长度,以检测切片模块中是否存在基于TS切片长度的播放列表。
进一步地,所述检测存储容器中是否存在基于所述TS切片长度的播放列表的步骤包括:
步骤S13,检测存储容器中是否存在与所述TS切片长度相同的多个切片文件形成的切片文件组;
步骤S14,若存在所述切片文件组,则判定存在基于所述TS切片长度的播放列表;
步骤S15,若不存在所述切片文件组,则判定不存在基于所述TS切片长度的播放列表。
进一步地,当切片文件满足一定数量时,才可以通过多个切片文件形成切片文件组,由实验经验得出,本实施例中组成切片文件组的切片文件最优数量为3,但是本申请并不对组成切片文件组的切片文件数量进行限定,可以由比本实施例更多或更少的切片文件数量组成切片文件组。进一步地,系统根据TS切片长度,在存储容器中进行查找,查找是否存在切片文件组,其中切片文件组由与TS切片长度的长度数值相同的多个切片文件所形成,存储容器为系统中设置的可用于存储切片文件组与播放列表的虚拟容器。进一步地,若存在由与TS切片长度相同的多个切片文件所形成切片文件组,系统判定存储容器中存储有基于TS切片长度的播放列表,其中播放列表为在切片文件组的基础上,向切片文件组中的多个切片文件添加索引链接形成。若不存在由与TS切片长度相同的多个切片文件所形成切片文件组,系统判定存储容器中未存储有基于TS切片长度的播放列表。通过检测是否存在由与TS切片长度相同的多个切片文件所形成切片文件组,可快速判定是否存在播放列表,提高流媒体播放的便捷性。
可以理解地,所述当接收到播放列表请求时,根据所述播放列表请求对应的文件名,确定TS切片长度的步骤之前包括:
步骤S1,对视频源流媒体接入的视频流的格式进行识别,得到所述视频流的封装方式;
步骤S2,查找与所述视频流的封装方式对应的解复用方式,并调用所述解复用方式对所述视频流进行解复用,得到多个视频帧。
进一步地,在通过直播源接入模块作为视频源流媒体从视频源中获取视频流后,系统对获取的视频流的格式进行识别,具体地,可通过视频流文件中存储的文件格式信息进行识别,得到视频流的封装方式。进一步地,系统从预设数据库中查找与视频流的封装格式对应的解复用方式,并调用解复用模块,通过解复用方式对视频流进行解复用,具体地,通过解复用方式将视频流中的包头进行移除,解复用得到多个视频帧,并存储于中,以供切片模块获取多个视频帧并进行封装与切片,生成目标播放列表,其中预置缓冲流媒体在本实施例中具体可以为流媒体缓存模块。
步骤S20,若不存在所述播放列表,则提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表,并将所述目标播放列表上传至发起所述播放列表请求的客户端。
进一步地,若检测到切片模块中不存在由多个与TS切片长度相同的切片文件形成的播放列表,系统从媒体流缓冲模块中提取多个视频帧,对多个视频帧进行封装,并按照TS切片长度对封装后的多个视频帧进行切片。进一步地,系统将切片得到的多个目标切片文件整合为目标切片文件组,并向目标切片文件组中的多个目标切片文件添加索引链接,形成目标播放列表。进一步地,系统将形成的目标播放列表上传至发送播放列表请求的客户端,以供客户端根据目标播放列表进行音视频的播放。同时,系统在接收到用户通过对播放列表中的选项进行选择发送的选择指令时,通过选择指令对切片文件组进行索引并上传至客户端。可以理解地,音视频的播放需要通过索引文件完成,索引文件由索引表和主文件两部分构成,索引表即为本实施例中的播放列表,主文件为本申请中的切片文件组。因此,用户在客户端进行视频播放时,除了需要表征索引表的播放列表,还需要表征主文件的切片文件组,以由切片文件组的多个切片文件对音视频的播放提供支持。
进一步地,若检测到切片模块中存在由多个与TS切片长度相同的切片文件形成的播放列表,系统判定可直接通过播放列表进行音视频的播放,则调用播放列表,将播放列表通过HTTP服务模块上传至播放列表请求对应的客户端,以供客户端根据目标播放列表进行音视频的播放。
本实施例提供一种HLS流媒体播放方法、系统、设备及存储介质,当接收到播放列表请求时,首先通过用户发送的播放列表请求的文件名,选择与播放列表请求对应的TS切片长度,再检测切片模块是否存在与TS切片长度对应的播放列表;当不存在播放列表时,提取预置缓冲流媒体中的视频帧,根据视频帧与TS切片长度生成目标播放列表,并将目标播放列表上传至播放列表请求对应的客户端,以供用户进行观看,由于播放列表根据不同播放列表请求对应的TS切片长度生成,TS切片长度越短,用户观看流媒体直播的延时越短,有效降低了直播延时,且通过HLS协议进行流媒体传输,保留了流媒体无插件播放的便捷性。
进一步地,参见图4,基于本发明HLS流媒体播放方法的第一实施例,提出本发明HLS流媒体播放方法的第二实施例,在第二实施例中,所述提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表的步骤包括:
步骤S21,提取预置缓冲流媒体中存储的多个视频帧,并分别对多个所述视频帧进行TS头封装;
步骤S22,根据所述TS切片长度对封装后的多个视频帧进行切片,生成与所述TS切片长度相同的多个目标切片文件,并将多个所述目标切片文件整合为目标切片文件组;
步骤S23,根据预设生成规则对所述目标切片文件组进行处理,生成目标播放列表。
进一步地,为了可靠和准确地将视频帧进行传输,并且高效地利用传输资源,需要在所发送的视频帧上附加上与协议对应的包头,其中包头是在网络协议通讯中,被附加到用于控制信息的运载和传输的数据包前面的定义位长度的特殊保留字段。进一步地,系统从作为预置缓冲流媒体的媒体流缓冲模块中顺序提取多个视频帧,并对分别对多个视频帧的TS头进行封装,其中本申请提取的视频帧优选为3个,但是并不意味着对本申请提取的视频帧数量的限定,具体地,系统分别向多个视频帧中填充基于HLS协议的包头,形成基于封装协议的多个数据包。进一步地,系统按照TS切片长度对形成的多个数据包进行切片,得到与TS切片长度相同的多个目标切片文件。进一步地,系统将多个目标切片文件进行整合,具体地,可以将多个目标切片文件按照生成时间进行排序后放在同一地址进行存储,得到目标切片文件组。进一步地,系统将目标切片文件组中的每一个目标切片文件的文件名与存储的地址信息进行关联并添加索引链接,按照预设生成规则形成表征索引表的目标播放列表,以便于将目标播放列表与目标切片文件组上传至客户端,在用户对目标播放列表进行选择后,由客户端在目标切片文件组中索引相应的切片文件,并对切片文件解复用后进行播放,其中预设生成规则在本实施例中优选为m3u8文件生成规则。
本实施例通过对提取的视频帧进行封装,再根据TS切片长度对封装得到的数据包进行切片,生成组成目标切片文件组的多个目标切片文件,并在目标切片文件组中添加索引链接,生成目标播放列表,在由用户发送的播放列表请求确定的TS切片长度较短时,按照较短的TS切片长度对封装处理后的数据包进行切片,并生成目标播放列表,可有效降低直播延时。
进一步地,基于本发明HLS流媒体播放方法的第一实施例或第二实施例,提出本发明HLS流媒体播放方法的第三实施例,在第三实施例中,所述将所述目标播放列表上传至所述播放列表请求对应的客户端的步骤之后,还包括:
步骤S30,当检测所述流媒体中存在更新视频帧时,检测所述更新视频帧的缓冲时长是否大于或等于所述TS切片长度;
步骤S40,若所述缓冲时长大于或等于所述TS切片长度,则提取所述更新视频帧,并对所述视频帧按照所述TS切片长度进行封装组合,得到更新切片文件;
步骤S50,基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表。
进一步地,系统每间隔一定的时间,对媒体流缓冲模块进行检测,以确定是否存在更新视频帧。进一步地,若检测到媒体流缓冲模块中存储有更新视频帧,系统进一步检测更新视频帧的缓冲时长是否大于或等于TS切片长度,若更新视频帧的缓冲时长大于或等于TS切片长度,判定可对更新视频帧进行切片得到与TS切片长度相同放入切片文件,系统从媒体流缓冲模块中提取更新视频帧;若更新视频帧的缓冲时长小于TS切片长度,判定不可对更新视频帧进行切片,则不对更新视频帧进行处理。进一步地,系统对更新视频帧进行封装,具体地,系统向更新视频帧填充基于HLS协议的包头,形成基于封装协议的更新数据包,并将更新数据包按照TS切片长度进行切分,得到与TS切片长度相同的更新切片文件。进一步地,系统通过更新切片文件对目标播放列表对应的目标切片文件组中的目标切片文件进行替换,并根据替换后的更新切片文件组,生成更新播放列表。
进一步地,所述基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表的步骤包括:
步骤S51,分别识别所述目标切片文件组中,多个目标切片文件的生成时间;
步骤S52,将多个所述目标切片文件中,生成时间距离当前时间点最远的目标切片文件替换为所述更新切片文件,形成更新切片文件组;
步骤S53,根据预设更新规则对所述更新切片文件组进行处理,生成更新播放列表。
进一步地,系统调用目标切片文件组,并提取目标切片文件组中的多个目标切片文件的生成时间信息,根据生成时间信息按照生成时间对多个目标切片文件进行排序,具体地,将最先生成即生成时间最早的目标切片文件放在最后一位,并依次将其他目标切片文件按照此排序方式进行排序。进一步地,系统将排序后排在最后一位的目标切片文件替换为更新切片文件,即将更新切片文件作为新的目标切片文件,得到更新后的更新切片文件组。进一步地,系统将更新切片文件组中的每一个目标切片文件的文件名与存储的地址信息进行关联并添加索引链接,按照预设更新规则形成表征索引表的更新播放列表,以便于将更新播放列表与目标切片文件组上传至客户端,在用户对更新播放列表进行选择后,由客户端在更新切片文件组中索引相应的切片文件,并对切片文件解复用后进行播放,其中预设更新规则在本实施例中优选为m3u8文件更新规则。
本实施例定时对媒体流缓冲模块进行检测,在检测到更新视频帧时,判断更新视频帧是否达到TS切片长度,并在更新视频帧达到TS切片长度时,通过对更新视频帧进行封装后的更新切片文件对目标切片文件组中的目标切片文件进行替换后,对目标播放列表进行更新,得到更新播放列表,以供用户通过客户端发送播放列表请求,对更新播放列表中的音视频进行播放,以及时将视频源发出的视频流更新至播放列表,便于用户对最新的音视频进行观看,提高用户观看体验。
进一步地,本发明还提供一种HLS流媒体播放系统。
参照图5,图5为本发明HLS流媒体播放系统第一实施例的功能模块示意图。
所述HLS流媒体播放系统包括:
切片模块10,用于当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度,并检测存储容器中是否存在基于所述TS切片长度的播放列表;
HTTP服务模块20,用于若不存在所述播放列表,则提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表,并将所述目标播放列表上传至发起所述播放列表请求的客户端。
进一步地,所述切片模块10包括:
获取单元,用于获取所述播放列表请求的文件名,并根据所述文件名识别出所述播放列表请求对应的播放模式;
查找单元,用于基于预设数据库查找与所述播放模式对应的切片长度,并将所述切片长度确定为TS切片长度。
进一步地,所述切片模块10还包括:
第一检测单元,用于检测存储容器中是否存在与所述TS切片长度相同的多个切片文件形成的切片文件组;
第一判定单元,用于若存在所述切片文件组,则判定存在基于所述TS切片长度的播放列表;
第二判定单元,用于若不存在所述切片文件组,则判定不存在基于所述TS切片长度的播放列表。
进一步地,所述切片模块10还包括:
第一识别单元,用于对视频源流媒体接入的视频流的格式进行识别,得到所述视频流的封装方式;
解复用单元,用于查找与所述视频流的封装方式对应的解复用方式,并调用所述解复用方式对所述视频流进行解复用,得到多个视频帧。
进一步地,所述HTTP服务模块20包括:
封装单元,用于提取预置缓冲流媒体中存储的多个视频帧,并分别对多个所述视频帧进行TS头封装;
切片单元,用于根据所述TS切片长度对封装后的多个视频帧进行切片,生成与所述TS切片长度相同的多个目标切片文件,并将多个所述目标切片文件整合为目标切片文件组;
第一添加单元,用于根据预设生成规则对所述目标切片文件组进行处理,生成目标播放列表。
进一步地,所述HTTP服务模块20还包括:
第二检测单元,用于当检测所述流媒体中存在更新视频帧时,检测所述更新视频帧的缓冲时长是否大于或等于所述TS切片长度;
提取单元,用于若所述缓冲时长大于或等于所述TS切片长度,则提取所述更新视频帧,并对所述视频帧按照所述TS切片长度进行封装组合,得到更新切片文件;
更新单元,用于基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表。
进一步地,所述HTTP服务模块20还包括:
第二识别单元,用于分别识别所述目标切片文件组中,多个目标切片文件的生成时间;
替换单元,用于将多个所述目标切片文件中,生成时间距离当前时间点最远的目标切片文件替换为所述更新切片文件,形成更新切片文件组;
第二添加单元,用于根据预设更新规则对所述更新切片文件组进行处理,生成更新播放列表。
此外,本发明还提供一种存储介质,所述存储介质优选为计算机可读存储介质,其上存储有HLS流媒体播放程序,所述HLS流媒体播放程序被处理器执行时实现上述HLS流媒体播放方法各实施例的步骤。
在本发明HLS流媒体播放系统和存储介质的实施例中,包含了上述HLS流媒体播放方法各实施例的全部技术特征,说明和解释内容与上述HLS流媒体播放方法各实施例基本相同,在此不做赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是固定终端,如物联网智能设备,包括智能空调、智能电灯、智能电源、智能路由器等智能家居;也可以是移动终端,包括智能手机、可穿戴的联网AR/VR装置、智能音箱、自动驾驶汽车等诸多联网设备)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种HLS流媒体播放方法,其特征在于,所述HLS流媒体播放方法包括:
当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度,并检测存储容器中是否存在基于所述TS切片长度的播放列表;
若不存在所述播放列表,则提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表,并将所述目标播放列表上传至发起所述播放列表请求的客户端。
2.如权利要求1所述的HLS流媒体播放方法,其特征在于,所述提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表的步骤包括:
提取预置缓冲流媒体中存储的多个视频帧,并分别对多个所述视频帧进行TS头封装;
根据所述TS切片长度对封装后的多个视频帧进行切片,生成与所述TS切片长度相同的多个目标切片文件,并将多个所述目标切片文件整合为目标切片文件组;
根据预设生成规则对所述目标切片文件组进行处理,生成目标播放列表。
3.如权利要求1所述的HLS流媒体播放方法,其特征在于,所述根据所述播放列表请求的文件名,确定TS切片长度的步骤包括:
获取所述播放列表请求的文件名,并根据所述文件名识别出所述播放列表请求对应的播放模式;
基于预设数据库查找与所述播放模式对应的切片长度,并将所述切片长度确定为TS切片长度。
4.如权利要求1所述的HLS流媒体播放方法,其特征在于,所述检测存储容器中是否存在基于所述TS切片长度的播放列表的步骤包括:
检测存储容器中是否存在与所述TS切片长度相同的多个切片文件形成的切片文件组;
若存在所述切片文件组,则判定存在基于所述TS切片长度的播放列表;
若不存在所述切片文件组,则判定不存在基于所述TS切片长度的播放列表。
5.如权利要求2所述的HLS流媒体播放方法,其特征在于,所述将所述目标播放列表上传至发起所述播放列表请求的客户端的步骤之后,还包括:
当检测所述流媒体中存在更新视频帧时,检测所述更新视频帧的缓冲时长是否大于或等于所述TS切片长度;
若所述缓冲时长大于或等于所述TS切片长度,则提取所述更新视频帧,并对所述视频帧按照所述TS切片长度进行封装组合,得到更新切片文件;
基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表。
6.如权利要求5所述的HLS流媒体播放方法,其特征在于,所述基于所述更新切片文件,对目标播放列表进行更新,得到更新播放列表的步骤包括:
分别识别所述目标切片文件组中,多个目标切片文件的生成时间;
将多个所述目标切片文件中,生成时间距离当前时间点最远的目标切片文件替换为所述更新切片文件,形成更新切片文件组;
根据预设更新规则对所述更新切片文件组进行处理,生成更新播放列表。
7.如权利要求2所述的HLS流媒体播放方法,其特征在于,所述当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度的步骤之前包括:
对视频源流媒体接入的视频流的格式进行识别,得到所述视频流的封装方式;
查找与所述视频流的封装方式对应的解复用方式,并调用所述解复用方式对所述视频流进行解复用,得到多个视频帧。
8.一种HLS流媒体播放系统,其特征在于,所述HLS流媒体播放系统包括:
切片模块,用于当接收到播放请求时,根据所述播放列表请求的文件名,确定TS切片长度,并检测存储容器中是否存在基于所述TS切片长度的播放列表;
HTTP服务模块,用于若不存在所述播放列表,则提取预置缓冲流媒体中的视频帧,根据所述视频帧与所述TS切片长度生成目标播放列表,并将所述目标播放列表上传至发起所述播放列表请求的客户端。
9.一种HLS流媒体播放设备,其特征在于,所述HLS流媒体播放设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的HLS流媒体播放程序,所述HLS流媒体播放程序被所述处理器执行时实现如权利要求1-7中任一项所述的HLS流媒体播放方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有HLS流媒体播放程序,所述HLS流媒体播放程序被处理器执行时实现如权利要求1-7中任一项所述的HLS流媒体播放方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010719812.7A CN111741338A (zh) | 2020-07-22 | 2020-07-22 | Hls流媒体播放方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010719812.7A CN111741338A (zh) | 2020-07-22 | 2020-07-22 | Hls流媒体播放方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111741338A true CN111741338A (zh) | 2020-10-02 |
Family
ID=72657549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010719812.7A Pending CN111741338A (zh) | 2020-07-22 | 2020-07-22 | Hls流媒体播放方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111741338A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112601131A (zh) * | 2020-12-10 | 2021-04-02 | 杭州当虹科技股份有限公司 | 一种hls视频切片文件存储优化方法 |
WO2022095752A1 (zh) * | 2020-11-09 | 2022-05-12 | 华为技术有限公司 | 帧解复用方法、电子设备及存储介质 |
CN115243077A (zh) * | 2022-07-21 | 2022-10-25 | 平安信托有限责任公司 | 音视频资源点播方法、装置、计算机设备及存储介质 |
CN115412777A (zh) * | 2021-05-28 | 2022-11-29 | 北京金山云网络技术有限公司 | 流媒体数据的传输方法及装置、系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683884A (zh) * | 2015-02-09 | 2015-06-03 | 网宿科技股份有限公司 | 一种流媒体直播方法及系统 |
CN105357591A (zh) * | 2015-11-16 | 2016-02-24 | 北京理工大学 | 一种自适应码率视频直播的QoE监控和优化方法 |
CN106791929A (zh) * | 2016-12-30 | 2017-05-31 | 杭州当虹科技有限公司 | 一种视频文件实时转码方法 |
US9979926B1 (en) * | 2015-06-09 | 2018-05-22 | The Directv Group, Inc. | Dynamic segment slicing for faster video playback |
CN109286820A (zh) * | 2018-11-29 | 2019-01-29 | 无锡华云数据技术服务有限公司 | 基于分布式存储系统的流媒体点播方法及系统 |
CN109413443A (zh) * | 2017-08-16 | 2019-03-01 | 中国移动通信有限公司研究院 | 一种时移功能的实现方法及装置 |
CN110149524A (zh) * | 2018-02-11 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 直播流切片系统、直播流切片方法、装置及可读介质 |
US20190364330A1 (en) * | 2018-05-11 | 2019-11-28 | Arris Enterprises Llc | Broadcast Delivered HLS System |
-
2020
- 2020-07-22 CN CN202010719812.7A patent/CN111741338A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683884A (zh) * | 2015-02-09 | 2015-06-03 | 网宿科技股份有限公司 | 一种流媒体直播方法及系统 |
US9979926B1 (en) * | 2015-06-09 | 2018-05-22 | The Directv Group, Inc. | Dynamic segment slicing for faster video playback |
CN105357591A (zh) * | 2015-11-16 | 2016-02-24 | 北京理工大学 | 一种自适应码率视频直播的QoE监控和优化方法 |
CN106791929A (zh) * | 2016-12-30 | 2017-05-31 | 杭州当虹科技有限公司 | 一种视频文件实时转码方法 |
CN109413443A (zh) * | 2017-08-16 | 2019-03-01 | 中国移动通信有限公司研究院 | 一种时移功能的实现方法及装置 |
CN110149524A (zh) * | 2018-02-11 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 直播流切片系统、直播流切片方法、装置及可读介质 |
US20190364330A1 (en) * | 2018-05-11 | 2019-11-28 | Arris Enterprises Llc | Broadcast Delivered HLS System |
CN109286820A (zh) * | 2018-11-29 | 2019-01-29 | 无锡华云数据技术服务有限公司 | 基于分布式存储系统的流媒体点播方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022095752A1 (zh) * | 2020-11-09 | 2022-05-12 | 华为技术有限公司 | 帧解复用方法、电子设备及存储介质 |
CN112601131A (zh) * | 2020-12-10 | 2021-04-02 | 杭州当虹科技股份有限公司 | 一种hls视频切片文件存储优化方法 |
CN115412777A (zh) * | 2021-05-28 | 2022-11-29 | 北京金山云网络技术有限公司 | 流媒体数据的传输方法及装置、系统 |
CN115243077A (zh) * | 2022-07-21 | 2022-10-25 | 平安信托有限责任公司 | 音视频资源点播方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111741338A (zh) | Hls流媒体播放方法、系统、设备及存储介质 | |
US8812735B2 (en) | Content reproduction system, content reproduction apparatus, program, content reproduction method, and providing content server | |
EP2798818B1 (en) | Method and apparatus for flexible caching of delivered media | |
US20190141102A1 (en) | Apparatus and method for storing and playing content in a multimedia streaming system | |
RU2728534C2 (ru) | Устройство обработки информации и способ обработки информации | |
US8626870B2 (en) | Method and apparatus for generating and reproducing adaptive stream based on file format, and recording medium thereof | |
CN102055717B (zh) | 快速播放的方法、终端及服务器 | |
JP6014870B2 (ja) | ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム | |
KR101885852B1 (ko) | 컨텐트 전송 및 수신 방법 및 장치 | |
CN110933449B (zh) | 一种外部数据与视频画面的同步方法、系统及装置 | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
US8646002B2 (en) | System for realistically reproducing multimedia content and method thereof | |
US20040172376A1 (en) | Information processing apparatus, information processing method, content distribution apparatus, content distribution method, and computer program | |
CN110870282B (zh) | 使用网络内容的文件轨处理媒体数据 | |
JP6251181B2 (ja) | 受信装置、受信方法、送信装置、送信方法、及び、プログラム | |
CN110996160A (zh) | 视频处理方法、装置、电子设备及计算机可读取存储介质 | |
US20140013007A1 (en) | Access log management method | |
US20130151580A1 (en) | Method, network unit and system for optimizing rendering of media content | |
CN102362507A (zh) | 网络控制设备、网络控制系统、网络控制方法及程序 | |
JP2008136044A (ja) | 動画分割サーバおよびその制御方法 | |
CN1339918A (zh) | 通信系统、发送机、接收机以及应用数据储存描述符的方法 | |
US8316149B2 (en) | Information communication system, server, content holding device, content receiving device, information processing method, and program | |
KR100954687B1 (ko) | 무선망에서의 멀티미디어 콘텐츠 서비스 시스템 및 그 방법 | |
CN104539606B (zh) | 基于Upnp的音频文件管理方法、装置和系统 | |
US20230370699A1 (en) | Media streaming systems and methods |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201002 |