Node.js中调用ffmpeg.ffprobe获视频时长遇Cannot find ffprobe错误求助
解决Node.js中ffmpeg.ffprobe提示"Cannot find ffprobe"的问题
问题原因
你只通过setFfmpegPath配置了ffmpeg的执行路径,但没有为ffprobe指定路径,导致调用ffmpeg.ffprobe时找不到对应的可执行文件。
解决方案
1. 确保依赖安装
如果还没安装@ffmpeg-installer/ffmpeg,先执行安装命令:
npm install @ffmpeg-installer/ffmpeg
2. 修改代码配置ffprobe路径
在原有代码基础上,添加setFfprobePath来指定ffprobe的路径(@ffmpeg-installer/ffmpeg包中已经包含了ffprobe的可执行文件路径):
function video_control(video) { const path = video.path; const ffmpegInstaller = require("@ffmpeg-installer/ffmpeg"); // 同时设置ffmpeg和ffprobe的路径 ffmpeg.setFfmpegPath(ffmpegInstaller.path); ffmpeg.setFfprobePath(ffmpegInstaller.path.replace("ffmpeg", "ffprobe")); ffmpeg.ffprobe(path, (err, metadata) => { if (err) { console.error(err); } else { const duration = metadata.format.duration; console.log("视频时长(秒):", duration); } }); }
补充说明
@ffmpeg-installer/ffmpeg会根据你的系统自动下载对应版本的ffmpeg和ffprobe,通过替换文件名的方式可以直接拿到ffprobe的路径,无需额外安装其他包。- 改用ffmpeg/ffprobe方案后,对webm等格式的兼容性会比
get-video-duration更好,能避免部分格式解析失败的问题。
内容的提问来源于stack exchange,提问作者İlker Yasin Pehlivan
相关产品推荐
相关产品推荐

