无法让 FFMPEG 构建包在 Heroku Node.js 服务器中工作(使用 Fluent-FFMPEG)
Can't get FFMPEG buildpack working in Heroku Node.js server (using Fluent-FFMPEG)
我在我的 Nodejs 服务器上使用了一个名为 'fluent-ffmpeg' 的库,它使我可以更轻松地使用名为 FFmpeg 的 audio/video 编辑工具,该工具在我的计算机上本地下载。
在我的电脑上运行时,我将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 一起工作,但使用了构建包:
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
我在我的 Nodejs 服务器上使用了一个名为 'fluent-ffmpeg' 的库,它使我可以更轻松地使用名为 FFmpeg 的 audio/video 编辑工具,该工具在我的计算机上本地下载。
在我的电脑上运行时,我将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 一起工作,但使用了构建包:
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