CN103428582A - 播放视频的方法、装置和客户端 - Google Patents

播放视频的方法、装置和客户端 Download PDF

Info

Publication number
CN103428582A
CN103428582A CN2013103921259A CN201310392125A CN103428582A CN 103428582 A CN103428582 A CN 103428582A CN 2013103921259 A CN2013103921259 A CN 2013103921259A CN 201310392125 A CN201310392125 A CN 201310392125A CN 103428582 A CN103428582 A CN 103428582A
Authority
CN
China
Prior art keywords
video
data stream
player
hardware accelerator
decoded
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.)
Granted
Application number
CN2013103921259A
Other languages
English (en)
Other versions
CN103428582B (zh
Inventor
宋雷
张志和
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Internet Security Software Co Ltd
Conew Network Technology Beijing Co Ltd
Zhuhai Juntian Electronic Technology Co Ltd
Beijing Cheetah Mobile Technology Co Ltd
Beijing Cheetah Network Technology Co Ltd
Zhuhai Baohaowan Technology Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co Ltd
Conew Network Technology Beijing Co Ltd
Shell Internet Beijing Security Technology Co Ltd
Zhuhai Juntian Electronic Technology Co Ltd
Beijing Kingsoft Internet Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Internet Security Software Co Ltd, Conew Network Technology Beijing Co Ltd, Shell Internet Beijing Security Technology Co Ltd, Zhuhai Juntian Electronic Technology Co Ltd, Beijing Kingsoft Internet Science and Technology Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201310392125.9A priority Critical patent/CN103428582B/zh
Publication of CN103428582A publication Critical patent/CN103428582A/zh
Application granted granted Critical
Publication of CN103428582B publication Critical patent/CN103428582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提出一种播放视频的方法、装置和客户端。其中,所述方法包括以下步骤:向视频播放器提供视频数据流;加载虚拟视频硬件加速器,并通过虚拟视频硬件加速器对视频数据流进行解码;以及将解码后的视频数据流反馈至视频播放器,以通过视频播放器进行播放。本发明实施例方法,降低CPU和内存资源的占有,播放效果好,用户体验好。

Description

播放视频的方法、装置和客户端
技术领域
本发明涉及视频处理技术领域,尤其涉及一种播放视频的方法、装置和客户端。
背景技术
随着互联网技术的高速发展,越来越多的网民喜欢在线观看视频。目前,由于在线视频的网站多提供采用Flash(例如由macromedia公司推出的交互式矢量图和Web动画的标准)播放器播放的视频,因此Flash播放器的使用越来越普遍。
目前的Flash播放器首先获取视频数据流,之后使用Flash播放器自带的软件解码器对视频数据流进行解码。但是,采用Flash播放器播放时至少存在以下问题,由于目前采用Flash播放器播放的视频数据格式多为H.264(一种高度压缩的数字视频编解码标准),然而Flash播放器自带的软件解码器针对H.264格式的视频数据在解码时占用很大的资源,因此Flash播放器在解码时会抢夺大量的CPU(Central Processing Unit,中央处理器)与内存资源,影响播放效果,导致用户体验差。并且对于低端设备,例如配置较低的终端来说,该问题更为明显。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的第一个目的在于提出一种播放视频的方法。该方法降低CPU和内存资源的占有,播放效果好,用户体验好。
本发明的第二个目的在于提出一种播放视频的装置。
本发明的第三个目的在于提出一种客户端。
为了实现上述目的,本发明第一方面实施例的播放视频的方法,包括以下步骤:向视频播放器提供视频数据流;加载虚拟视频硬件加速器,并通过所述虚拟视频硬件加速器对所述视频数据流进行解码;以及将解码后的所述视频数据流反馈至所述视频播放器,以通过所述视频播放器进行播放。
本发明实施例的播放视频的方法,视频播放器将视频数据流通过虚拟视频硬件加速器进行解码,极大地减少视频播放器采用自身的软件解码器解码时对资源的索取,降低CPU和内存资源的占有,另外,虚拟视频硬件加速器可以设计成更高性能的解码器,解码效率高,由此,在线视频播放效果好,用户体验好。
为了实现上述目的,本发明第二方面实施例的播放视频的装置,包括:视频数据流提供模块,用于向视频播放器提供视频数据流;加速器加载模块,用于加载虚拟视频硬件加速器,并通过所述虚拟视频硬件加速器对所述视频数据流进行解码;以及播放控制模块,用于将解码后的所述视频数据流反馈至所述视频播放器,以通过所述视频播放器进行播放。
本发明实施例的播放视频的装置,视频播放器将视频数据流通过虚拟视频硬件加速器进行解码,极大地减少视频播放器采用自身的软件解码器解码时对资源的索取,降低CPU和内存资源的占有,另外,虚拟视频硬件加速器可以设计成更高性能的解码器,解码效率高,由此,在线视频播放效果好,用户体验好。
为了实现上述目的,本发明第三方面实施例的客户端,包括:外壳,屏幕,处理器和电路板;所述屏幕安置在所述外壳上,所述电路板安置在所述外壳围成的空间内部,所述处理器设置在所述电路板上;所述处理器用于处理数据,具体用于:向视频播放器提供视频数据流;加载虚拟视频硬件加速器,并通过所述虚拟视频硬件加速器对所述视频数据流进行解码;以及将解码后的所述视频数据流反馈至所述视频播放器,以通过所述视频播放器进行播放。
本发明实施例的客户端,视频播放器将视频数据流通过虚拟视频硬件加速器进行解码,极大地减少视频播放器采用自身的软件解码器解码时对资源的索取,降低CPU和内存资源的占有,另外,虚拟视频硬件加速器可以设计成更高性能的解码器,解码效率高,由此,在线视频播放效果好,用户体验好。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的播放视频的方法的流程图;
图2是根据本发明另一个实施例的播放视频的方法的流程图;
图3是根据本发明一个具体实施例的播放视频的方法的流程图;
图4是根据本发明另一个具体实施例的播放视频的方法的流程图;
图5是根据本发明再一个具体实施例的播放视频的方法的流程图;
图6是根据本发明一个实施例的通过播放视频的装置的结构示意图;
图7是根据本发明另一个实施例的播放视频的装置的结构示意图;以及
图8是根据本发明一个具体实施例的播放视频的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
目前,在线视频的网站采用Flash播放器播放视频,Flash播放器播放视频主要以H.264格式为主,在解码时抢夺大量的***CPU与内存资源,影响播放效果,用户体验差。为了解决上述问题,本发明提出一种播放视频的方法、装置和客户端,通过欺骗Flash播放器,虚拟出一个视频硬件加速器对视频进行解码以节省CPU和内存资源。下面参考附图描述根据本发明实施例的播放视频的方法、装置和客户端。
图1是根据本发明一个实施例的播放视频的方法的流程图。如图1所示,播放视频的方法包括以下步骤。
S101,向视频播放器提供视频数据流。
在本发明的一个实施例中,视频播放器为Flash视频播放器。应当理解,本发明主要解决的问题是Flash视频播放器在解码时抢夺大量的***CPU与内存资源,本领域的技术人员很容易理解其他具有类似问题的视频播放器也在本发明的范围之内,在后续的说明中为了方便理解主要以Flash视频播放器为主。
具体地,用户在客户端通过浏览器类应用程序访问并加载在线视频网站,浏览器类应用程序根据加载的在线视频启动Flash视频播放器,其中Flash视频播放器可以以插件的形式存在浏览器类应用程序中,之后浏览器类应用程序从在线视频网站的服务器上获取视频数据流,并提供给Flash视频播放器。
S102,加载虚拟视频硬件加速器,并通过虚拟视频硬件加速器对视频数据流进行解码。
其中,Flash视频播放器可以采用两种方式对视频数据流进行解码,一种是采用Flash视频播放器本身的软件解码器进行解码,另一种是访问***中的硬件解码器进行解码,其中,硬件解码器可带来更加优越的解码效率,例如,Broadcom CrystalHD Decoder(非常著名的视频解码器硬件,普通用户极少会单独购买)。所以,Flash视频播放器在获取视频数据流之后,首先会询问***中是否存在这样的硬件解码器,由于Flash视频播放器本身的软件解码器在解码时抢夺大量的CPU和内存,不希望通过Flash视频播放器本身的软件解码器进行解码,因此,加载一个虚拟视频硬件加速器,使得Flash视频播放器在询问***中是否存在硬件解码器时欺骗Flash视频播放器以通过虚拟视频硬件加速器进行解码,该虚拟视频硬件加速器可以是任何高性能的软件解码器,并具有比Flash视频播放器自身的软件解码器更加优秀的解码效果,例如FFmpeg(开源免费跨平台的视频和音频流方案,包含了非常先进的音频/视频编解码库)等。
S103,将解码后的视频数据流反馈至视频播放器,以通过视频播放器进行播放。
具体地,Flash视频播放器会按照预设规律例如1毫秒的时间间隔询问虚拟视频硬件加速器是否解码成功,如果解码成功,则通过解码数据输出接口将解码后的视频数据流反馈至Flash视频播放器。
本发明实施例的播放视频的方法,视频播放器将视频数据流通过虚拟视频硬件加速器进行解码,极大地减少视频播放器采用自身的软件解码器解码时对资源的索取,降低CPU和内存资源的占有,另外,虚拟视频硬件加速器可以设计成更高性能的解码器,解码效率高,由此,在线视频播放效果好,用户体验好。
图2是根据本发明另一个实施例的播放视频的方法的流程图。下面结合图2详细说明加载虚拟视频硬件加速器的过程,具体地,如图2所示,播放视频的方法包括以下步骤。
S201,向视频播放器提供视频数据流。
S202,截取视频播放器的调用请求,调用请求用于调用***接口函数。
S203,将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。
在本发明的一个实施例中,***接口函数可为API.LoadLibrary接口函数,用于加载***文件,该***是客户端的操作***,客户端可以是PC(Personal Computer,个人计算机)或移动终端,移动终端可为智能手机、平板电脑、个人数字助理、电子书等具有各种操作***的硬件设备。
具体地,Flash视频播放器通过调用***接口函数判断***中是否具有硬件解码器,***接口函数中包括硬件解码器加载文件的文件路径,在此过程中,截取视频播放器的该调用请求,并将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。
S204,恢复调用请求,并根据文件路径加载虚拟视频硬件加速器,以通过虚拟视频硬件加速器对视频数据流进行解码。
具体地,虚拟视频硬件加速器向Flash视频播放器提供三个接口:初始化接口、数据流输入接口和解码数据输出接口,首先,Flash视频播放器对虚拟视频硬件加速器进行初始化,之后将视频数据流通过数据流输入接口传输至虚拟视频硬件加速器中进行解码。
S205,将解码后的视频数据流反馈至视频播放器,以通过视频播放器进行播放。
本发明实施例的播放视频的方法,通过修改***接口函数的调用参数加载虚拟视频硬件加速器进行解码,简捷,效率高。
在截取视频播放器的调用请求时,可以通过钩子函数实现。图3是根据本发明一个具体实施例的播放视频的方法的流程图。如图3所示,播放视频的方法包括以下步骤。
S301,向视频播放器提供视频数据流。
S302,通过钩子函数截取视频播放器的调用请求,调用请求用于调用***接口函数。
其中,钩子函数用于监控***接口函数,及在当***接口函数被调用时截取调用请求并修改***接口函数的调用参数中的文件路径。
在本发明的一个实施例中,***接口函数为API.LoadLibrary接口函数。
具体地,每当Flash视频播放器调用***接口函数时,在该***接口函数还没有根据文件路径调用对应的硬件解码器的加载文件之前,钩子函数先捕获该调用请求,并获取***接口函数的调用参数,以获得对该***接口函数的控制权,并对该***接口函数的调用参数进行加工处理,例如,修改调用参数中的文件路径等。
S303,将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。
S304,恢复调用请求,并根据文件路径加载虚拟视频硬件加速器,以通过虚拟视频硬件加速器对视频数据流进行解码。
S305,将解码后的视频数据流反馈至视频播放器,以通过视频播放器进行播放。
本发明实施例的播放视频的方法,通过钩子函数截取视频播放器的调用请求,并将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径,提升效率。
视频数据流音频压缩数据流和视频压缩数据流(即图像数据),针对音频压缩数据流可以通过Flash视频播放器自身的软件解码器进行解码,虚拟视频硬件加速器只需对视频压缩数据流进行解码。图4是根据本发明另一个具体实施例的播放视频的方法的流程图。如图4所示,播放视频的方法包括以下步骤。
S401,向视频播放器提供视频数据流。
S402,视频播放器对视频数据流进行分离,以获取视频数据流的音频压缩数据流和视频压缩数据流。
S403,通过钩子函数截取视频播放器的调用请求,调用请求用于调用***接口函数。
S404,将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。
S405,恢复调用请求,并根据文件路径加载虚拟视频硬件加速器,以通过虚拟视频硬件加速器对视频数据流进行解码。
S406,视频播放器的解码器对音频压缩数据流进行解码。
其中,S403和S406的执行不分先后顺序。
S407,将解码后的视频压缩数据流反馈至视频播放器,以通过视频播放器进行播放。
本发明实施例的播放视频的方法,通过视频播放器对视频数据流的音频压缩数据流进行解码,虚拟视频硬件加速器对视频数据流的视频压缩数据流进行解码,进一步提升效率。
根据文件路径加载虚拟视频硬件加速器,首先,通过文件路径获取虚拟视频硬件加速器的加载文件,然后,根据加载文件加载虚拟视频硬件加速器。图5是根据本发明再一个具体实施例的播放视频的方法的流程图。如图5所示,播放视频的方法包括以下步骤。
S501,向视频播放器提供视频数据流。
S502,通过钩子函数截取视频播放器的调用请求,调用请求用于调用***接口函数。
S503,将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。
S504,恢复调用请求,并通过文件路径获取虚拟视频硬件加速器的加载文件。
S505,根据加载文件加载虚拟视频硬件加速器,以通过虚拟视频硬件加速器对视频数据流进行解码。
S506,将解码后的视频数据流反馈至视频播放器,以通过视频播放器进行播放。
本发明实施例的播放视频的方法,进一步提升效率。
为了实现上述实施例,本发明还提出一种播放视频的装置。
图6是根据本发明一个实施例的播放视频的装置的结构示意图。如图6所示,播放视频的装置包括:视频数据流提供模块110、加速器加载模块120和播放控制模块130。
具体地,视频数据流提供模块110用于向视频播放器提供视频数据流。在本发明的一个实施例中,视频播放器为Flash视频播放器。应当理解,本发明主要解决的问题是Flash视频播放器在解码时抢夺大量的***CPU与内存资源,本领域的技术人员很容易理解其他具有类似问题的视频播放器也在本发明的范围之内,在后续的说明中为了方便理解主要以Flash视频播放器为主。
更具体地,用户在客户端通过浏览器类应用程序访问并加载在线视频网站,浏览器类应用程序根据加载的在线视频启动Flash视频播放器,其中Flash视频播放器可以以插件的形式存在浏览器类应用程序中,之后浏览器类应用程序从在线视频网站的服务器上获取视频数据流,并提供给Flash视频播放器。
加速器加载模块120用于加载虚拟视频硬件加速器,并通过虚拟视频硬件加速器对视频数据流进行解码。
其中,Flash视频播放器可以采用两种方式对视频数据流进行解码,一种是采用Flash视频播放器本身的软件解码器进行解码,另一种是访问***中的硬件解码器进行解码,其中,硬件解码器可带来更加优越的解码效率,例如,Broadcom CrystalHD Decoder。所以,Flash视频播放器在获取视频数据流之后,首先会询问***中是否存在这样的硬件解码器,由于Flash视频播放器本身的软件解码器在解码时抢夺大量的CPU和内存,不希望通过Flash视频播放器本身的软件解码器进行解码,因此,加载一个虚拟视频硬件加速器,使得Flash视频播放器在询问***中是否存在硬件解码器时欺骗Flash视频播放器以通过虚拟视频硬件加速器进行解码,该虚拟视频硬件加速器可以是任何高性能的软件解码器,并具有比Flash视频播放器自身的软件解码器更加优秀的解码效果,例如FFmpeg等。
播放控制模块130用于将解码后的视频数据流反馈至视频播放器,以通过视频播放器进行播放。更具体地,Flash视频播放器会按照预设规律例如1毫秒的时间间隔询问虚拟视频硬件加速器是否解码成功,如果解码成功,则播放控制模块130控制通过解码数据输出接口将解码后的视频数据流反馈至Flash视频播放器。
本发明实施例的播放视频的装置,视频播放器将视频数据流通过虚拟视频硬件加速器进行解码,极大地减少视频播放器采用自身的软件解码器解码时对资源的索取,降低CPU和内存资源的占有,另外,虚拟视频硬件加速器可以设计成更高性能的解码器,解码效率高,由此,在线视频播放效果好,用户体验好。
图7是根据本发明另一个实施例的播放视频的装置的结构示意图。如图7所示,播放视频的装置包括:视频数据流提供模块110、加速器加载模块120、播放控制模块130、截取单元121、修改单元122和加载单元123,其中,加速器加载模块120包括截取单元121、修改单元122和加载单元123。
具体地,截取单元121用于截取视频播放器的调用请求,调用请求用于调用***接口函数。
修改单元122用于将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。
在本发明的一个实施例中,***接口函数可为API.LoadLibrary接口函数,用于加载***文件,该***是客户端的操作***,客户端可以是PC或移动终端,移动终端可为智能手机、平板电脑、个人数字助理、电子书等具有各种操作***的硬件设备。
更具体地,Flash视频播放器通过调用***接口函数判断***中是否具有硬件解码器,***接口函数中包括硬件解码器加载文件的文件路径,在此过程中,截取视频播放器的该调用请求,并将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。
加载单元123用于恢复调用请求,并根据文件路径加载虚拟视频硬件加速器。
更具体地,虚拟视频硬件加速器向Flash视频播放器提供三个接口:初始化接口、数据流输入接口和解码数据输出接口,首先,Flash视频播放器对虚拟视频硬件加速器进行初始化,之后将视频数据流通过数据流输入接口传输至虚拟视频硬件加速器中进行解码。
在本发明的一个实施例中,截取单元121还用于:通过钩子函数截取视频播放器的调用请求,其中,钩子函数用于监控***接口函数,及在当***接口函数被调用时截取调用请求并修改***接口函数的调用参数中的文件路径。在本发明的一个实施例中,***接口函数为API.LoadLibrary接口函数。具体地,每当Flash视频播放器调用***接口函数时,在该***接口函数还没有根据文件路径调用对应的硬件解码器的加载文件之前,钩子函数先捕获该调用请求,并获取***接口函数的调用参数,以获得对该***接口函数的控制权,并对该***接口函数的调用参数进行加工处理,例如,修改调用参数中的文件路径等。
在本发明的一个实施例中,加载单元123还用于:通过文件路径获取虚拟视频硬件加速器的加载文件,并根据加载文件加载虚拟视频硬件加速器。
图8是根据本发明一个具体实施例的播放视频的装置的结构示意图。如图8所示,播放视频的装置包括:视频数据流提供模块110、加速器加载模块120、截取单元121、修改单元122、加载单元123、播放控制模块130和分离模块140,其中,加速器加载模块120包括截取单元121、修改单元122和加载单元123。
具体地,视频数据流包括音频压缩数据流和视频压缩数据流,针对音频压缩数据流可以通过Flash视频播放器自身的软件解码器进行解码,虚拟视频硬件加速器只需对视频压缩数据流进行解码。分离模块140用于在***接口函数截取单元121截取视频播放器的调用请求之前对视频数据流进行分离,以获取视频数据流的音频压缩数据流和视频压缩数据流,其中,虚拟视频硬件加速器对音频压缩数据流进行解码,视频播放器的解码器对音频压缩数据流进行解码。
为了实现上述实施例,本发明又提出一种客户端。
一种客户端,包括:外壳,屏幕,处理器和电路板;屏幕安置在外壳上,电路板安置在外壳围成的空间内部,处理器设置在电路板上;处理器用于处理数据,具体用于执行以下步骤:
S101’,向视频播放器提供视频数据流。
在本发明的一个实施例中,视频播放器为Flash视频播放器。应当理解,本发明主要解决的问题是Flash视频播放器在解码时抢夺大量的***CPU与内存资源,本领域的技术人员很容易理解其他具有类似问题的视频播放器也在本发明的范围之内,在后续的说明中为了方便理解主要以Flash视频播放器为主。
具体地,用户在客户端通过浏览器类应用程序访问并加载在线视频网站,浏览器类应用程序根据加载的在线视频启动Flash视频播放器,其中Flash视频播放器可以以插件的形式存在浏览器类应用程序中,之后浏览器类应用程序从在线视频网站的服务器上获取视频数据流,并提供给Flash视频播放器。
S102’,加载虚拟视频硬件加速器,并通过虚拟视频硬件加速器对视频数据流进行解码。
其中,Flash视频播放器可以采用两种方式对视频数据流进行解码,一种是采用Flash视频播放器本身的软件解码器进行解码,另一种是访问***中的硬件解码器进行解码,其中,硬件解码器可带来更加优越的解码效率,例如,Broadcom CrystalHD Decoder(非常著名的视频解码器硬件,普通用户极少会单独购买)。所以,Flash视频播放器在获取视频数据流之后,首先会询问***中是否存在这样的硬件解码器,由于Flash视频播放器本身的软件解码器在解码时抢夺大量的CPU和内存,不希望通过Flash视频播放器本身的软件解码器进行解码,因此,加载一个虚拟视频硬件加速器,使得Flash视频播放器在询问***中是否存在硬件解码器时欺骗Flash视频播放器以通过虚拟视频硬件加速器进行解码,该虚拟视频硬件加速器可以是任何高性能的软件解码器,并具有比Flash视频播放器自身的软件解码器更加优秀的解码效果,例如FFmpeg(开源免费跨平台的视频和音频流方案,包含了非常先进的音频/视频编解码库)等。
S103’,将解码后的视频数据流反馈至视频播放器,以通过视频播放器进行播放。
具体地,Flash视频播放器会按照预设规律例如1毫秒的时间间隔询问虚拟视频硬件加速器是否解码成功,如果解码成功,则通过解码数据输出接口将解码后的视频数据流反馈至Flash视频播放器。
本发明实施例的客户端,视频播放器将视频数据流通过虚拟视频硬件加速器进行解码,极大地减少视频播放器采用自身的软件解码器解码时对资源的索取,降低CPU和内存资源的占有,另外,虚拟视频硬件加速器可以设计成更高性能的解码器,解码效率高,由此,在线视频播放效果好,用户体验好。
在本发明的一个实施例中,加载虚拟视频硬件加速器时,处理器还用于:截取视频播放器的调用请求,调用请求用于调用***接口函数,并将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径,以及恢复调用请求,并根据文件路径加载虚拟视频硬件加速器。
在本发明的一个实施例中,***接口函数可为API.LoadLibrary接口函数,用于加载***文件,该***是客户端的操作***,客户端可以是PC或移动终端,移动终端可为智能手机、平板电脑、个人数字助理、电子书等具有各种操作***的硬件设备。
具体地,Flash视频播放器通过调用***接口函数判断***中是否具有硬件解码器,***接口函数中包括硬件解码器加载文件的文件路径,在此过程中,截取视频播放器的该调用请求,并将***接口函数的调用参数中的文件路径修改为虚拟视频硬件加速器的文件路径。此外,虚拟视频硬件加速器向Flash视频播放器提供三个接口:初始化接口、数据流输入接口和解码数据输出接口,首先,Flash视频播放器对虚拟视频硬件加速器进行初始化,之后将视频数据流通过数据流输入接口传输至虚拟视频硬件加速器中进行解码。
在截取视频播放器的调用请求时,可以通过钩子函数实现。在本发明的一个实施例中,处理器还用于执行以下步骤:通过钩子函数截取视频播放器的调用请求,调用请求用于调用***接口函数,其中,钩子函数用于监控***接口函数,及在当***接口函数被调用时截取调用请求并修改***接口函数的调用参数中的文件路径。具体地,每当Flash视频播放器调用***接口函数时,在该***接口函数还没有根据文件路径调用对应的硬件解码器的加载文件之前,钩子函数先捕获该调用请求,并获取***接口函数的调用参数,以并获得对该***接口函数的控制权,并对该***接口函数的调用参数进行加工处理,例如,修改调用参数中的文件路径等。
视频数据流包括音频压缩数据流和视频压缩数据流,针对音频压缩数据流可以通过Flash视频播放器自身的软件解码器进行解码,虚拟视频硬件加速器只需对视频压缩数据流进行解码。在本发明的一个实施例中,处理器还用于执行以下步骤:在截取视频播放器的调用请求之前,通过视频播放器对视频数据流进行分离,以获取视频数据流的音频压缩数据流和视频压缩数据流,其中,虚拟视频硬件加速器对视频压缩数据流进行解码,视频播放器的解码器对音频压缩数据流进行解码。
在本发明的一个实施例中,处理器还用于:通过文件路径获取虚拟视频硬件加速器的加载文件;以及根据加载文件加载虚拟视频硬件加速器。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (18)

1.一种播放视频的方法,其特征在于,包括以下步骤:
向视频播放器提供视频数据流;
加载虚拟视频硬件加速器,并通过所述虚拟视频硬件加速器对所述视频数据流进行解码;以及
将解码后的所述视频数据流反馈至所述视频播放器,以通过所述视频播放器进行播放。
2.根据权利要求1所述的方法,其特征在于,所述加载虚拟视频硬件加速器,具体包括:
截取所述视频播放器的调用请求,所述调用请求用于调用***接口函数;
将所述***接口函数的调用参数中的文件路径修改为所述虚拟视频硬件加速器的文件路径;以及
恢复所述调用请求,并根据所述文件路径加载所述虚拟视频硬件加速器。
3.根据权利要求2所述的方法,其特征在于,所述截取所述视频播放器的调用请求,具体包括:
通过钩子函数截取所述视频播放器的所述调用请求,其中,所述钩子函数用于监控所述***接口函数,及在当所述***接口函数被调用时截取所述调用请求并修改所述***接口函数的调用参数中的文件路径。
4.根据权利要求2或3所述的方法,其特征在于,在所述截取所述视频播放器的调用请求之前,还包括:
所述视频播放器对所述视频数据流进行分离,以获取所述视频数据流的音频压缩数据流和视频压缩数据流,其中,所述虚拟视频硬件加速器对所述视频压缩数据流进行解码,所述视频播放器的解码器对所述音频压缩数据流进行解码。
5.根据权利要求2或3所述的方法,其特征在于,所述根据文件路径加载所述虚拟视频硬件加速器具体包括:
通过所述文件路径获取所述虚拟视频硬件加速器的加载文件;以及
根据所述加载文件加载所述虚拟视频硬件加速器。
6.根据权利要求1所述的方法,其特征在于,所述播放器为Flash播放器。
7.一种播放视频的装置,其特征在于,包括:
视频数据流提供模块,用于向视频播放器提供视频数据流;
加速器加载模块,用于加载虚拟视频硬件加速器,并通过所述虚拟视频硬件加速器对所述视频数据流进行解码;以及
播放控制模块,用于将解码后的所述视频数据流反馈至所述视频播放器,以通过所述视频播放器进行播放。
8.根据权利要求7所述的装置,其特征在于,所述加速器加载模块包括:
截取单元,用于截取所述视频播放器的调用请求,所述调用请求用于调用***接口函数;
修改单元,用于将所述***接口函数的调用参数中的文件路径修改为所述虚拟视频硬件加速器的文件路径;以及
加载单元,用于恢复所述调用请求,并根据所述文件路径加载所述虚拟视频硬件加速器。
9.根据权利要求8所述的装置,其特征在于,所述截取单元还用于:
通过钩子函数截取所述视频播放器的所述调用请求,其中,所述钩子函数用于监控所述***接口函数,及在当所述***接口函数被调用时截取所述调用请求并修改所述***接口函数的调用参数中的文件路径。
10.根据权利要求8或9所述的装置,其特征在于,还包括:
分离模块,用于在所述截取视频播放器的调用请求之前对所述视频数据流进行分离,以获取所述视频数据流的音频压缩数据流和视频压缩数据流,其中,所述虚拟视频硬件加速器对所述视频压缩数据流进行解码,所述视频播放器的解码器对所述音频压缩数据流进行解码。
11.根据权利要求8或9所述的装置,其特征在于,所述加载单元还用于:
通过所述文件路径获取所述虚拟视频硬件加速器的加载文件,并根据所述加载文件加载所述虚拟视频硬件加速器。
12.根据权利要求11所述的装置,其特征在于,所述播放器为Flash播放器。
13.一种客户端,其特征在于,包括:外壳,屏幕,处理器和电路板;
所述屏幕安置在所述外壳上,所述电路板安置在所述外壳围成的空间内部,所述处理器设置在所述电路板上;
所述处理器用于处理数据,具体用于:
向视频播放器提供视频数据流;
加载虚拟视频硬件加速器,并通过所述虚拟视频硬件加速器对所述视频数据流进行解码;以及
将解码后的所述视频数据流反馈至所述视频播放器,以通过所述视频播放器进行播放。
14.如权利要求13所述的客户端,其特征在于,所述处理器还用于:
截取所述视频播放器的调用请求,所述调用请求用于调用***接口函数;
将所述***接口函数的调用参数中的文件路径修改为所述虚拟视频硬件加速器的文件路径;以及
恢复所述调用请求,并根据所述文件路径加载所述虚拟视频硬件加速器。
15.如权利要求14所述的客户端,其特征在于,所述处理器还用于:
通过钩子函数截取所述视频播放器的所述调用请求,其中,所述钩子函数用于监控所述***接口函数,及在当所述***接口函数被调用时截取所述调用请求并修改所述***接口函数的调用参数中的文件路径。
16.如权利要求14或15所述的客户端,其特征在于,所述处理器还用于:
在所述截取所述视频播放器的调用请求之前,通过所述视频播放器对所述视频数据流进行分离,以获取所述视频数据流的音频压缩数据流和视频压缩数据流,其中,所述虚拟视频硬件加速器对所述视频压缩数据流进行解码,所述视频播放器的解码器对所述音频压缩数据流进行解码。
17.如权利要求14或15所述的客户端,其特征在于,所述处理器还用于:
通过所述文件路径获取所述虚拟视频硬件加速器的加载文件;以及
根据所述加载文件加载所述虚拟视频硬件加速器。
18.如权利要求13所述的客户端,其特征在于,所述播放器为Flash播放器。
CN201310392125.9A 2013-09-02 2013-09-02 播放视频的方法、装置和客户端 Active CN103428582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310392125.9A CN103428582B (zh) 2013-09-02 2013-09-02 播放视频的方法、装置和客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310392125.9A CN103428582B (zh) 2013-09-02 2013-09-02 播放视频的方法、装置和客户端

Publications (2)

Publication Number Publication Date
CN103428582A true CN103428582A (zh) 2013-12-04
CN103428582B CN103428582B (zh) 2016-09-28

Family

ID=49652637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310392125.9A Active CN103428582B (zh) 2013-09-02 2013-09-02 播放视频的方法、装置和客户端

Country Status (1)

Country Link
CN (1) CN103428582B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202659A (zh) * 2014-09-16 2014-12-10 国家计算机网络与信息安全管理中心 网络视频流乱序分段解码方法
CN105099991A (zh) * 2014-04-28 2015-11-25 北京奇虎科技有限公司 在移动终端中抓取网络数据包的方法及装置
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
WO2017100981A1 (zh) * 2015-12-14 2017-06-22 华为技术有限公司 一种处理业务的方法及***
CN107515775A (zh) * 2016-06-15 2017-12-26 华为技术有限公司 一种数据传输方法及装置
CN108235144A (zh) * 2016-12-22 2018-06-29 广州市动景计算机科技有限公司 播放内容获取方法、装置及计算设备
CN109963191A (zh) * 2017-12-14 2019-07-02 中兴通讯股份有限公司 一种视频信息的处理方法、装置及存储介质
CN113055681A (zh) * 2021-03-02 2021-06-29 长沙景嘉微电子股份有限公司 视频解码显示方法,装置,电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1932767A (zh) * 2005-09-15 2007-03-21 首都信息发展股份有限公司 一种虚拟硬件加速方法及***
CN101304521A (zh) * 2008-06-19 2008-11-12 上海交通大学 基于Flash技术的手机电视播放方法
CN101551756A (zh) * 2009-03-31 2009-10-07 成都市华为赛门铁克科技有限公司 基于操作***层的虚拟方法及虚拟装置
US20110008023A1 (en) * 2009-07-10 2011-01-13 Open Invention Network Llc Method and apparatus of creating media content
CN102404624A (zh) * 2011-11-07 2012-04-04 深圳市佳创视讯技术股份有限公司 一种数字机顶盒用支持硬件解码的全格式媒体播放器
CN102855133A (zh) * 2011-07-01 2013-01-02 云联(北京)信息技术有限公司 一种计算机处理单元交互式***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1932767A (zh) * 2005-09-15 2007-03-21 首都信息发展股份有限公司 一种虚拟硬件加速方法及***
CN101304521A (zh) * 2008-06-19 2008-11-12 上海交通大学 基于Flash技术的手机电视播放方法
CN101551756A (zh) * 2009-03-31 2009-10-07 成都市华为赛门铁克科技有限公司 基于操作***层的虚拟方法及虚拟装置
US20110008023A1 (en) * 2009-07-10 2011-01-13 Open Invention Network Llc Method and apparatus of creating media content
CN102855133A (zh) * 2011-07-01 2013-01-02 云联(北京)信息技术有限公司 一种计算机处理单元交互式***
CN102404624A (zh) * 2011-11-07 2012-04-04 深圳市佳创视讯技术股份有限公司 一种数字机顶盒用支持硬件解码的全格式媒体播放器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZU-JUE CHEN,ZHI-XIONG ZHANG,JIAN-JIANG ZHANG: "Design and implementation of video player system based on embedded system and Qt/E", 《VISUAL INFORMATION ENGINEERING,INTERNATIONAL CONFERENCE》, 1 August 2008 (2008-08-01) *
工总辉,史梳酥,陈文智: "基于虚拟化硬件3D图形加速的渲染云框架", 《电信科学》, vol. 28, no. 10, 31 October 2012 (2012-10-31) *
黄诗文: "基于ffmpeg的高性能高清流媒体播放器软件设计", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 7, 15 July 2012 (2012-07-15) *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099991B (zh) * 2014-04-28 2019-05-31 北京奇虎科技有限公司 在移动终端中抓取网络数据包的方法及装置
CN105099991A (zh) * 2014-04-28 2015-11-25 北京奇虎科技有限公司 在移动终端中抓取网络数据包的方法及装置
CN104202659B (zh) * 2014-09-16 2017-10-17 国家计算机网络与信息安全管理中心 网络视频流乱序分段解码方法
CN104202659A (zh) * 2014-09-16 2014-12-10 国家计算机网络与信息安全管理中心 网络视频流乱序分段解码方法
CN105992005A (zh) * 2015-03-04 2016-10-05 广州市动景计算机科技有限公司 视频解码方法、装置及终端设备
WO2017100981A1 (zh) * 2015-12-14 2017-06-22 华为技术有限公司 一种处理业务的方法及***
CN107515775B (zh) * 2016-06-15 2021-11-19 华为技术有限公司 一种数据传输方法及装置
CN107515775A (zh) * 2016-06-15 2017-12-26 华为技术有限公司 一种数据传输方法及装置
US11182190B2 (en) 2016-06-15 2021-11-23 Huawei Technologies Co., Ltd. Data transmission method and apparatus
US11922202B2 (en) 2016-06-15 2024-03-05 Huawei Technologies Co., Ltd. Data transmission method and apparatus
CN108235144A (zh) * 2016-12-22 2018-06-29 广州市动景计算机科技有限公司 播放内容获取方法、装置及计算设备
CN108235144B (zh) * 2016-12-22 2021-02-19 阿里巴巴(中国)有限公司 播放内容获取方法、装置及计算设备
US11070867B2 (en) 2016-12-22 2021-07-20 Alibaba Group Holding Limited Method, device, and computing apparatus for acquiring broadcasting content
CN109963191A (zh) * 2017-12-14 2019-07-02 中兴通讯股份有限公司 一种视频信息的处理方法、装置及存储介质
CN113055681A (zh) * 2021-03-02 2021-06-29 长沙景嘉微电子股份有限公司 视频解码显示方法,装置,电子设备及存储介质
CN113055681B (zh) * 2021-03-02 2024-02-09 长沙景嘉微电子股份有限公司 视频解码显示方法,装置,电子设备及存储介质

Also Published As

Publication number Publication date
CN103428582B (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
CN103428582A (zh) 播放视频的方法、装置和客户端
CN111240837B (zh) 资源配置方法、装置、终端及存储介质
US11297377B2 (en) Passive data collection from third-party channel applications
EP3046331B1 (en) Media control method and system based on cloud desktop
CA2814420C (en) Load balancing between general purpose processors and graphics processors
KR101933557B1 (ko) 액티비티 협력을 위한 동반 애플리케이션
US9979772B2 (en) Data streaming method of an electronic device and the electronic device thereof
WO2020248909A1 (zh) 视频解码方法、装置、计算机设备及存储介质
WO2022188595A1 (zh) 应用画面的显示方法、装置、终端、投屏***及介质
US20160191627A1 (en) Method and apparatus for execution of applications in a cloud system
US10805570B2 (en) System and method for streaming multimedia data
WO2021143182A1 (zh) 游戏的处理方法、装置、电子设备及计算机可读存储介质
CN109542614B (zh) 资源配置方法、装置、终端及存储介质
AU2019256257B2 (en) Processor core scheduling method and apparatus, terminal, and storage medium
CN114501062A (zh) 视频渲染协同方法、装置、设备及存储介质
US20240214635A1 (en) Computing device upgrading system over a wireless network
CN107846624B (zh) 视频画质调整方法、装置、终端设备及存储介质
US9374413B2 (en) Client terminal, server, and distributed processing method
US11134114B2 (en) User input based adaptive streaming
CN105727556A (zh) 一种图像绘制的方法、相关设备及***
WO2011135554A1 (en) Method and apparatus for allocating content components to different hardware interfaces
US20110307310A1 (en) Method and apparatus for receiving unsolicited content
KR102231875B1 (ko) 응용 프로그램의 스트리밍 영상 제공 장치 및 방법
CN113765886B (zh) 多媒体播放方法、装置、存储介质及电子设备
US9609365B2 (en) Application execution on a server for a television device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181210

Address after: 519030 Room 105-53967, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee after: Zhuhai Leopard Fun Technology Co.,Ltd.

Address before: 100041 A-0071 2, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Co-patentee before: Beijing Cheetah Network Technology Co.,Ltd.

Patentee before: Beijing Cheetah Mobile Technology Co.,Ltd.

Co-patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Co-patentee before: ZHUHAI JUNTIAN ELECTRONIC TECHNOLOGY Co.,Ltd.

Co-patentee before: CONEW NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.

Effective date of registration: 20181210

Address after: 100041 A-0071 2, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Co-patentee after: Beijing Cheetah Network Technology Co.,Ltd.

Patentee after: Beijing Cheetah Mobile Technology Co.,Ltd.

Co-patentee after: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Co-patentee after: ZHUHAI JUNTIAN ELECTRONIC TECHNOLOGY Co.,Ltd.

Co-patentee after: CONEW NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 100041 room 3, 3 West well road, Badachu hi tech park, Shijingshan District, Beijing, 1100A

Co-patentee before: BEIJING KINGSOFT NETWORK TECHNOLOGY Co.,Ltd.

Patentee before: SHELL INTERNET (BEIJING) SECURITY TECHNOLOGY Co.,Ltd.

Co-patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Co-patentee before: ZHUHAI JUNTIAN ELECTRONIC TECHNOLOGY Co.,Ltd.

Co-patentee before: CONEW NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.