一种本地无缝衔接播放HLS片源列表的方法与流程

文档序号:18544283发布日期:2019-08-27 21:31阅读:1882来源:国知局
一种本地无缝衔接播放HLS片源列表的方法与流程

本发明涉及多媒体播放技术领域,尤其涉及一种本地无缝衔接播放hls片源列表的方法。



背景技术:

多媒体播放功能是消费类电子产品的核心功能之一,根据媒体资源获取途径的不同,媒体播放又分为本地媒体播放和网络流媒体播放两类,两类播放适用于不同的场合,发挥着各自的作用。在网络流媒体播放领域,目前主流的流媒体协议为hls(httplivestreaming)协议,hls协议通过将完整片源分段处理的方法,将完整视频处理成多个小片源组成的播放列表,这种处理使得hls流媒体具有快速起播和码流自适应的优点。本地媒体播放主要是播放保存在本地存储区域中的视频文件,本地媒体播放具有格式支持众多、画质清晰、兼容性强等优点,本地媒体播放面对的是单个视频文件的播放,播放完成即结束退出播放器。

当用户从网络上下载一个完整的hls片源存储到本地存储媒介时,由于hls片源本身分片的特点,下载系统会按片段将整部hls片源保存成多个独立的媒体文件,而本地媒体播放器在播放时会将保存的每个媒体文件当成一个独立的片源来进行解码播放,播放完一个片段后,播放器会完整退出,然后重新初始化再继续播放下一个片段,这种默认的播放处理方式导致hls片源片段与片段之间的衔接播放存在明显的过渡,严重影响了用户在本地观看hls片源的观影体验,存在明显的技术处理缺陷。



技术实现要素:

针对上述问题,为了解决本地媒体播放器在处理播放本地hls片源时存在的弊端,本发明提出了一种实现本地无缝衔接播放hls片源列表的方法。

本发明通过以下技术方案来实现上述目的:

一种本地无缝衔接播放hls片源列表的方法,包括:

hls片源检测,本地媒体播放器对需要播放的本地文件存储目录进行扫描检测,通过检测hls播放索引表、比对文件名称以及预提取各媒体文件的编解码格式信息,判断本地媒体片源是否为hls片源;

播放列表生成,基于hls播放索引表,生成hls片源的本地播放列表,并标注为本地hls片源;

无缝衔接播放处理,本地媒体播放器基于hls片源的本地播放列表进行播放,当一个片段数据读取完毕后,直接打开下一个片段文件,并从下一个文件中读取视频数据继续解码播放,在这个过程取消播放器的重新初始化工作,实现完整的无缝衔接播放效果。

以上方法具体步骤为:

步骤一,扫描识别hls媒体资源,本地媒体播放器在启动播放时,对当前播放文件所在的本地文件夹进行扫描检测,确认本次播放的文件是否属于本地hls片源列表中,若扫描检测本片源属于本地hls片源列表,则将片源识别为hls本地片源;

步骤二,生成hls播放列表,依据步骤一的结论,扫描、读取并解析hls播放索引表文件,并将索引列表中的文件名称与本地文件进行一一对比,生成本地hls播放列表;

步骤三,播放hls片源片段,本地媒体播放器从用户指定的hls片段处启动播放,并将播放模式配置为hls片源播放模式;

步骤四,片段数据读取完毕,判断是否整个hls片源播放列表播放完毕,当本地播放器完成对当前播放的hls片段数据的完整读取后,本地媒体播放器判断是否达到了hls播放列表的结尾,若达到结尾,则片段播放完毕退出播放,若没有达到结尾,则进入步骤五;

步骤五,直接读取下个片段,本地播放器打开播放列表的下一个片段文件,直接读取视频媒体数据,并进入步骤三,继续下一个hls片源片段的播放过程。

进一步方案为,所述步骤一中,判断片源是否属于hls片源列表的方法有两种,一种是依据本地存储的hls播放索引表文件,将当前播放片源的文件名字与hls播放索引表中的文件名字进行严格匹配比对,通过对比结论得出当前待播放片源是否属于hls片源列表,另外一种是在本地缺失hls播放索引表文件时,对当前目录下的文件进行全盘扫描,获取全部媒体文件的文件名称和编解码格式的详细信息,通过文件名称的对比和媒体格式信息的严格比对来确认是否属于hls播放列表,若属于hls播放列表,则按照文件名字的命名规则自动生成hls播放索引表文件。

进一步方案为,所述步骤三中,本地媒体播放器具有两种播放处理模式:hls片源播放模式和普通片源播放模式,在普通片源播放模式下,本地媒体播放器将播放列表中的每一个片源都采取独立播放处理的模式,在这种模式下,每个片源的播放都需要经过播放器进程资源初始化、解码器资源初始化、解码播放、播放器相关资源释放的完整过程;在hls片源播放模式下,本地媒体播放器将播放列表中的所有片段都看作是同一部片源的组成部分,在整个hls片源播放过程中,只经历一次播放器进程资源的初始化、解码器资源初始化,在整个hls片源播放完毕后,做一次播放器相关资源的释放。

进一步方案为,所述步骤四中,本地媒体播放器在片段衔接播放过程中,播放器进程相关资源不需要经历先释放然后重新初始化的处理流程,在片段衔接过程中,只有本地媒体播放器进程的数据读取模块需要将数据读取来源从上一个片段文件指向下一个片段文件,整个过程中播放不会被打断。

本发明的有益效果在于:

与传统的本地媒体播放器处理流程相比,本发明在播放本地hls片源过程中,避免了片段衔接播放过程中的播放器资源释放与重新初始化的过程,在整个hls片源的播放过程中,播放器进程资源和解码器资源只申请一次,也只初始化一次,从而实现了完全无缝的衔接播放,大大提升了用户播放观看本地hls片源列表的体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本方法播放处理流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

实施案例1:

用户从hls流媒体服务器上下载获取到一部完整的电影,电影名字是“美人鱼”,用户将该hls片源的各个分片以及hls播放索引列表m3u8文件保存在同一个文件夹下,该文件夹的名字为“电影-美人鱼”,用户点击首个片段启动播放。

步骤1:媒体播放器扫描“电影-美人鱼”文件夹,检测获取到m3u8索引文件,通过解析m3u8索引文件中的文件名字,并与当前文件夹中的媒体文件名字对比,得出本文件夹为hls片源的结论;

步骤2:基于hls的m3u8索引文件,生成本地hls片源的播放列表;

步骤3:按照用户的选择,从“美人鱼”片源的首个hls片段启动播放;

步骤4:本地播放器完成当前播放片段数据的读取后,判断当前是否达到了“美人鱼”播放列表的结尾,若当前片段已经达到了hls播放列表的结尾,则当前片段播放完毕后退出整个播放,若没有达到结尾,则进入如下步骤5;

步骤5:本地媒体播放器关闭当前hls片段文件,打开下一个hls片段文件,并直接读取下个片段的媒体数据,然后进入步骤3,继续下一个hls片源片段的播放过程,以上循环直到播放结束。

实施案例2:

用户从hls流媒体服务器上下载获取到一部完整的电影,电影名字是“美人鱼”,用户将该hls片源的各个分片保存在同一个文件夹下,但hls的播放索引表m3u8文件缺失,该文件夹的名字为“电影-美人鱼”,用户点击首个片段启动播放。

步骤1:媒体播放器扫描“电影-美人鱼”文件夹,未检测到m3u8索引列表文件,媒体播放器扫描分析获取到当前文件夹下各个文件的名字、视频编码信息、音频编码信息、封装格式信息,首先按照名字进行比对,得到递增规律,然后对比各个文件的封装信息和音视频编码格式信息,比对得出这是一个hls本地片源,并根据名字的递增规律,在当前文件夹中生成新的m3u8所有文件;

步骤2:基于步骤1中的m3u8索引文件,生成本地hls片源“美人鱼”的播放列表;

步骤3:按照用户的选择,从“美人鱼”片源的首个hls片段启动播放;

步骤4:本地播放器完成当前播放片段数据的读取后,判断当前是否达到了“美人鱼”播放列表的结尾,若当前片段已经达到了hls播放列表的结尾,则当前片段播放完毕后退出整个播放,若没有达到结尾,则进入如下步骤5;

步骤5:本地媒体播放器关闭当前hls片段文件,打开下一个hls片段文件,并直接读取下个片段的媒体数据,然后进入步骤3,继续下一个hls片源片段的播放过程,以上循环直到播放结束。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1