在最新版本(v0.31.0)中,Electron 附带了静态链接的 FFMpeg 库(不是命令行工具,请参阅#2588)
我知道 ffmpeg 有很多 Nodejs 模块,但它们看起来都像命令行工具的 api,那么我如何理想地访问与 Electron 捆绑的 ffmpeg 库并对流进行编码?
免责声明:这是我创建的ffbinaries节点模块和ffbinaries.com API的无耻插件。
我不久前正在寻找这个问题的答案,但找不到任何有用的东西。我决定自己整理一些东西,并想我会回到这里以防万一你仍然需要它。
我创建了 ffbinaries downloader 来实现此目的。我两天前才开始这样做,所以可能仍然有所欠缺,但请尝试一下。
仍有大量工作正在进行中,目前(0.0.12)它尚未设置文件权限,但它可以很好地下载所需的二进制文件。
编辑: ffbinaries 不久前已经达到版本 1.0.0 里程碑 - 很好,稳定,并且它确实正确设置了权限:)
目前这是不可能的,因为 Node.js 没有像样的
ffmpeg
库。意思是,只有这样的抽象 CLI。然而,可以将 ffmpeg
编译并链接为节点本机插件,但似乎还没有人这样做过。因此,不幸的是,建议是编写这种抽象并将库包含到您的电子构建中
可以将预编译的静态 ffmpeg 二进制文件与电子应用程序捆绑在一起;当然,您必须确保将正确的二进制文件与正确的发行版捆绑在一起。 我有一个完整的答案这里。
使用ffmpeg静态
const pathToFfmpeg = require('ffmpeg-static')
const { spawn } = require('child_process')
spawn(pathToFfmpeg, [
// ...,
// '-i', 'input', 'output'
])