一种用于解码视频的方法、装置和播放器的制造方法

文档序号:8441776阅读:324来源:国知局
一种用于解码视频的方法、装置和播放器的制造方法
【技术领域】
[0001]本发明涉及播放器技术领域,更具体地,涉及一种用于解码视频的方法、装置和播放器。
【背景技术】
[0002]目前,视频解码方式主要有软件解码和硬件解码。软件解码是指直接用CPU (Central Processing Unit,中央处理器)解码,由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高,再加上主流编码算法的压缩率很高,解码运算的运算量很大,因此软件解码会极大地消耗CPU的运算能力;硬件解码是通过显卡的视频加速功能对高清视频进行解码,因此硬件解码能够将CPU从繁重的视频解码运算中释放出来,使终端具备流畅播放高清视频的能力。
[0003]基于Android系统(一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑)的视频播放器软件中,有的播放器是使用软件解码的方式,这种方式在性能上存在上述的不足。由于Android系统的多样性,存在不同的系统版本和不同的CPU芯片,如果播放器使用硬件解码的方式,就需要针对不同的系统版本和不同的CPU芯片采用不同的硬件解码方案。这就导致播放器需要适配不同的机型和系统版本。
[0004]针对上述问题,普通的技术解决方案就是针对不同的硬件解码方式直接使用不同的播放器实例,然而,当使用的播放器实例无法播放视频时,就需要使用其他播放器实例来重新播放,这种方法简单粗暴,灵活性不足,用户体验差。

【发明内容】

[0005]有鉴于此,本发明实施例的目的是提供一种用于解码视频的方法、装置和播放器,用以优化播放器。
[0006]为了达到上述目的,一方面,本发明实施例提出一种用于解码视频的方法,包括以下步骤:
[0007]当对待解码的视频数据流的解码准备已完成后,根据播放所述视频数据流的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案;
[0008]调用选择的解码方案以对所述待解码的视频数据流进行解码。
[0009]在本发明一实施例中,所述方法还包括:
[0010]当选择的解码方案对解封装后的视频数据流未成功解码时,从预设的解码方案中选择与所述信息相应的另一个解码方案;
[0011]调用所述另一个解码方案以从所述视频数据流中未成功解码处开始解码。
[0012]在本发明一实施例中,所述根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,包括:
[0013]根据播放该视频的终端的信息,优先从预设的解码方案中的硬件解码方案中选择与所述信息相应的解码方案,最后从预设的解码方案中的软件解码方案中选择与所述信息相应的解码方案。
[0014]在本发明一实施例中,所述根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,包括:
[0015]根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,以及从预设的绘制图层中选择与所选择的解码方案对应的绘制图层;
[0016]所述调用选择的解码方案以对所述待解码的视频数据流进行解码,包括:
[0017]调用选择的解码方案以及选择的绘制图层以对所述待解码的视频数据流进行解码。
[0018]在本发明一实施例中,所述方法还包括:
[0019]从预设的绘制图层中选择与所选择的解码方案对应的绘制图层后,将预设的绘制图层中的其他的绘制图层设置为不可见。
[0020]本发明实施例还提出一种用于解码视频的装置,包括:
[0021]选择模块,用于当对待解码的视频数据流的解码准备已完成后,根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案;
[0022]调用模块,用于调用选择的解码方案以对所述待解码的视频数据流进行解码。
[0023]在本发明一实施例中,所述选择模块还用于,
[0024]当选择的解码方案对解封装后的视频数据流未成功解码时,根据播放所述视频数据流的终端的信息,从预设的解码方案中选择与所述信息相应的另一个解码方案;
[0025]所述调用模块还用于,调用所述另一个解码方案以从所述视频数据流中未成功解码处开始解码。
[0026]在本发明一实施例中,所述选择模块还用于,
[0027]根据播放该视频的终端的信息,优先从预设的解码方案中的硬件解码方案中选择与所述信息相应的解码方案;最后从预设的解码方案中的软件解码方案中选择与所述信息相应的解码方案。
[0028]在本发明一实施例中,所述选择模块还用于,
[0029]根据播放该视频的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案,以及从预设的绘制图层中选择与所选择的解码方案对应的绘制图层;
[0030]所述调用模块还用于,调用选择的解码方案以及选择的绘制图层以对所述待解码的视频数据流进行解码。
[0031]在本发明一实施例中,所述调用模块还用于,
[0032]从预设的绘制图层中选择与所选择的解码方案对应的绘制图层后,将预设的绘制图层中的其他的绘制图层设置为不可见。
[0033]本发明实施例还提出一种播放器,包括上述的用于解码视频的装置。
[0034]本发明实施例提供的技术方案可以包括以下有益效果:
[0035]由于本发明中用于解码视频的方法可以在解码方案中进行选择,然后调用选择的解码方案进行播放,因此,使用本发明的播放器中可以封装各种不同的解码方案,还能够兼顾到不同的解码类型的结构,比如在Android系统里使用MediaCodec的硬件解码是使用java层代码实现,这么设计可以很好的支持这种多样性,也方便了后续的扩展;在解码准备后选择解码方案进行解码,如果需要更换解码方案,无需再次缓冲和进行解码准备,可以直接切换解码方案,实现了动态切换,这样的切换对于用户几乎感知不到,提高了用户的使用体验。
[0036]本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其它优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0037]下面通过附图和实施例,对本发明实施例的技术方案做进一步的详细描述。
【附图说明】
[0038]附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明实施例的限制。在附图中:
[0039]图1是本发明一实施例提供的用于解码视频的方法的流程图;
[0040]图2是本发明另一实施例提供的用于解码视频的方法的流程图;
[0041]图3是本发明另一实施例提供的用于解码视频的方法的流程图;
[0042]图4是本发明另一实施例提供的用于解码视频的装置的结构示意图;
[0043]图5是本发明另一实施例提供的播放器的结构示意图。
【具体实施方式】
[0044]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明实施例,并不用于限定本发明实施例。
[0045]由于Android系统的多样性,基于Android系统的播放器中的硬件解码方案需要与Android系统相应,播放器才能工作。为了适配不同的Android系统,需要对现有的播放器进行改进。如图1所示为本发明一实施例中的用于解码视频的方法的主要流程,该方法适用于播放器中,该方法包括以下步骤:
[0046]步骤Sll:当对待解码的视频数据流的解码准备已完成后,根据播放所述视频数据流的终端的信息,从预设的解码方案中选择与所述信息相应的解码方案。
[0047]对视频数据流的解码准备可以包括:对视频数据流进行
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1