使用ffmpeg依赖项分发Python模块

时间:2015-01-22 15:39:10

标签: python ffmpeg distutils software-distribution

新手软件开发人员。我正在开发一个Python模块,它利用FFmpeg框架中的一些功能 - 特别是ebur128过滤器功能。理想情况下,该模块将独立作为独立的平台无关工具,用于验证音频剪辑是否符合EBU响度标准。它的设计使得最终用户只需执行一个简单的(希望!)无痛安装过程,其中包括FFmpeg库和Python包装器/ GUI的安装。

我为这个相当含糊的问题道歉,但是有没有人对创建具有外部依赖关系的Python模块或者跨平台标准化FFmpeg安装的具体建议有一般建议? Distutils似乎非常有用 - 是否有其他指南或标准实践来开发整齐的Python工具?我想尽量减少最终用户的安装难题。

非常感谢。

1 个答案:

答案 0 :(得分:2)

对于Windows

我认为很容易找到适用于任何系统的ffmpeg二进制文件,就像Qt或您正在使用的任何GUI库一样。您可以将这些二进制文件与您的项目一起发布,但事情会起作用(您可能希望区分32位和64位系统)。

您希望创建一个独立且易于为最终用户安装的软件。 Inkscape就是这样一个例子 - 它的安装程序包含Python和所有其他依赖项,以二进制形式(如果需要)。也就是说,对于Windows,您需要创建一个真正的Python包(允许使用pip进行安装),而需要查看distutils(其中)支持构建C扩展)。我想你们两个都不需要/想要。

也许这足以让您组装一个好的目录结构并使用您的软件分发ZIP存档。例如,如果您不需要与Windows注册表进行交互,这就足够了。在Windows世界中,这些程序通常被称为“独立”程序。但是,您可能仍希望拥有一个真正的Windows安装程序(即使它只是一个自解压存档)。以下文章涵盖了您的要求,我相信:http://cyrille.rossant.net/create-a-standalone-windows-installer-for-your-python-application/ 它建议使用http://www.jrsoftware.org/isinfo.php来创建这样的安装程序。

其他平台

在其他操作系统上,它将更加困难。例如,我认为创建在每个Linux系统上运行的ffmpeg二进制文件几乎是不可能的,因为ffmpeg本身有很多二进制依赖项。我不知道你是否可以静态构建ffmpeg。