播放器频道切换的优化方法、系统、存储介质及播放器

文档序号:1315134 发布日期:2020-07-10 浏览:17次 >En<

阅读说明:本技术 播放器频道切换的优化方法、系统、存储介质及播放器 (Optimization method and system for player channel switching, storage medium and player ) 是由 张超 肖友能 朱善宝 刘洋 张晓卫 于 2020-03-10 设计创作,主要内容包括:本发明提供一种播放器频道切换的优化方法、系统、存储介质及播放器,所述播放器频道切换的优化方法包括:创建单例播放器对象;调用预设视频流参数设置函数,以设置视频流的参数信息;当解析出所述视频流播放的第一帧为即时解码刷新帧时,输出启动播放器的启动指令,以启动所述播放器播放视频流。本发明所述播放器频道切换的优化方法、系统、存储介质及播放器解决了播放器在进行切换频道时常常出现的延迟感,对于播放HLS视频流有明显改观,使用户在切换频道时不存在延迟感觉,提高用户的使用度。(The invention provides an optimization method, a system, a storage medium and a player for player channel switching, wherein the optimization method for player channel switching comprises the steps of creating a single-case player object, calling a preset video stream parameter setting function to set parameter information of a video stream, and outputting a starting instruction for starting the player to start the player to play the video stream when a first frame played by the video stream is analyzed to be an instant decoding refresh frame.)

播放器频道切换的优化方法、系统、存储介质及播放器

技术领域

本发明属于播放器技术领域,涉及一种优化方法及系统,特别是涉及一种播放器频道切换的优化方法、系统、存储介质及播放器。

背景技术

播放器作为视频流的最终展现端,目前有很多公司都在进行研发。市面上的播放器良莠不齐,判断一个播放器的优劣除了播放流畅外,另一个非常重要的标准就是其切换频道的速度。切换频道速度慢的播放器会给用户很不好的体验,直接会让用户怀疑视频流本身出现了问题,但是,只是播放器在处理切换频道的时候没有处理好而已。

因此,如何提供一种播放器频道切换的优化方法、系统、存储介质及播放器,以解决现有播放器在进行切换频道时常常出现的延迟感,对于播放HLS视频流有明显改观等缺陷,实已成为本领域技术人员亟待解决的技术问题。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种播放器频道切换的优化方法、系统、存储介质及播放器,用于解决现有播放器在进行切换频道时常常出现的延迟感,对于播放HLS视频流有明显改观的问题。

为实现上述目的及其他相关目的,本发明一方面提供一种播放器频道切换的优化方法,包括:创建单例播放器对象;调用预设视频流参数设置函数,以设置视频流的参数信息;当解析出所述视频流播放的第一帧为即时解码刷新帧时,输出启动播放器的启动指令,以启动所述播放器播放视频流。

于本发明的一实施例中,在创建单例播放器对象的步骤之前,所述创建单例播放器对象的步骤还包括:判断所述播放器中单例播放器对象是否为空;若是,则转入创建单例播放器对象的步骤;若否,则重建所述单例播放器对象。

于本发明的一实施例中,所述创建单例播放器对象的步骤还包括:当检测到所述播放器切换频道时,复用已创建的所述单例播放器对象。

于本发明的一实施例中,在复用所述单例播放器对象的步骤之后,所述播放器频道切换的优化方法还包括:初始化所述单例播放器对象,并更改所述单例播放器对象的属性信息。

于本发明的一实施例中,所述调用预设视频流参数设置函数的步骤还包括:令所述预设视频流参数设置函数替换所述播放器的音视频转换工具的信息解析函数。

于本发明的一实施例中,所述视频流的参数信息增加至用于保存音频、视频分块的列表文件中。

于本发明的一实施例中,所述视频流的参数信息包括带宽、成像的我极限分辨率、编码格式、音频格式、视频格式、视频高度视频宽度和/或平均帧率。

本发明另一方面提供一种播放器频道切换的优化系统,包括:创建模块,用于创建单例播放器对象;参数信息设置模块,用于调用预设视频流参数设置函数,以设置视频流的参数信息;启动模块,用于当解析出所述视频流播放的第一帧为即时解码刷新帧时,输出启动播放器的启动指令,以启动所述播放器播放视频流。

本发明又一方面提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述播放器频道切换的优化方法。

本发明最后一方面提供一种播放器,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述播放器执行所述播放器频道切换的优化方法。

如上所述,本发明所述的播放器频道切换的优化方法、系统、存储介质及播放器,具有以下有益效果:

