如果有人碰巧需要这个问题的答案:我确实有解决方案,但是我不知道这是否被认为是最佳实践。我找不到包含第三方预编译二进制文件的任何好的文档,因此我一直在弄弄它直到最终起作用。这是我做的(从电子快速入门,node.js
v6开始):
在app目录中,我运行了以下命令以将ffmpeg二进制文件包含为模块:
mkdir node_modules/ffmpegcp /usr/local/bin/ffmpeg node_modules/ffmpeg/ln -s ../ffmpeg/ffmpeg node_modules/.bin/ffmpeg
(将/ usr / local / bin /
ffmpeg替换为您当前的二进制路径,然后从此处下载)放置链接允许电子打包程序包括我保存到node_modules / ffmpeg /的二进制文件。
然后,为了获取捆绑的应用程序路径,我通过运行以下命令安装了npm软件包app-root-dir:
npm i -S app-root-dir
由于可以获取应用程序路径,因此我只为二进制文件添加了子文件夹并从那里生成了。这是我放在renderer.js中的代码:
var appRootDir = require('app-root-dir').get();var ffmpegpath=appRootDir+'/node_modules/ffmpeg/ffmpeg';console.log(ffmpegpath);const spawn = require( 'child_process' ).spawn, ffmpeg = spawn( ffmpegpath, ['-i',clips_input[0]]); //add whatever switches you need hereffmpeg.stdout.on( 'data', data => { console.log( `stdout: ${data}` ); }); ffmpeg.stderr.on( 'data', data => {console.log( `stderr: ${data}` ); });


