node.js - 无法让 FFMPEG buildpack 在 Heroku Node.js 服务器中工作(使用 Fluent-FFMPEG)
问题描述
我在我的 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
推荐阅读
- c++ - 将基于文本的列数据存储到数组 C++ 中
- python - 使用 Watchtower 进行 Python 快速 API 日志记录
- php - 定制器 Wordpress - 菜单和小部件的功能
- c# - 如何重置 VisualTreeHelper.GetDpi() 以返回真正的 DPI?
- python - 如何将时间戳从用于 ConvLSTM2D 的 PNG 帧序列添加到 Tensorflow 数据集?
- django - DRF:to_representation() 在序列化程序 update() 上调用了两次
- r - 如何为数据框 A 中存在的列的每个唯一值在数据框 B 中创建一个新列?
- java - 异常 - java.lang.NoClassDefFoundError: javax/mail/Authenticator - 仅在编译我的 java 项目之后
- python - Sagemaker 为烧瓶模型部署超时
- sequelize.js - 如何使用 Sequelize 返回关联的赞美