本发明所述播放器频道切换的优化方法、系统、存储介质及播放器解决了播放器在进行切换频道时常常出现的延迟感,对于播放HLS视频流有明显改观,使用户在切换频道时不存在延迟感觉,提高用户的使用度。

附图说明

图1显示为本发明的播放器频道切换的优化方法于一实施例中的流程示意图。

图2显示为本发明的播放器频道切换的优化方法中S12的流程示意图。

图3显示为本发明的适用预设视频流的参数信息方式的视频流播放流程示意图。

图4显示为本发明的播放器频道切换的优化系统于一实施例中的原理结构示意图。

元件标号说明

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

实施例一

本实施例提供一种播放器频道切换的优化方法,其特征在于,包括:

创建单例播放器对象;

调用预设视频流参数设置函数,以设置视频流的参数信息;

当解析出所述视频流播放的第一帧为即时解码刷新帧时,输出启动播放器的启动指令,以启动所述播放器播放视频流。

以下将结合图示对本实施例所提供的播放器频道切换的优化方法进行详细描述。本实施例所述播放器频道切换的优化方法应用于播放器切换频道的场景中。

请参阅图1,显示为播放器频道切换的优化方法于一实施例中的流程示意图。如图1所示,所述播放器频道切换的优化方法具体包括以下几个步骤:

S11,判断所述播放器中单例播放器对象是否为空;若是,则执行S12;若否,则执行S12’,即重建所述单例播放器对象。

S12,创建单例播放器对象。

在本实施例中,通过new OTVPlayer来创建单例播放器对象。

对于播放器来说,每次打开一个频道就会创建这个频道的实例,当切换频道的时候,则会先关闭之前频道的实例播放器对象,重新再创建一个频道实例对象,周而复始。而每次创建频道实例对象就非常耗时。因此,本发明采用单例的方式来优化切换频道的速度。

请参阅图2,显示为S12的流程示意图。如图2所示,所述S12具体包括:

S121,创建单例播放器对象。

S122,当检测到所述播放器切换频道时,复用已创建的所述单例播放器对象。

S123,初始化所述单例播放器对象,更改所述单例播放器对象的属性信息,返回S122。所述单例播放器对象的属性信息包括对象名称等。

例如,已创建的所述单例播放器对象的名称为A频道,在检测到播放器需切换到频道B时时,更改已创建的所述单例播放器对象的名称为B频道。

在本实施例中,播放视频流时,第一次采用创建单例模式来进行优化,其它时候复用该单例播放器对象,可避免创建播放器对象而消耗时间。

S13,调用预设视频流参数设置函数,以设置视频流的参数信息。在本实施例中,所述预设视频流参数设置函数为static int acformat_init_decode。

播放器在播放视频流数据时,首先需知道该视频流的参数信息。所述播放器的音视频转换工具(FFMpeg)的信息解析函数(在本实施例中,所述信息解析函数为avformat_find_stream_info)来获取所述参数信息,即视频缓冲。FFMpeg先将各种视频流数据接收下来,放到解码缓冲中,待解码缓冲数据填充到一定数量后,FFMpeg从解码缓冲数据中解析出视频流的参数信息。上述方法的缺陷非常明显,那就是增加了播放视频的延迟。

步骤S13调用所述预设视频流参数设置函数static int acformat_init_decode替换所述信息解析函数avformat_find_stream_info,以增加视频流的参数信息至用于保存音频、视频分块的列表文件(index.m3u8)中。

例如,

#EXTM3U

#EXT-X-STREAM-INF:BANDWIDTH=2300000,RESOLUTION=1280x720,CODECS=[email protected],[email protected]

2300.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=1300000,RESOLUTION=1024x576,CODECS=[email protected],[email protected]

1300.m3u8。

请参阅图3,显示为适用预设视频流的参数信息方式的视频流播放流程示意图。如图3所示,播放器在播放视频流数据时,通过预设的视频流的参数信息,大大减少解码出缓冲时间。

在本实施例中,通过设置视频流的参数信息可以兼容不对参数信息进行解析的播放器,且不采用FFMPEG使用探测流的信息方式来获取视频流的参数信息,减少FFMPEG为了获取参数信息消耗的时间,从而大幅度提高切换频道的速度。

S14,当解析出所述视频流播放的第一帧为即时解码刷新帧(IDR帧)时,输出启动播放器的启动指令,以启动所述播放器播放视频流。

