著录项信息
专利名称 | 多媒体工程及对第三方库文件进行编译的系统和方法 |
申请号 | CN200810115407.3 | 申请日期 | 2008-06-23 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2008-10-29 | 公开/公告号 | CN101295263 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/45 | IPC分类号 | G;0;6;F;9;/;4;5查看分类表>
|
申请人 | 北京中星微电子有限公司 | 申请人地址 | 江苏省南通市通州区世纪大道999号6层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 江苏达海智能系统股份有限公司 | 当前权利人 | 江苏达海智能系统股份有限公司 |
发明人 | 王成刚 |
代理机构 | 北京同达信恒知识产权代理有限公司 | 代理人 | 黄志华 |
摘要
本发明公开了一种多媒体工程的编译系统,包括第三方库文件编译模块,对第三方库文件进行编译生成第三方动态链接库文件;链接模块,将FFmpeg本身库文件和第三方动态链接库文件链接,生成信息库文件;图形化编译平台模块,将FFmpeg源文件和生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件,再将可执行文件及信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。本发明还公开了对应的编译方法及对第三方库文件进行编译的系统和方法。本发明实现了对FFmpeg的图形化编译,解决了采用全命令行进行编译难以上手的问题。
1.一种FFmpeg工程的编译系统,其特征在于,包括:
第三方库文件编译模块,用于在支持FFmpeg的编译环境下,对第三方库文件进行编译,生成对应的第三方动态链接库文件;
链接模块,用于将FFmpeg本身库文件和第三方库文件编译模块生成的第三方动态链接库文件链接,生成包含有第三方动态链接库文件信息和FFmpeg本身库文件信息的信息库文件;
图形化编译平台模块,用于在预设的图形化编译环境下,将FFmpeg源文件和链接模块生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件;将编译生成的可执行文件及链接模块生成的信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。
2.如权利要求1所述的系统,其特征在于,还包括:
调试信息接收模块,用于在对第三方库文件进行编译前,接收用户输入的用于调试第三方库文件的调试信息;
调试信息加入模块,用于将调试信息接收模块接收到的用于调试第三方库文件的调试信息加入到编译前的第三方库文件中。
3.如权利要求1所述的系统,其特征在于,所述的图形化编译平台模块具体包括: 编译子模块,用于在预设的图形化编译环境下,将FFmpeg源文件以及链接模块生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件;
展开子模块,用于将编译子模块编译生成的可执行文件及链接模块生成的信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。
4.如权利要求2所述的系统,其特征在于,所述调试信息加入模块通过写命令行方式、或通过写脚本方式将用于调试第三方库文件的调试信息加入到 第三方库文件中。
5.一种FFmpeg工程的编译方法,其特征在于,包括:
在支持FFmpeg的编译环境下,将第三方库文件编译成为第三方动态链接库文件;
链接第三方动态链接库文件和FFmpeg本身库文件,生成包含有第三方动态链接库文件信息和FFmpeg本身库文件信息的信息库文件;
在预设的图形化编译环境下,将FFmpeg源文件和信息库文件中的FFmpeg本身库文件信息编译成可执行文件;
将编译生成的可执行文件及信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。
6.如权利要求5所述的方法,其特征在于,在将第三方库文件编译成为第三方动态链接库文件之前,还包括步骤:
接收用户输入的用于调试第三方库文件的调试信息;
将接收到的用于调试第三方库文件的调试信息加入到第三方库文件中。
7.如权利要求6所述的方法,其特征在于,通过写命令行方式、或写脚本方式将接收到的用于调试第三方库文件的调试信息加入到第三方库文件中。
多媒体工程及对第三方库文件进行编译的系统和方法 \n技术领域\n[0001] 本发明涉及多媒体技术领域,尤其涉及一种FFmpeg工程的编译系统和方法,以及一种对第三方库文件进行编译的系统和方法。 \n背景技术\n[0002] FFmpeg是一个在Linux下开发的开源免费项目,它提供了录制、转换以及流化音、视频的完整解决方案,支持绝大部分常见的多媒体文件格式,例如支持常见的以mpeg、AVI格式封装的DIVX文件或Xvid文件等等。由于FFmpeg是基于Linux开发的,其源代码与Windows下最常见的Visual Studio提供的C/C++编译器并不兼容,因此想要使用FFmpeg,最先要解决的问题就是在Windows下配置一个类似Linux的编译环境。在现有技术中,这一编译环境是采用MSys+MinGW系统来实现的,其中MSys的全称是Minimalist GNUSystem on Windows,是Windows下最优秀的GNU环境;而MinGW的全称是Minimalist GNU for Windows,是运行在Windows平台上的一种GCC(GNUCompiler C)编译器,MSys+MinGW系统就是指利用编码器MinGW在编译环境MSys下进行编译。 \n[0003] MSys+MinGW系统的配置可以通过在Windows下的安装和整合来实现,而如果要在该系统中使用FFmpeg,还需要对FFmpeg进行编译,重新生成FFmpeg工程。 [0004] FFmpeg工程的生成是通过整合FFmpeg源文件、FFmpeg本身库文件和第三方库文件来实现的。其中FFmpeg源文件包含FFmpeg源代码和一些控制代码;FFmpeg本身库文件包含编码方式部分、格式部分及控制部分,该三个部分被对应编译成三个库,这三个库可以在重新生成FFmpeg工程时被调用;而 第三方库文件可以是任意支持FFmpeg的库文件,可以是静态库文件也可以是动态库文件,在链接第三方库文件和FFmpeg本身库文件时,为了避免修改FFmpeg中的源代码,通常都会对第三方库文件进行编译,生成第三方动态链接库文件。 \n[0005] 重新生成FFmpeg工程的过程可以简单表示为如图1所示:首先配置编译环境(步骤10);然后将第三方库文件编译成第三方动态链接库文件(步骤20);再进行链接第三方动态链接库文件和FFmpeg本身库文件,生成信息库文件Library1(步骤30);最后整合信息库文件Library1和FFmpeg源文件,生成FFmpeg工程(步骤40)。 \n[0006] 在上述过程中,由于FFmpeg源文件中的FFmpeg源代码是存放在一个免费的、开放源码的版本控制系统(SVN,Subversion)中的,因此,只能采用命令行的操作对FFmpeg源文件进行访问,而命令行的操作方式较为复杂,这使得习惯在集成开发环境(IDE,Integrated Development Environment)下工作的人员难于上手;此外,在此过程中,由于对第三方库文件只是进行了简单的编译,而没有提出调试的方法,因此导致整合了第三方库文件在内的FFmpeg工程无法实现完全调试和编译,从而操作人员只能从FFmpeg工程海量的源代码中理解工程的工作原理,而不能实现对FFmpeg源代码的实时跟踪。 \n发明内容\n[0007] 本发明提供了一种FFmpeg工程的编译系统和方法,用以解决现有技术中编译方案采用全命令行方式而难于上手的问题。 \n[0008] 本发明提供了一种对第三方库文件进行编译的系统和方法,用以解决现有技术中只能对第三方库文件进行编译,而无法对其进行调试的问题。 \n[0009] 为此,本发明采用如下方案: \n[0010] 一种FFmpeg工程的编译系统,包括:第三方库文件编译模块,用于在支持FFmpeg的编译环境下,对第三方库文件进行编译,生成对应的第三方动态 \n[0011] 链接库文件;链接模块,用于将FFmpeg本身库文件和第三方库文件编译模块生成的第三方动态链接库文件链接,生成包含有第三方动态链接库文件信息和FFmpeg本身库文件信息的信息库文件; \n[0012] 图形化编译平台模块,用于在预设的图形化编译环境下,将FFmpeg源文件和链接模块生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件; [0013] 将编译生成的可执行文件及链接模块生成的信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。 \n[0014] 其中所述的编译系统还包括: \n[0015] 调试信息接收模块,用于在对第三方库文件进行编译前,接收用户输入的用于调试第三方库文件的调试信息; \n[0016] 调试信息加入模块,用于将调试信息接收模块接收到的用于调试第三方库文件的调试信息加入到编译前的第三方库文件中。 \n[0017] 一种FFmpeg工程的编译方法,包括: \n[0018] 在支持FFmpeg的编译环境下,将第三方库文件编译成为第三方动态链接库文件; [0019] 链接第三方动态链接库文件和FFmpeg本身库文件,生成包含有第三方动态链接库文件信息和FFmpeg本身库文件信息的信息库文件; \n[0020] 在预设的图形化编译环境下,将FFmpeg源文件和信息库文件中的FFmpeg本身库文件信息编译成可执行文件; \n[0021] 将编译生成的可执行文件及信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。 [0022] 其中所述的在将第三方库文件编译成为第三方动态链接库文件之前,还包括步骤: [0023] 接收用户输入的用于调试第三方库文件的调试信息; \n[0024] 将接收到的用于调试第三方库文件的调试信息加入到第三方库文件中。 [0025] 本发明对FFmpeg工程的编译方案采用在图形化的编译环境下,对FFmpeg工程进行编译,从而可以避免现有技术中对FFmpeg工程的编译采用全命令行方式而难于上手的弊端,使得对FFmpeg工程的编译大大简化,易于上手。 \n[0026] 本发明对第三方库文件进行编译的方案通过在第三方库文件中加入调试信息的方法,使第三方库文件实现可调试,从而使操作人员在对FFmpeg工程进行重建的过程中,能实现源代码的实时跟踪。 \n[0027] 附图说明\n[0028] 图1为现有技术中生成FFmpeg工程的流程图; \n[0029] 图2为本发明方案中提供的一种FFmpeg工程编译系统组成结构示意图; [0030] 图3为本发明方案中提供的图形化编译平台模块的组成结构示意图; [0031] 图4为本发明方案中提供的一种FFmpeg工程编译方法流程图; \n[0032] 图5为本发明方案中提供的又一种FFmpeg工程编译系统组成结构示意图; [0033] 图6为本发明方案中提供的又一种FFmpeg工程编译方法流程图。 [0034] 具体实施方式\n[0035] 本发明实施例首先提出一种FFmpeg工程的编译方案,可以实现对FFmpeg工程的图形化编译,从而解决现有技术中对FFmpeg工程的编译方案采用全命令行方式而难于上手的问题。 \n[0036] 如图2所示,为本发明实施例提出的一种FFmpeg工程编译系统的组成结构示意图。该系统包括三个模块:第三方库文件编译模块100、链接模块200以及图形化编译平台模块300。其中各个组成部分的具体作用如下: \n[0037] 第三方库文件编译模块100,用于在预设的支持FFmpeg的编译环境下, 对第三方库文件进行编译,生成对应的第三方动态链接库文件; \n[0038] 链接模块200,用于将FFmpeg本身库文件和由第三方库文件编译模块100生成的第三方动态链接库文件进行链接,生成包含有第三方动态链接库文件信息和FFmpeg本身库文件信息的信息库文件; \n[0039] 图形化编译平台模块300,用于在预设的图形化编译环境下,将FFmpeg源文件和由链接模块200生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件,以及将编译生成的可执行文件及由链接模块200生成的信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。 \n[0040] 基于图形化编译平台模块300的具体工作原理,本发明实施例提出的图形化编译平台模块300的具体组成结构如图3所示,包括: \n[0041] 编译子模块301,用于在预设的图形化编译环境下,将FFmpeg源文件和由链接模块200生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件; [0042] 展开子模块302,用于将编译子模块301编译生成的可执行文件及由链接模块200生成的信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。 \n[0043] 相应的,本发明实施例还提出了一种FFmpeg工程编译方法,其具体实现流程如图\n4所示,该方法的具体实现过程如下: \n[0044] 步骤41,在预设的支持FFmpeg的编译环境下,对第三方库文件进行编译,生成对应的第三方动态链接库文件; \n[0045] 步骤42,链接上述生成的第三方动态链接库文件和FFmpeg本身库文件,生成包含有第三方动态链接库文件信息和FFmpeg本身库文件信息的信息库文件Library2; [0046] 步骤43,在预设的图形化编译环境下,将FFmpeg源文件和上述生成的信息库文件Library2中的FFmpeg本身库文件信息编译成可执行文件; \n[0047] 步骤44,将上述编译生成的可执行文件及信息库文件Library2中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。 \n[0048] 再次,本发明实施例提出了另一种FFmpeg工程的编译方案,不仅可以实现对FFmpeg工程的图形化编译,还同时能实现对FFmpeg工程的调试。 \n[0049] 如图5所示,为本发明实施例提出的又一种FFmpeg工程编译系统的组成结构示意图。该系统包括:调试信息接收模块1000,调试信息加入模块2000,第三方库文件编译模块\n3000、链接模块4000以及图形化编译平台模块5000。其中各个组成部分的具体作用如下: [0050] 调试信息接收模块1000,用于接收用户输入的用于调试第三方库文件的调试信息; \n[0051] 调试信息加入模块2000,用于在预设的支持FFmpeg的编译环境下,将调试信息接收模块接收到的用于调试第三方库文件的调试信息加入到第三方库文件中,生成带有可调试信息的第三方库文件; \n[0052] 第三方库文件编译模块3000,用于对调试信息加入模块2000生成的带有可调试信息的第三方库文件进行编译,生成对应的第三方动态链接库文件; \n[0053] 链接模块4000,用于将第三方库文件编译模块3000生成的第三方动态链接库文件与FFmpeg本身库文件进行链接,生成包含有第三方动态链接库文件信息和FFmpeg本身库文件信息的信息库文件; \n[0054] 图形化编译平台模块5000,用于在预设的图形化编译环境下,将FFmpeg源文件和由链接模块4000生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件,以及将编译生成的可执行文件及由链接模块4000生成的信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。 \n[0055] 其中,调试信息加入模块2000将用于调试第三方库文件的调试信息加入到第三方库文件中的方式是,将用于调试第三方库文件的调试信息写入到第三 方库文件中,并且,将用于调试第三方库文件的调试信息写入到第三方库文件中的方式包括但不限于为: [0056] 写命令行的方式; \n[0057] 写脚本的方式。 \n[0058] 基于图形化编译平台模块5000的具体工作原理,本发明实施例提出的图形化编译平台模块5000的具体组成结构具体包括: \n[0059] 编译子模块,用于在预设的图形化编译环境下,将FFmpeg源文件和由链接模块\n4000生成的信息库文件中的FFmpeg本身库文件信息编译成可执行文件; [0060] 展开子模块,用于将编译子模块编译生成的可执行文件和由链接模块4000生成的信息库文件中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方动态链接库文件各自对应的编译前源码。 \n[0061] 相应的,本发明实施例还提出了另一种FFmpeg工程编译方法,如图6所示,为本发明实施例提出的又一种FFmpeg工程编译方法流程图。该方法的具体实现过程如下: [0062] 步骤601,接收用户输入的用于调试第三方库文件的调试信息; [0063] 步骤602,在预设的支持FFmpeg的编译环境下,将接收到的用于调试第三方库文件的调试信息加入到第三方库文件中; \n[0064] 步骤603,将加入了调试信息的第三方库文件编译成为第三方动态链接库文件; [0065] 步骤604,链接上述生成的第三方动态链接库文件和FFmpeg本身库文件,生成信息库文件Library3; \n[0066] 步骤605,在预设的图形化编译环境下,将FFmpeg源文件和信息库文件Library3中的FFmpeg本身库文件信息编译成可执行文件; \n[0067] 步骤606,将上述编译生成的可执行文件及信息库文件Library3中的第三方动态链接库文件信息展开,得到FFmpeg源文件、FFmpeg本身库文件及第三方 动态链接库文件各自对应的编译前源码。 \n[0068] 其中,将调试信息加入到第三方库文件中的方式是将调试信息写入到第三方库文件中,并且将调试信息写入到第三方库文件中的方式包括但不限于为: [0069] 写命令行的方式; \n[0070] 写脚本的方式。 \n[0071] 本发明实施例还提出了一种第三方库文件的编译方法,通过在第三方库文件中加入调试信息,实现第三方库文件的可调试。 \n[0072] 本发明实施例提出的对第三方库文件进行编译的方法包括步骤: [0073] 接收用户输入的用于调试第三方库文件的调试信息; \n[0074] 将接收到的用于调试第三方库文件的调试信息加入到第三方库文件中。 [0075] 其中,将接收到的用于调试第三方库文件的调试信息加入到第三方库文件中的方式是:将接收到的用于调试第三方库文件的调试信息写入到第三方库文件中,并且将接收到的用于调试第三方库文件的调试信息写入到第三方库文件中的方式包括但不限于为: [0076] 写命令行的方式; \n[0077] 写脚本的方式。 \n[0078] 相应的,本发明实施例还提出了一种对第三方库文件进行编译的系统,包括: [0079] 调试信息接收模块,用于接收用户输入的用于调试第三方库文件的调试信息; [0080] 调试信息加入模块,用于将调试信息接收模块接收到的用于调试第三方库文件的调试信息加入到第三方库文件中。 \n[0081] 其中,将用于调试第三方库文件的调试信息加入到第三方库文件中的方式是:将用于调试第三方库文件的调试信息写入到第三方库文件中,并且将用于调试第三方库文件的调试信息写入到第三方库文件中的方式包括但不限于为: \n[0082] 写命令行的方式; \n[0083] 写脚本的方式。 \n[0084] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
法律信息
- 2014-12-10
专利权的转移
登记生效日: 2014.11.20
专利权人由无锡中星微电子有限公司变更为江苏达海智能系统股份有限公司
地址由214028 江苏省无锡市新区长江路21-1号国家集成电路设计园(创源大厦)变更为226300 江苏省南通市通州区世纪大道999号6层
- 2011-04-06
- 2011-03-23
专利申请权的转移
登记生效日: 2011.01.27
申请人由北京中星微电子有限公司变更为无锡中星微电子有限公司
地址由100083 北京市海淀区学院路35号世宁大厦15层变更为214028 江苏省无锡市新区长江路21-1号国家集成电路设计园(创源大厦)
- 2009-03-04
- 2008-10-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |