问题描述
我在我的 Nodejs 服务器上使用了一个名为“fluent-ffmpeg”的库,它可以更轻松地使用名为 FFmpeg 的音频/视频编辑工具,该工具在我的计算机上本地下载。
在我的电脑上运行时,我将 fluent-ffmpeg 指向我电脑上 FFmpeg 和 FFprobe 的本地可执行文件,如下所示:
import ffmpeg from "fluent-ffmpeg";
// When running locally,set FFmpeg and FFprobe path to the local executable files
ffmpeg.setFfmpegPath("C:/Program Files/FFMPEG/ffmpeg.exe");
ffmpeg.setFfprobePath("C:/Program Files/FFMPEG/ffprobe.exe");
部署到 Heroku 时,我必须使用 FFmpeg 'buildpack'。
我尝试了两个:
- https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest
- https://github.com/HasibulKabir/heroku-buildpack-ffmpeg-ffprobe
都没有为我工作。每当我使用 FFmpeg 命令时,我的 heroku 日志中都会出现以下错误:
2021-07-24T15:22:52.970990+00:00 app[web.1]: code: 'ENOENT',2021-07-24T15:22:52.970990+00:00 app[web.1]: syscall: 'spawn C:/Program Files/FFMPEG/',2021-07-24T15:22:52.970990+00:00 app[web.1]: path: 'C:/Program Files/FFMPEG/',2021-07-24T15:22:52.970991+00:00 app[web.1]: spawnargs: [
2021-07-24T15:22:52.970991+00:00 app[web.1]: '-show_streams',2021-07-24T15:22:52.970991+00:00 app[web.1]: '-show_format',2021-07-24T15:22:52.970992+00:00 app[web.1]: 'temp/cf3b5f1ae270df824921364573a4366b'
2021-07-24T15:22:52.970992+00:00 app[web.1]: ]
2021-07-24T15:22:52.970992+00:00 app[web.1]: }
部署到 Heroku 时,如何在我的 Nodejs 服务器中使用 fluent-ffmpeg?
提前感谢您的帮助!
解决方法
我无法使用 fluent-ffmpeg,但使用 buildpack:
https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest
我能够使用“exec”命令代替 fluent-ffmpeg。它要求您像在命令提示符中一样写出 ffmpeg 命令。
例如:
import { exec } from "child_process";
exec(`ffmpeg -f concat -safe 0 -i ${filesListPath} -c copy ${mergedFilePath}`,async (error,stdout,stderr) => {
if (error) {
console.log(`error: ${error.message}`);
//Do stuff to handle error
}
else {
//Do stuff to handle success