具体地,获取视频流数据时,只要检测中TS文件中第一帧为IDR帧时,输出启动播放器的启动指令,直接播放该视频流,避免由于等待缓存造成的时间损耗。

本实施例所述播放器频道切换的优化方法解决了播放器在进行切换频道时常常出现的延迟感,对于播放HLS视频流有明显改观,使用户在切换频道时不存在延迟感觉,提高用户的使用度。

本实施例还提供一种存储介质(亦称计算机可读存储介质),其上存储有计算机程序,该计算机程序被处理器执行时实现上述播放器频道切换的优化方法。

本领域普通技术人员可以理解计算机可读存储介质为:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

实施例二

本实施例提供一种播放器频道切换的优化系统,包括:

创建模块,用于创建单例播放器对象;

参数信息设置模块,用于调用预设视频流参数设置函数,以设置视频流的参数信息;

启动模块,用于当解析出所述视频流播放的第一帧为即时解码刷新帧时,输出启动播放器的启动指令,以启动所述播放器播放视频流。

以下将结合图示对本实施例所述播放器频道切换的优化系统进行详细描述。请参阅图4,显示为播放器频道切换的优化系统于一实施例中的原理结构示意图。如图4所示,所述播放器频道切换的优化系统4包括判断模块41、创建模块42、参数信息设置模块43及启动模块44。

所述判断模块41用于判断所述播放器中单例播放器对象是否为空;若是,则调用所述创建模块42;若否,则调用所述创建模块42重建所述单例播放器对象。

与所述判断模块42耦合的所述创建模块42用于创建单例播放器对象。

在本实施例中,所述创建模块42通过new OTVPlayer来创建单例播放器对象。

具体地,所述创建模块42创建单例播放器对象;当检测到所述播放器切换频道时,复用已创建的所述单例播放器对象;初始化所述单例播放器对象,更改所述单例播放器对象的属性信息,返回S122。所述单例播放器对象的属性信息包括对象名称等。

在本实施例中,播放视频流时,第一次采用所述创建模块42创建单例模式来进行优化,其它时候复用该单例播放器对象,可避免创建播放器对象而消耗时间。

与所述创建模块42耦合的参数信息设置模块43用于调用预设视频流参数设置函数,以设置视频流的参数信息。在本实施例中,所述预设视频流参数设置函数为static intacformat_init_decode。

所述参数信息设置模块43调用所述预设视频流参数设置函数static intacformat_init_decode替换所述信息解析函数avformat_find_stream_info,以增加视频流的参数信息至用于保存音频、视频分块的列表文件(index.m3u8)中。

在本实施例中,通过参数信息设置模块43设置视频流的参数信息可以兼容不对参数信息进行解析的播放器,且不采用FFMPEG使用探测流的信息方式来获取视频流的参数信息,减少FFMPEG为了获取参数信息消耗的时间,从而大幅度提高切换频道的速度。

与所述参数信息设置模块43耦合的启动模块44用于当解析出所述视频流播放的第一帧为即时解码刷新帧(IDR帧)时,输出启动播放器的启动指令,以启动所述播放器播放视频流。

具体地,所述启动模块44获取视频流数据时,只要检测中TS文件中第一帧为IDR帧时,输出启动播放器的启动指令,直接播放该视频流,避免由于等待缓存造成的时间损耗。

需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如:x模块可以为单独设立的处理元件,也可以集成在上述系统的某一个芯片中实现。此外,x模块也可以以程序代码的形式存储于上述系统的存储器中,由上述系统的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),一个或多个微处理器(Digital Singnal Processor,简称DSP),一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。

实施例三

本实施例提供一种播放器,所述播放器包括:处理器、存储器、收发器、通信接口或/和系统总线;存储器和通信接口通过系统总线与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于和其他设备进行通信,处理器和收发器用于运行计算机程序,使播放器执行如上所述播放器频道切换的优化方法的各个步骤。

上述提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明所述的播放器频道切换的优化方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。

本发明还提供一种播放器频道切换的优化系统,所述播放器频道切换的优化系统可以实现本发明所述的播放器频道切换的优化方法,但本发明所述的播放器频道切换的优化方法的实现装置包括但不限于本实施例列举的播放器频道切换的优化系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。

综上所述,本发明所述播放器频道切换的优化方法、系统、存储介质及播放器解决了播放器在进行切换频道时常常出现的延迟感,对于播放HLS视频流有明显改观,使用户在切换频道时不存在延迟感觉,提高用户的使用度。本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:动态生成音视频片段的处理方法、装置及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类