一种视频解码的方法及装置的制造方法
【专利摘要】本发明公开了一种视频解码的方法及装置,属于互联网通信领域。所述方法包括:获取历史接收的各解码方式查询消息中包含的终端信息;根据所述获取的终端信息构造白名单,所述白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息;当接收到终端发送的解码方式查询消息时,根据所述终端的终端信息和所述白名单,获取所述终端的解码方式;发送所述解码方式给所述终端,使所述终端根据所述解码方式进行视频解码。所述装置包括:第一获取模块、构造模块、第二获取模块和发送模块。本发明能够避免终端解码失败导致无法播放视频。
【专利说明】
一种视频解码的方法及装置
技术领域
[0001]本发明涉及互联网通信领域,特别涉及一种视频解码的方法及装置。
【背景技术】
[0002]随着移动终端的发展,移动终端具有的功能越来越多,例如,目前的大部分移动终端具有下载和播放视频的功能,在移动终端下载视频后,需要先对视频进行解码,解码之后才能对该视频进行播放。
[0003]目前移动终端可以按如下方式对视频进行解码,具体为:移动终端中包括解码芯片,移动终端在下载完视频后,可以通过自身包括的解码芯片对下载的视频进行解码。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]目前视频网站中的视频的解码复杂度越来越高,而很多移动终端的解码芯片的性能较低,导致无法对这些解码复杂度较高的视频进行解码,以至于无法播放视频。
【发明内容】
[0006]为了解决现有技术的问题,本发明提供了一种视频解码的方法及装置。所述技术方案如下:
[0007]一种视频解码的方法,所述方法包括:
[0008]获取历史接收的各解码方式查询消息中包含的终端信息;
[0009]根据所述获取的终端信息构造白名单,所述白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息;
[0010]当接收到终端发送的解码方式查询消息时,根据所述终端的终端信息和所述白名单,获取所述终端的解码方式;
[0011 ] 发送所述解码方式给所述终端,使所述终端根据所述解码方式进行视频解码。
[0012]—种视频解码的装置,所述装置包括:
[0013]第一获取模块,用于获取历史接收的各解码方式查询消息中包含的终端信息;
[0014]构造模块,用于根据所述获取的终端信息构造白名单,所述白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息;
[0015]第二获取模块,用于当接收到终端发送的解码方式查询消息时,根据所述终端的终端信息和所述白名单,获取所述终端的解码方式;
[0016]发送模块,用于发送所述解码方式给所述终端,使所述终端根据所述解码方式进行视频解码。
[0017]在本发明实施例中,当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式,使终端根据该解码方式进行解码,从而可以避免终端解码失败导致无法播放视频;另外,根据历史接收的各解码方式查询消息中包含的终端信息构造白名单,使得构造的白名单都当前用户使用频率较高的终端的终端信息。
【附图说明】
[0018]图1是本发明实施例1提供的一种视频解码的方法流程图;
[0019]图2是本发明实施例2提供的一种视频解码的方法流程图;
[0020]图3是本发明实施例3提供的一种视频解码的方法流程图;
[0021]图4是本发明实施例4提供的一种视频解码的装置结构示意图;
[0022]图5是本发明实施例5提供的一种服务器结构示意图。
【具体实施方式】
[0023]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0024]实施例1
[0025]参见图1,本发明实施例提供了一种视频解码的方法,包括:
[0026]步骤101:获取历史接收的各解码方式查询消息中包含的终端信息。
[0027]步骤102:根据获取的终端信息构造白名单,白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息。
[0028]步骤103:当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式。
[0029]步骤104:发送该解码方式给终端,使终端根据该解码方式进行视频解码。
[0030]在本发明实施例中,当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式,使终端根据该解码方式进行解码,从而可以避免终端解码失败导致无法播放视频;另外,根据历史接收的各解码方式查询消息中包含的终端信息构造白名单,使得构造的白名单都当前用户使用频率较高的终端的终端信息。
[0031]实施例2
[0032]参见图2,本发明实施例提供了一种视频解码的方法,本发明的执行主体可以为服务器,该方法包括:
[0033]步骤201:获取历史接收的各解码方式查询消息中包含的终端信息。
[0034]每个用户可以在其使用的终端上安装一个客户端,该客户端可以为浏览器或播放器等。在用户每次使用该客户端播放从未播放的新视频时,该终端读取自己的终端信息,发送包含该终端信息的解码方式查询消息给服务器。服务器接收并存储该解码方式查询消息,然后根据该终端信息确定解码方式并发送给该终端。该终端根据该解码方式决定使用自身的解码芯片对新视频进行解码,还是使用自身存储的视频解码算法对新视频进行解码。
[0035]服务器中存储的各解码方式查询消息即为服务器历史接收的各解码方式查询消息,所以本步骤可以为:获取服务器中存储的各解码方式查询消息。
[0036]终端的终端信息至少包括终端的机型信息和操作系统版本信息。终端的机型信息可以为终端的型号,终端的操作系统版本信息可以为终端当前安装的操作系统的版本号。
[0037]步骤202:在获取的各终端信息中统计每种终端信息对应的数目,选择数目最大的预设数值个终端信息并组成信息集合。
[0038]由于在用户每次播放新视频时,终端才发送包含其终端信息的解码方式查询消息,所以某种终端信息对应的数目为该终端信息对应的终端被各用户使用的次数,如此信息集合中的各终端信息对应的终端都是当被用户使用频率最大的终端。
[0039]步骤203:通过预设的视频集合对信息集合中的每个终端信息对应的终端进行测试,得到信息集合中的每个终端信息对应的解码复杂度。
[0040]预设的视频集合中包括多个不同解码复杂度的视频。技术人员根据信息集合中的每个终端信息,分别采购每个终端信息对应的终端。对于采购的每个终端,该终端使用硬件解码方式分别对视频集合中的每个视频进行解码,获取解码成功的视频,从解码成功的每个视频对应的解码复杂度中选择最大的解码复杂度,将选择的解码复杂度确定为该终端的终端信息对应的解码复杂度。
[0041]其中,终端中包括硬件解码方式和软件解码方式,硬件解码方式是指终端通过其包括的解码芯片对视频进行解码;软件解码方式是指终端通过其包括的视频解码算法对视频进行解码。
[0042]目前存在的解码芯片有多种,大约已有二十几种,每种解码芯片支持的解码复杂度不同,对于每个终端,在通过视频集合对该终端进行测试时,如果该终端内包括的解码芯片支持的解码复杂度越高,使用该终端的硬件解码方式成功解码出的视频就越多,如果该终端内包括的解码芯片支持的解码复杂度越低,使用该终端的硬件解码方式成功解码出的视频就越少。
[0043]预设的视频集合中的视频是服务器事先获取的,其获取过程可以为如下(I)至(4)的步骤,包括:
[0044](I):获取视频网站包括的每个视频的解码复杂度,从网站包括的每个视频中选择解码复杂度最大的视频。
[0045]具体地,从视频网站中获取每个视频的视频参数,视频的视频参数可以包括该视频的配置信息、分辨率、参考帧、视频画面的长和宽以及帧率等;根据每个视频的视频参数计算出每个视频的解码复杂度,从网站包括的每个视频中选择解码复杂度最大的视频。解码复杂度最大的视频可能为一个或多个。
[0046]对于从视频网站中获取每个视频的视频参数的操作,可以为:
[0047]通过网络爬虫技术从视频网站中爬取视频网站包括的每个视频的视频文件,从每个视频的视频文件中分别提取每个视频的视频参数。
[0048](2):从选择的视频中截取视频画面满足预设画面条件的一段视频。
[0049]还可以预先设置一个时长范围,截取的视频的时长位于该时长范围内。
[0050]预设画面条件可以包括同一场景下最好只有两个人物对话,且能明显看到人物口型,对话为中文,影片中要有对话的字幕,说话速率大概为正常说话速率,一段影片中要包含不同的场景,例如有室内的,室外的,山水的,行走的等等,画面颜色要丰富但是不能太花口肖,不能是某种单色,场景边缘区域的图像区域颜色要有一定的条纹。
[0051](3):将截取的视频转换成多个不同解码复杂度的视频,转换的每个视频的解码复杂度都小于截取的视频的解码复杂度。
[0052]例如,假设选择解码复杂度最大的视频的解码复杂度为9,所以截取的视频的解码复杂度也为9,将截取的视频分别转换成解码复杂度为8的视频、为7的视频、为6的视频、为5的视频、为4的视频、为3的视频、为2的视频以及为I的视频。
[0053](4):将截取的视频和转换得到的每个视频组成视频集合。
[0054]例如,将截取的视频,转换的解码复杂度为8的视频、为7的视频、为6的视频、为5的视频、为4的视频、为3的视频、为2的视频以及为I的视频组成视频集合。
[0055]步骤204:从信息集合中选择解码复杂度超过预设阈值的终端信息,将选择的终端信息组成白名单。
[0056]其中,白名单中的每个终端信息都是能够采用硬件解码方式对视频进行解码的终端的终端信息。
[0057]其中,视频网站中的大部分视频的解码复杂度都位于一个解码复杂度范围内,解码复杂度低于该解码复杂度范围的下限值的视频或高于该解码复杂度范围的上限值的视频很少。在本步骤中,预设阈值可以大于或等于该解码复杂度范围的上限值,所以解码复杂度超过预设阈值的终端都能够成功地对视频网站中的大部分的视频进行解码,从而可以将选择的终端信息组成白名单。
[0058]对于任一用户,该用户可以使用其终端上安装的客户端播放新视频,新视频是该终端未播放过的影片、电影和电视剧等,需要说明的是,由于电视剧的各集影片的解码复杂度相同,在首次播放该电视剧的某集影片时,终端需要向服务器查询解码方式,在播放该电视剧的除该集影片外的其他影片时,终端就不需要向服务器查询解码方式。
[0059]在终端使用客户端播放新视频之前,终端先获取其自身的终端信息,发送包含该终端信息的解码方式查询消息给服务器,以向服务器查询对新视频进行解码的解码方式,服务器接收该解码方式查询消息后,执行如下步骤205。
[0060]步骤205:当接收到终端发送的解码方式查询消息时,根据该终端的终端信息和白名单获取该终端的解码方式。
[0061]具体地,当接收到终端发送的解码方式查询消息时,从该解码方式查询消息中提取该终端的终端信息,判断白名单中是否存在该终端的终端信息,如果存在,则获取该终端的解码方式为硬件解码方式,如果不存在,则获取该终端的解码方式为软件解码方式。
[0062]进一步地,存储接收的该解码方式查询消息。
[0063]步骤206:发送该解码方式给终端,使该终端根据该解码方式进行视频解码。
[0064]终端接收服务器发送的解码方式,如果该解码方式为硬件解码方式,则终端使用其包括的解码芯片对新视频进行视频解码,如果该解码方式为软件解码方式,则终端使用其包括的视频解码算法对新视频进行视频解码。
[0065]在本发明实施例中,当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式,使终端根据该解码方式进行解码,从而可以避免终端解码失败导致无法播放视频;另外,根据历史接收的各解码方式查询消息中包含的终端信息构造白名单,使得构造的白名单都当前用户使用频率较高的终端的终端信息,白名单中的终端信息对应的终端都使用硬件解码方式进行视频解码,硬件解码方式的解码效果优于软件解码方式,如此可以保证当前主流终端使用硬件解码方式进行视频解码,以获得更高的确码效果。
[0066]实施例3
[0067]参见图3,本发明实施例提供了一种视频解码的方法,本发明的执行主体可以为服务器,该方法包括:
[0068]步骤301:获取历史接收的各解码方式查询消息中包含的终端信息。
[0069]每个用户可以在其使用的终端上安装一个客户端,该客户端可以为浏览器或播放器等。在用户每次使用该客户端播放从未播放的新视频时,该终端读取自己的终端信息,发送包含该终端信息的解码方式查询消息给服务器。服务器接收并存储该解码方式查询消息,根据该终端信息确定解码方式并发送给该终端。该终端根据该解码方式决定使用自身的解码芯片对新视频进行解码,还是使用自身存储的视频解码算法对新视频进行解码。
[0070]服务器中存储的各解码方式查询消息即为服务器历史接收的各解码方式查询消息,所以本步骤可以为获取服务器中存储的各解码方式查询消息。
[0071]终端的终端信息至少包括终端的机型信息和操作系统版本信息。终端的机型信息可以为终端的型号,终端的操作系统版本信息可以为终端当前安装的操作系统的版本号。
[0072]步骤302:在获取的各终端信息中统计每种终端信息对应的数目,选择数目最大的预设数值个终端信息并组成信息集合。
[0073]由于在用户每次播放新视频时,终端才发送包含其终端信息的解码方式查询消息,所以某种终端信息对应的数目为该终端信息对应的终端被各用户使用的次数,如此信息集合中的各终端信息对应的终端都是当被用户使用频率最大的终端。
[0074]步骤303:获取信息集合中的每个终端信息对应的终端的解码芯片型号。
[0075]具体地,根据信息集合中的每个终端信息包括的机型信息,从预设网站中查询每个终端信息对应的终端的解码芯片型号。
[0076]预设网站中包括在当前已经上市或即将上市的各种终端的机型信息、操作系统版本信息、解码芯片型号和上市时间信息等信息。例如,终端可以为手机,目前已出现很多网站中包括当前已上市和即将上市的各种手机的机型信息、操作系统版本信息、解码芯片型号和上市时间信息等,如中关村手机在线就是这种网站,预设网站为这些网站中的一个网站或多个网站。
[0077]步骤304:从信息集合中去除解码芯片型号为预设型号的终端的终信息。
[0078]目前存在的解码芯片有多种,大约已有二十几种,每种解码芯片支持的解码复杂度不同,对于每个解码芯片,通过该解码芯片对视频进行解码时,如果该解码芯片支持的解码复杂度越高,使用该解码芯片成功解码出的视频就越多,如果该解码芯片支持的解码复杂度越低,使用该解码芯片成功解码出的视频就越少。
[0079]目前出现的各种解码芯片支持的解码复杂度都已知,预设型号可以为解码复杂度小于预设阈值的解码芯片的型号。
[0080]步骤305:通过预设的视频集合对信息集合中的每个终端信息对应的终端进行测试,得到信息集合中的每个终端信息对应的解码复杂度。
[0081]预设的视频集合中包括多个不同解码复杂度的视频。技术人员根据信息集合中的每个终端信息,分别采购每个终端信息对应的终端。对于采购的每个终端,该终端使用硬件解码方式分别对视频集合中的每个视频进行解码,获取解码成功的视频,从解码成功的每个视频对应的解码复杂度中选择最大的解码复杂度,将选择的解码复杂度确定为该终端的终端信息对应的解码复杂度。
[0082]其中,终端中包括硬件解码方式和软件解码方式,硬件解码方式是指终端通过其包括的解码芯片对视频进行解码;软件解码方式是指终端通过其包括的视频解码算法对视频进行解码。
[0083]预设的视频集合中的视频是服务器事先获取的,其获取过程可以为如下(I)至
(4)的步骤,包括:
[0084](I):获取视频网站包括的每个视频的解码复杂度,从网站包括的每个视频中选择解码复杂度最大的视频。
[0085]具体地,从视频网站中获取每个视频的视频参数,视频的视频参数可以包括该视频的配置信息、分辨率、参考帧、视频画面的长和宽以及帧率等;根据每个视频的视频参数计算出每个视频的解码复杂度,从网站包括的每个视频中选择解码复杂度最大的视频。解码复杂度最大的视频可能为一个或多个。
[0086]对于从视频网站中获取每个视频的视频参数的操作,可以为:
[0087]通过网络爬虫技术从视频网站中爬取视频网站包括的每个视频的视频文件,从每个视频的视频文件中分别提取每个视频的视频参数。
[0088](2):从选择的视频中截取视频画面满足预设画面条件的一段视频。
[0089]还可以预先设置一个时长范围,截取的视频的时长位于该时长范围内。
[0090]预设画面条件可以包括同一场景下最好只有两个人物对话,且能明显看到人物口型,对话为中文,影片中要有对话的字幕,说话速率大概为正常说话速率,一段影片中要包含不同的场景,例如有室内的,室外的,山水的,行走的等等,画面颜色要丰富但是不能太花口肖,不能是某种单色,场景边缘区域的图像区域颜色要有一定的条纹。
[0091](3):将截取的视频转换成多个不同解码复杂度的视频,转换的每个视频的解码复杂度都小于截取的视频的解码复杂度。
[0092]例如,假设选择解码复杂度最大的视频的解码复杂度为9,所以截取的视频的解码复杂度也为9,将截取的视频分别转换成解码复杂度为8的视频、为7的视频、为6的视频、为5的视频、为4的视频、为3的视频、为2的视频以及为I的视频。
[0093](4):将截取的视频和转换得到的每个视频组成视频集合。
[0094]例如,将截取的视频,转换的解码复杂度为8的视频、为7的视频、为6的视频、为5的视频、为4的视频、为3的视频、为2的视频以及为I的视频组成视频集合。
[0095]步骤306:从信息集合中选择解码复杂度超过预设阈值的终端信息,将选择的终端信息组成白名单。
[0096]其中,白名单中的每个终端信息都是能够采用硬件解码方式对视频进行解码的终端的终端信息。
[0097]其中,视频网站中的大部分视频的解码复杂度都位于一个解码复杂度范围内,解码复杂度低于该解码复杂度范围的下限值的视频或高于该解码复杂度范围的上限值的视频很少。在本步骤中,预设阈值可以大于或等于该解码复杂度范围的上限值,所以解码复杂度超过预设阈值的终端都能够成功地对视频网站中的大部分的视频进行解码,从而可以将选择的终端的终端信息组成白名单。
[0098]其中,由于解码芯片支持的解码复杂度小于预设阈值,包括该解码芯片的终端支持的解码复杂度也可能小于预设阈值,所以在步骤304中将解码复杂度小于预设阈值的解码芯片的型号确定为预设型号,去除解码芯片型号为预设型号的终端的终信息,可以减少测试终端的数量,提高效率。
[0099]进一步地,在本发明实施例中,还可以获取离当前最近且时长为预设时长的时间段,从预设网站中获取上市时间信息在该时间段内且解码芯片型号为除预设型号以外的终端的终端信息,将获取的终端信息添加到白名单。
[0100]其中,预设型号为解码复杂度小于预设阈值的解码芯片的型号,所以解码芯片型号为除预设型号以外的终端中的解码芯片支持的解码复杂度大于或等于预设阈值,使得解码芯片型号为除预设型号以外的终端支持的解码复杂度也可能大于或等于预设阈值,所以可以将解码芯片型号为除预设型号以外的终端的终端信息添加到白名单中。
[0101]对于任一用户,该用户可以使用其终端上安装的客户端播放新视频,新视频是该终端未播放过的影片、电影和电视剧等,需要说明的是,由于电视剧的各集影片的解码复杂度相同,在首次播放该电视剧的某集影片时,终端需要向服务器查询解码方式,在播放该电视剧的除该集影片外的其他影片时,终端就不需要向服务器查询解码方式。
[0102]在终端使用客户端播放新视频之前,终端先获取其自身的终端信息,发送包含该终端信息的解码方式查询消息给服务器,以向服务器查询对新视频进行解码的解码方式,服务器接收该解码方式查询消息后,执行如下步骤307。
[0103]步骤307:当接收到终端发送的解码方式查询消息时,根据该终端的终端信息和白名单获取该终端的解码方式。
[0104]具体地,当接收到终端发送的解码方式查询消息时,从该解码方式查询消息中提取该终端的终端信息,判断白名单中是否存在该终端的终端信息,如果存在,则获取该终端的解码方式为硬件解码方式,如果不存在,则获取该终端的解码方式为软件解码方式。
[0105]进一步地,存储接收的该解码方式查询消息。
[0106]步骤308:发送该解码方式给终端,使该终端根据该解码方式进行视频解码。
[0107]终端接收服务器发送的解码方式,如果该解码方式为硬件解码方式,则终端使用其包括的解码芯片对新视频进行视频解码,如果该解码方式为软件解码方式,则终端使用其包括的视频解码算法对新视频进行视频解码。
[0108]在本发明实施例中,当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式,使终端根据该解码方式进行解码,从而可以避免终端解码失败导致无法播放视频;另外,根据历史接收的各解码方式查询消息中包含的终端信息构造白名单,使得构造的白名单都当前用户使用频率较高的终端的终端信息,白名单中的终端信息对应的终端都使用硬件解码方式进行视频解码,硬件解码方式的解码效果优于软件解码方式,如此可以保证当前主流终端使用硬件解码方式进行视频解码,以获得更高的确码效果。
[0109]实施例4
[0110]参见图4,本发明实施例提供了一种视频解码的装置,包括:
[0111]第一获取模块401,用于获取历史接收的各解码方式查询消息中包含的终端信息;
[0112]构造模块402,用于根据获取的终端信息构造白名单,该白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息;
[0113]第二获取模块403,用于当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式;
[0114]发送模块404,用于发送该解码方式给终端,使终端根据该解码方式进行视频解码。
[0115]可选的,构造模块402包括:
[0116]统计单元,用于在获取的终端信息中统计每种终端信息的数目;
[0117]获取单元,用于获取数目最大的预设数值个终端信息并组成信息集合;
[0118]测试单元,用于通过预设的视频集合对该信息集合中的各终端信息对应的终端进行测试得到该信息集合中的各终端信息对应的解码复杂度,该视频集合包括多个不同解码复杂度的视频;
[0119]选择单元,用于选择解码复杂度超过预设阈值的终端信息,将选择的终端信息组成白名单。
[0120]进一步地,该装置还包括:
[0121]去除模块,用于获取该信息集合中的每个终端信息对应的终端的解码芯片型号,从该信息集合中去除解码芯片型号为预设型号的终端的终端信息,然后执行通过预设的视频集合对该信息集合中的各终端信息对应的终端进行测试得到该信息集合中的各终端信息对应的解码复杂度的操作。
[0122]进一步地,该装置还包括:
[0123]第三获取模块,用于从视频网站中获取解码复杂度最大且视频画面满足预设画面条件的视频;
[0124]转移模块,用于将获取的视频转换为多个不同解码复杂度的视频,且转换的每个视频的解码复杂度都小于所述视频的解码复杂度;
[0125]组成模块,用于将获取的视频和转换的每个视频组成视频集合。
[0126]进一步地,该装置还包括:
[0127]添加模块,用于获取离当前最近且时长为预设时长的时间段,从预设网站中获取上市时间信息在该时间段内且解码芯片型号为除预设型号以外的终端的终端信息,将获取的终端信息添加到白名单。
[0128]在本发明实施例中,当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式,使终端根据该解码方式进行解码,从而可以避免终端解码失败导致无法播放视频;另外,根据历史接收的各解码方式查询消息中包含的终端信息构造白名单,使得构造的白名单都当前用户使用频率较高的终端的终端信息,白名单中的终端信息对应的终端都使用硬件解码方式进行视频解码,硬件解码方式的解码效果优于软件解码方式,如此可以保证当前主流终端使用硬件解码方式进行视频解码,以获得更高的确码效果。
[0129]实施例5
[0130]图5是本发明实施例提供的服务器的结构示意图。服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits, CPU) 1922 (例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930 (例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
[0131]服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口 1950,一个或一个以上输入输出接口 1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统 1941,例如 Windows ServerTM, Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM 等等。
[0132]服务器1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0133]获取历史接收的各解码方式查询消息中包含的终端信息;
[0134]根据所述获取的终端信息构造白名单,所述白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息;
[0135]当接收到终端发送的解码方式查询消息时,根据所述终端的终端信息和所述白名单,获取所述终端的解码方式;
[0136]发送所述解码方式给所述终端,使所述终端根据所述解码方式进行视频解码。
[0137]可选的,所述根据所述获取的终端信息构造白名单,包括:
[0138]在所述获取的终端信息中统计每种终端信息的数目;
[0139]获取数目最大的预设数值个终端信息并组成信息集合;
[0140]通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度,所述视频集合包括多个不同解码复杂度的视频;
[0141]选择解码复杂度超过预设阈值的终端信息,将所述选择的终端信息组成白名单。
[0142]进一步地,所述通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度之前,还包括:
[0143]获取所述信息集合中的每个终端信息对应的终端的解码芯片型号,从所述信息集合中去除解码芯片型号为预设型号的终端的终端信息,然后执行所述通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度的操作。
[0144]进一步地,所述根据所述获取的终端信息构造白名单之前,还包括:
[0145]从视频网站中获取解码复杂度最大且视频画面满足预设画面条件的视频;
[0146]将所述视频转换为多个不同解码复杂度的视频,且转换的每个视频的解码复杂度都小于所述视频的解码复杂度;
[0147]将所述视频和所述转换的每个视频组成视频集合。
[0148]进一步地,所述发送所述白名单给所述每个用户使用的终端之前,还包括:
[0149]获取离当前最近且时长为预设时长的时间段,从预设网站中获取上市时间信息在所述时间段内且解码芯片型号为除预设型号以外的终端的终端信息,将所述获取的终端信息添加到所述白名单。
[0150]在本发明实施例中,当接收到终端发送的解码方式查询消息时,根据终端的终端信息和白名单,获取终端的解码方式,使终端根据该解码方式进行解码,从而可以避免终端解码失败导致无法播放视频;另外,根据历史接收的各解码方式查询消息中包含的终端信息构造白名单,使得构造的白名单都当前用户使用频率较高的终端的终端信息,白名单中的终端信息对应的终端都使用硬件解码方式进行视频解码,硬件解码方式的解码效果优于软件解码方式,如此可以保证当前主流终端使用硬件解码方式进行视频解码,以获得更高的确码效果。
[0151 ] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0152]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种视频解码的方法,其特征在于,所述方法包括: 获取历史接收的各解码方式查询消息中包含的终端信息; 根据所述获取的终端信息构造白名单,所述白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息; 当接收到终端发送的解码方式查询消息时,根据所述终端的终端信息和所述白名单,获取所述终端的解码方式; 发送所述解码方式给所述终端,使所述终端根据所述解码方式进行视频解码。2.如权利要求1所述的方法,其特征在于,所述根据所述获取的终端信息构造白名单,包括: 在所述获取的终端信息中统计每种终端信息的数目; 获取数目最大的预设数值个终端信息并组成信息集合; 通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度,所述视频集合包括多个不同解码复杂度的视频; 选择解码复杂度超过预设阈值的终端信息,将所述选择的终端信息组成白名单。3.如权利要求2所述的方法,其特征在于,所述通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度之前,还包括: 获取所述信息集合中的每个终端信息对应的终端的解码芯片型号,从所述信息集合中去除解码芯片型号为预设型号的终端的终端信息,然后执行所述通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度的操作。4.如权利要求1或2所述的方法,其特征在于,所述根据所述获取的终端信息构造白名单之前,还包括: 从视频网站中获取解码复杂度最大且视频画面满足预设画面条件的视频; 将所述视频转换为多个不同解码复杂度的视频,且转换的每个视频的解码复杂度都小于所述视频的解码复杂度; 将所述视频和所述转换的每个视频组成视频集合。5.如权利要求1至3任一项权利要求所述的方法,其特征在于,所述发送所述白名单给所述每个用户使用的终端之前,还包括: 获取离当前最近且时长为预设时长的时间段,从预设网站中获取上市时间信息在所述时间段内且解码芯片型号为除预设型号以外的终端的终端信息,将所述获取的终端信息添加到所述白名单。6.一种视频解码的装置,其特征在于,所述装置包括: 第一获取模块,用于获取历史接收的各解码方式查询消息中包含的终端信息; 构造模块,用于根据所述获取的终端信息构造白名单,所述白名单包括能够采用硬件解码方式对视频进行解码的终端的终端信息; 第二获取模块,用于当接收到终端发送的解码方式查询消息时,根据所述终端的终端信息和所述白名单,获取所述终端的解码方式; 发送模块,用于发送所述解码方式给所述终端,使所述终端根据所述解码方式进行视频解码。7.如权利要求6所述的装置,其特征在于,所述构造模块包括: 统计单元,用于在所述获取的终端信息中统计每种终端信息的数目; 获取单元,用于获取数目最大的预设数值个终端信息并组成信息集合; 测试单元,用于通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度,所述视频集合包括多个不同解码复杂度的视频; 选择单元,用于选择解码复杂度超过预设阈值的终端信息,将所述选择的终端信息组成白名单。8.如权利要求7所述的装置,其特征在于,所述装置还包括: 去除模块,用于获取所述信息集合中的每个终端信息对应的终端的解码芯片型号,从所述信息集合中去除解码芯片型号为预设型号的终端的终端信息,然后执行所述通过预设的视频集合对所述信息集合中的各终端信息对应的终端进行测试得到所述信息集合中的各终端信息对应的解码复杂度的操作。9.如权利要求6或7所述的装置,其特征在于,所述装置还包括: 第三获取模块,用于从视频网站中获取解码复杂度最大且视频画面满足预设画面条件的视频; 转移模块,用于将所述视频转换为多个不同解码复杂度的视频,且转换的每个视频的解码复杂度都小于所述视频的解码复杂度; 组成模块,用于将所述视频和所述转换的每个视频组成视频集合。10.如权利要求6至8任一项权利要求所述的装置,其特征在于,所述装置还包括: 添加模块,用于获取离当前最近且时长为预设时长的时间段,从预设网站中获取上市时间信息在所述时间段内且解码芯片型号为除预设型号以外的终端的终端信息,将所述获取的终端信息添加到所述白名单。
【文档编号】H04N21/4405GK105992055SQ201510046323
【公开日】2016年10月5日
【申请日】2015年1月29日
【发明人】陈俊峰
【申请人】腾讯科技(深圳)有限公司