我正在开发一个节点js应用程序。首先,在Node JS方面,我只是一个初学者。我现在在我的应用程序中正在做的是我正在尝试为我的mp4文件创建缩略图jpg文件。我已经尝试了很多可能的解决方案。现在我正在使用这个 - https://github.com/damianociarla/node-ffmpeg。我认为这是所有人的潜在解决方案。当我生成视频文件的jpg缩略图时,我收到错误。请看看我到目前为止所做的工作。
我安装了运行此命令的包
npm install ffmpeg --save
然后我尝试生成像这样的缩略图文件
var ffmpeg = require('ffmpeg');
module.exports.createVideoThumbnail = function(req, res)
{
try {
var process = new ffmpeg('public/lalaland.mp4');
process.then(function (video) {
video.fnExtractFrameToJPG('public', {
frame_rate : 1,
number : 5,
file_name : 'my_frame_%t_%s'
}, function (error, files) {
if (!error)
console.log('Frames: ' + files);
else
//This error message is displayed
console.log(error)
});
}, function (err) {
console.log('Error: ' + err);
});
} catch (e) {
console.log(e.code);
console.log(e.msg);
}
res.json({ status : true , message: "Video thumbnail created. Hopefully" });
}
当我运行代码时,它会抛出错误。我在代码中注释了错误。 这是错误消息
{ Error: Command failed: ffmpeg -i public/lalaland.mp4 -r 1 -s 0x0 -aspect NaN:NaN -vframes 5 -filter_complex "scale=iw*sar:ih, pad=max(iw\,ih*(NaN/NaN)):ow/(NaN/NaN):(ow-iw)/2:(oh-ih)/2:black" public/my_frame_1518211962631_0x0_%d.jpg
'ffmpeg' is not recognized as an internal or external command,
operable program or batch file.
at ChildProcess.exithandler (child_process.js:275:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
killed: false,
code: 1,
signal: null,
cmd: 'ffmpeg -i public/lalaland.mp4 -r 1 -s 0x0 -aspect NaN:NaN -vframes 5 -filter_complex "scale=iw*sar:ih, pad=max(iw\\,ih*(NaN/NaN)):ow/(NaN/NaN):(ow-iw)/2:(oh-ih)/2:black" public/my_frame_1518211962631_0x0_%d.jpg' }
我也安装了ffmg。你可以在下面看到它是我笔记本电脑上安装的命令
我的代码中缺少什么?
答案 0 :(得分:1)
您是否尝试将ffmpeg可执行文件的路径添加到环境变量中?
答案 1 :(得分:1)
我在 Python(Jupyter Notebook)中遇到了同样的问题!问题出在 PATH 中。我对 Python3 的解决:
pip install ffmpeg
echo %path%
C:\ffmpeg\bin
的目录,但该目录不存在C:\ffmpeg\
echo %path%
找到了 ffmpeg.exe
文件和代码 !ffmpeg ...
运行良好答案 2 :(得分:0)
也许这可以帮助其他人,因为唯一的答案还不清楚。
它告诉您无法识别命令ffmpeg,这意味着您需要安装ffmpeg二进制文件。您已经安装了nodejs库,但是除此之外,您还应该安装ffmpeg二进制文件,该文件实际上将执行JS调用的“ ffmpeg”命令 图书馆。在下载的ffmpeg的网址中找到here,解压缩该网址并将/ bin文件夹的路径添加到您的环境变量(PATH)。