CN102395051B - 一种视频播放器系统及其开发、安装运行方法 - Google Patents
一种视频播放器系统及其开发、安装运行方法 Download PDFInfo
- Publication number
- CN102395051B CN102395051B CN201110348421.XA CN201110348421A CN102395051B CN 102395051 B CN102395051 B CN 102395051B CN 201110348421 A CN201110348421 A CN 201110348421A CN 102395051 B CN102395051 B CN 102395051B
- Authority
- CN
- China
- Prior art keywords
- video player
- decoder
- development
- module
- processor
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种视频播放器系统及其开发、安装运行方法,其安装运行方法包括如下步骤:自动判断当前处理器的类型;以及按需安装本地或者服务器上经过汇编优化的解码器模块,通过本发明,不仅使用户具有流畅播放视频文件的用户体验,而且本发明还具有减少播放器发布时的安装包的数量、支持解码器的在线独立升级,减少开发、维护成本,方便进行协同开发等优点。
Description
技术领域
本发明涉及一种视频播放器系统及其开发、安装运行方法,特别是涉及一种应用于移动终端设备的播放器系统及其开发、安装运行方法。
背景技术
当今视频编码标准为了追求更高的压缩率,导致其算法复杂度越来越高,由于移动终端设备的处理器能力十分有限,为了达到流畅的播放效果,故有必要在特定的处理器平台上对解码器进行汇编优化。
由于移动终端设备所采用的处理器架构种类繁多,如ARM、MIPS、X86等,且同一架构又有不同的版本,如ARM处理器有ARMv5、ARMv6、ARMv7等不同的版本,不同的版本支持不同的指令集。针对此种情况,在做解码器汇编优化时,一般所采用的方法如图1所示,即:针对不同的处理器平台(平台1,平台2...平台n),使用静态的人工区别的方法来设定采用哪种汇编语言的优化,在代码开发阶段,使用不同的宏定义进行代码隔离、区分;在代码编译阶段,根据目标处理器的类型,使能对应处理器的宏开关,从而达到在程序运行阶段能够调用汇编优化代码以提高解码速度的目的。
然而,采用上述方法却存在如下不足之处:一、在开发过程中,由于为了支持种类繁多的处理器类型,程序中会存在大量杂乱的条件编译指令,从而导致开发以及后续维护难度的直线上升;二、针对不同的处理器平台,需要分别生成、发布不同的安装包,增加了企业的维护成本;三、如果编译人员失误使用了错误的编译选项,或者发布人员发布了错误平台类型的安装包,则会导致用户手中的程序会直接崩溃,根本无法运行。
发明内容
为克服上述现有技术视频播放器之解码器汇编优化时存在的种种缺点,本发明的主要目的在于提供一种视频播放器系统及其开发、安装运行方法,其不仅可以流畅播放视频文件,而且具有减少播放器发布时的安装包的数量、支持解码器的在线独立升级的优点,减少了开发、维护成本,并方便程序员进行协同开发。
为达上述及其它目的,本发明提出一种视频播放器系统,至少包括:
基准解码器开发模块,根据视频播放器产品需求,利用平台无关的编程语言开发出基准解码器,将解码器需要优化的关键模块封装成独立动态加载的共享库,定义统一的接口;
解码器优化模块,根据具体的处理器特性进行该些关键模块的优化开发;以及
发布模块,仅发布只包含最基本特性的播放器,其余平台的解码器优化模块则以独立的安装包独立发布。
进一步地,该基准解码器开发模块至少保证有一个原始代码的版本。
进一步地,该解码器优化模块在进行针对特定平台的汇编优化时,只需交付符合接口规范和满足功能需求的共享库,并最终以独立的安装包形式向用户提供。
进一步地,该视频播放器系统还包括一处理器类型动态获取模块,该处理器类型动态获取模块在程序初始化时,根据分析终端操作系统所提供的处理器相关的设备文件,来获取相应的硬件信息,并提供相应的接口供应用程序来获取处理器的种类及所支持的特性。
为达上述及其它目的,本发明一种视频播放器开发方法,包括如下步骤:
根据视频播放器产品需求,利用平台无关的编程语言开发出基准解码器,将解码器需要优化的关键模块封装成独立动态加载的共享库,定义统一的接口;
根据具体的处理器特性进行该些关键模块的优化开发;以及
软件发布,仅发布只包含最基本特性的播放器。
进一步地,该视频播放器开发方法还包括开发能在运行时动态探测处理器类型的功能模块的步骤。
进一步地,在进行针对特定平台的汇编优化时,只需交付符合接口规范和满足功能需求的共享库,并最终以独立的安装包形式向用户提供。
为达上述及其它目的,本发明提供一种视频播放器的安装运行方法,包括如下步骤:
自动判断当前处理器的类型;以及
按需安装本地或者服务器上经过汇编优化的视频解码器模块。
进一步地,在该视频播放器被安装以后运行时,该视频播放器会查找是否存在优化版本的解码器,若不存在则会提示进行在线或者离线安装该平台的解码器安装包;当选择否时,则会采用默认的解码器进行播放。
进一步地,若安装了错误版本的解码器,该播放器会在探测过程中发现该处理器不支持此特性而自动忽略。
与现有技术相比,本发明一种视频播放器系统及其开发、安装运行方法通过自动判断当前处理器的类型,并按需安装本地或者服务器上经过汇编优化的视频解码器模块,从而达到流畅播放的用户体验的目的;采用本发明后,开发人员可以方便对同一解码器同时进行多平台的优化,保证了开发进度和代码质量,降低了最终产品发布版本的数量,降低了部署维护成本,同时方便了播放器的部分特性更新。
附图说明
图1为现有技术中视频解码器汇编优化采用的方法示意图;
图2为本发明一种视频播放器系统的系统架构图;
图3为本发明之视频播放器系统的开发与发布过程示意图;
图4为本发明一种视频播放器开发方法之步骤流程图;
图5为本发明一种视频播放器安装运行方法之步骤流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图2为本发明一种视频播放器系统的系统架构图,图3为本发明之视频播放器系统的开发与发布过程示意图。请一并参照图2及图3,本发明之视频播放器系统包括:基准解码器开发模块201、解码器优化模块202以及发布模块203。
基准解码器开发模块201根据播放器产品需求,利用平台无关的编程语言开发出基准解码器,将解码器需要优化的关键模块封装独立成动态加载的共享库,定义统一的接口,并保证至少有一个原始代码的版本;解码器优化模块202,根据具体的处理器特性进行这些关键模块的优化开发,在进行针对特定平台的汇编优化时,不需要考虑同其它版本的代码并存的问题,只需交付符合接口规范和满足功能需求的共享库,并最终以独立的安装包形式向用户提供;发布模块203,发布只包含最基本特性的播放器以保证产品的普适性。需说明的是,在播放器初次运行时,经由上面的动态判断方法,会提示用户安装适合该设备类型的解码器安装包。
较佳的,本发明之视频播放器系统还包括一处理器类型动态获取模块204,处理器类型动态获取模块204在程序初始化时,根据分析终端操作系统所提供的处理器相关的设备文件,来获取相应的硬件信息,并提供相应的接口供应用程序来获取处理器的种类、所支持的特性,以开发出能在运行时动态探测处理器类型的功能模块。
对于本发明之视频播放器,安装有两种可选方式:一种是离线安装,用户在本地将解码器安装包作为普通应用程序安装;另一种方式是,在网络连通的条件下,也可以选择从服务器端进行在线安装。经过安装后,播放器就可以使用优化过的解码器来获得较好的解码速度。
如果安装了错误的解码器,播放器在运行过程中会发现错误,则仍使用原始解码库,并给用户以提示,确保程序的正常运行。
视频播放器发现新版本的解码器时,也会提示用户是否安装,用户只需下载即可,而无需重新安装整个播放器程序。
图4为本发明一种视频播放器开发方法之步骤流程图,如图4所示,本发明一种播放器开发方法包括如下步骤:根据播放器产品需求,开发出利用平台无关的C编程语言实现的基准解码器,将解码器模块中的性能关键模块独立成动态共享库(如Linux操作系统下的so动态共享库),定义接口标准和功能规范,并且实现播放器对此类模块的运行时显式加载的支持(例如Linux操作系统下的dlopen方式)(步骤401);然后,根据具体的处理器特性进行这些关键模块的优化开发(步骤402),比如支持NEON指令集的ARMv7架构处理器上,开发人员会采用NEON指令集进行解码器的汇编优化,并以基准解码器作为验证正确性和对比性能的依据,而在仅支持ARMv6指令集的处理器上,开发人员会采用相应的ARMv6多媒体指令集进行优化;最后,进行软件发布(步骤403),在发布过程中,仅发布一个播放器版本,其中的解码器优化模块为在目标平台上具有最大兼容性的版本,如只在ARM平台上运行该播放器,则发布ARMv5TE版本,更新的平台(如ARMv6、ARMv7)会向后兼容此指令集,其余平台的解码器优化模块则以独立的安装包独立发布,供用户在使用时自行下载、安装。
较佳的,本发明之视频播放器开发方法还包括开发一能在运行时动态探测处理器类型的功能模块。其具体实现方式例如,在运行Linux操作系统的设备上,可以通过对设备文件/proc/cpuinfo的解析,来获取当前处理的类型和所支持的特性,然后提供相应的接口供其它模块运行时判断当前处理的类型和特性。
图5为本发明一种视频播放器安装运行方法之步骤流程图。如图5所示,本发明一种视频播放器之安装运行方法包括如下步骤:自动判断当前处理器的类型(步骤501);按需安装本地或者服务器上经过汇编优化的视频解码器模块(步骤502)。
在本发明之视频播放器被安装以后运行时,播放器会查找是否存在优化版本的解码器,如果不存在则会提示用户进行在线或者离线安装该平台的解码器安装包,用户可以选择是或者否,不安装则会采用默认的解码器进行播放。同时,如果用户安装了错误版本的解码器,播放器在探测过程中也会发现该处理器不支持此特性而自动忽略,不会造成程序的崩溃。
另外,当解码器由于解决了BUG或者提供更好的优化效果而发布新的安装包时,用户只需安装新的解码器安装包即可,无需重新安装整个播放器程序。
综上所述,本发明一种视频播放器系统及其开发、安装运行方法通过自动判断当前处理器的类型,并按需安装本地或者服务器上经过汇编优化的视频解码器模块,从而达到流畅播放的用户体验的目的;采用本发明后,开发人员可以方便对同一解码器同时进行多平台的优化,保证了开发进度和代码质量,降低了最终产品发布版本的数量,降低了部署维护成本,同时方便了播放器的部分特性更新。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (7)
1.一种视频播放器系统,至少包括:
基准解码器开发模块,根据视频播放器产品需求,利用平台无关的编程语言开发出基准解码器,将解码器需要优化的关键模块封装成独立动态加载的共享库,定义统一的接口;
解码器优化模块,根据具体的处理器特性进行该些关键模块的优化开发;以及
发布模块,仅发布只包含最基本特性的视频播放器,其余平台的解码器优化模块则以独立的安装包独立发布。
2.如权利要求1所述的视频播放器系统,其特征在于:该基准解码器开发模块至少保证有一个原始代码的版本。
3.如权利要求1所述的视频播放器系统,其特征在于:该解码器优化模块在进行针对特定平台的汇编优化时,只需交付符合接口规范和满足功能需求的共享库,并最终以独立的安装包形式向用户提供。
4.如权利要求1所述的视频播放器系统,其特征在于:该视频播放器系统还包括一处理器类型动态获取模块,该处理器类型动态获取模块在程序初始化时,根据分析终端操作系统所提供的处理器相关的设备文件,来获取相应的硬件信息,并提供相应的接口供应用程序来获取处理器的种类及所支持的特性。
5.一种视频播放器开发方法,包括如下步骤:
根据播放器产品需求,利用平台无关的编程语言开发出基准解码器,将解码器需要优化的关键模块封装成独立动态加载的共享库,定义统一的接口;
根据具体的处理器特性进行该些关键模块的优化开发,并最终以独立的安装包形式向用户提供;以及
软件发布,仅发布只包含最基本特性的视频播放器。
6.如权利要求5所述的视频播放器开发方法,其特征在于:该播放器开发方法还包括开发能在运行时动态探测处理器类型的功能模块的步骤。
7.如权利要求5所述的视频播放器开发方法,其特征在于:在进行针对特定平台的汇编优化时,只需交付符合接口规范和满足功能需求的共享库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110348421.XA CN102395051B (zh) | 2011-11-07 | 2011-11-07 | 一种视频播放器系统及其开发、安装运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110348421.XA CN102395051B (zh) | 2011-11-07 | 2011-11-07 | 一种视频播放器系统及其开发、安装运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102395051A CN102395051A (zh) | 2012-03-28 |
CN102395051B true CN102395051B (zh) | 2014-01-29 |
Family
ID=45862246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110348421.XA Active CN102395051B (zh) | 2011-11-07 | 2011-11-07 | 一种视频播放器系统及其开发、安装运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102395051B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019686B (zh) * | 2012-11-20 | 2016-11-23 | 北京思特奇信息技术股份有限公司 | 一种跨两个中间件的系统及其编译方法 |
CN105491450A (zh) * | 2014-10-09 | 2016-04-13 | 乐视致新电子科技(天津)有限公司 | 一种智能电视故障问题处理方法、装置及系统 |
CN110087114A (zh) * | 2019-05-10 | 2019-08-02 | 王东 | 一种视频控制智能设备互动系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247344A (zh) * | 2008-03-28 | 2008-08-20 | 中国电信股份有限公司 | 一种支持多iptv业务平台的接入方法和iptv终端设备 |
CN101567206A (zh) * | 2009-05-26 | 2009-10-28 | 北京北纬通信科技股份有限公司 | 支持音视频解码自适应的系统及其方法 |
CN101833465A (zh) * | 2010-04-23 | 2010-09-15 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式系统 |
-
2011
- 2011-11-07 CN CN201110348421.XA patent/CN102395051B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247344A (zh) * | 2008-03-28 | 2008-08-20 | 中国电信股份有限公司 | 一种支持多iptv业务平台的接入方法和iptv终端设备 |
CN101567206A (zh) * | 2009-05-26 | 2009-10-28 | 北京北纬通信科技股份有限公司 | 支持音视频解码自适应的系统及其方法 |
CN101833465A (zh) * | 2010-04-23 | 2010-09-15 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102395051A (zh) | 2012-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795652B2 (en) | Generating native code from intermediate language code for an application | |
Gebhart et al. | Running PARSEC 2.1 on M5 | |
CN103493016B (zh) | 电子设备及将应用程序安装到虚拟化环境中的方法 | |
US9158521B2 (en) | Automatic provisioning of a software platform to a device ecosystem | |
US9146713B2 (en) | Tool composition for supporting openCL application software development for embedded system and method thereof | |
CN102279765A (zh) | 预编译托存托管代码 | |
CN102355603B (zh) | 基于有线数字电视机顶盒中间件系统 | |
US9210211B2 (en) | Remote automated updates for an application | |
CN102395051B (zh) | 一种视频播放器系统及其开发、安装运行方法 | |
CN104461582A (zh) | 业务处理方法、装置以及设备 | |
CN102364442B (zh) | 将Wine从x86移植到ARM平台的方法 | |
WO2015014143A1 (en) | Method and apparatus for cross-platform application conversion | |
Yener et al. | Expert Android Studio | |
CN102196308B (zh) | 一种基于数字电视的多硬件接口兼容驱动系统 | |
CN102364433A (zh) | 在ARM处理器上实现Wine构建工具移植的方法 | |
CN103577226A (zh) | 一种IOS和Android平台上的组件式游戏构建方法 | |
US11841731B2 (en) | Cloud plugin for legacy on-premise application | |
Bouchard | Multimedia software for mobile phones | |
US20130159122A1 (en) | Optimizer as an appstore service | |
CN106126211A (zh) | 一种支持调试接口的mcu在线编程系统 | |
Nagesh et al. | Cross-platform mobile application development | |
CN114253554A (zh) | 一种代码处理方法、装置及存储介质 | |
Anderson | Beginning Flash, Flex, and AIR Development for Mobile Devices | |
Chugh et al. | Design and Implementation of Android Music Player | |
Zhang et al. | A design of embedded multimedia player based on WINCE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 201206 B unit, West Third, building 27, new Jinqiao Road, No. 13, Shanghai, Pudong Applicant after: Shanghai Wondertek Software Co., Ltd. Address before: 201206 B unit, West Third, building 27, new Jinqiao Road, No. 13, Shanghai, Pudong Applicant before: Shanghai Wondertek Software Co.,Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |