电子 - 如何在电子应用程序中使用 ffmpeg

Posted

技术标签:

【中文标题】电子 - 如何在电子应用程序中使用 ffmpeg【英文标题】:electron - how to use ffmpeg within an electron app 【发布时间】:2015-11-24 06:59:00 【问题描述】:

在最后一个版本 (v0.31.0) 中,electron 带有一个静态链接的 FFMpeg 库(不是命令行工具,请参阅#2588)

我知道 ffmpeg 的许多 nodejs 模块,但它们看起来都像命令行工具的 api,那么我如何才能理想地访问与 electron 捆绑的 ffmpeg 库并编码流?

【问题讨论】:

我曾经围绕 FFMPEG for node 的一些基本解码功能编写了一个本地 C++ 包装器,我可以发布它,如果您愿意,可以尝试调整它以满足您的需求。我认为这是在没有命令行工具的情况下直接使用 FFMPEG 的唯一方法。 【参考方案1】:

目前这是不可能的,因为 node.js 没有像样的 ffmpeg 库。意思是,只有这样抽象 CLI。但是,可以将ffmpeg 编译和链接为节点本机插件,这似乎还没有人做过。因此,不幸的是,建议是编写这种抽象并将 lib 包含到您的电子构建中

【讨论】:

所以,基本上,你的意思是 - 他们将 ffmpeg 与电子捆绑在一起,但我们不能使用它? (至少不是没有额外的麻烦)【参考方案2】:

免责声明:这是我创建的ffbinaries Node 模块和ffbinaries.com API 的无耻插件。

前段时间我一直在寻找这个问题的答案,但找不到任何有用的东西。我决定自己整理一些东西,并认为我会回到这里以防你仍然需要它。

我创建了ffbinaries downloader 来实现这一点。我是两天前才开始做的,所以可能还有不足,但请尝试一下。

还有很多工作正在进行中,目前(0.0.12)它还没有设置文件的权限,但它下载所需的二进制文件就好了。

编辑: ffbinaries 已经达到了 1.0.0 版本的里程碑 - 很好,很稳定,它确实正确设置了权限:)

【讨论】:

【参考方案3】:

可以将预编译的静态 ffmpeg 二进制文件与电子应用程序捆绑在一起;当然,您必须确保将正确的二进制文件与正确的发行版捆绑在一起。我有一个完整的答案here。

【讨论】:

以上是关于电子 - 如何在电子应用程序中使用 ffmpeg的主要内容,如果未能解决你的问题,请参考以下文章

如何在电子中实现延迟深度链接

如何将预编译的二进制文件与电子捆绑在一起

如何在 Google 电子表格中使用日期添加功能?

如何使用此脚本向多个人发送电子邮件而不在 to 字段中显示所有电子邮件?

如何从电子生成器参数化 msi 文件

我应该如何配置我的应用以跨类保留 Firebase 用户数据?