本地Node.js环境执行ffprobe二进制文件失败求助
Node.js脚本执行ffprobe二进制文件失败排查
在本地Node.js脚本中执行ffprobe二进制文件时遇到异常:通过fluent-ffmpeg库调用ffprobe提取视频元数据失败,但在终端直接执行该ffprobe二进制文件可得到预期输出。
项目结构
project-root/ ├── assets/ │ └── video.mp4 ├── node_modules/ ├── src/ │ └── index.js ├── layers/ │ └── ffmpeg/ │ └── ffprobe <-- 待执行的二进制文件 ├── package.json ├── package-lock.json
示例代码
const { exec } = require('child_process'); const binaryPath = './layers/ffmpeg/ffprobe'; exec(binaryPath, (error, stdout, stderr) => { if (error) { console.error(`Error: ${error.message}`); return; } console.log('Command executed successfully'); console.log('stdout:', stdout); console.error('stderr:', stderr); });
错误信息
Error: Command failed: ./layers/ffmpeg/ffprobe ./layers/ffmpeg/ffprobe: ./layers/ffmpeg/ffprobe: cannot execute binary file
已完成的排查步骤
- 执行
chmod +x确保ffprobe二进制文件拥有可执行权限 - 验证ffprobe二进制文件架构为arm64,与本地系统匹配
- 确认二进制文件路径正确且无特殊字符
- 测试
exec函数执行ffprobe的基础逻辑,仍失败
已尝试上述多种排查步骤,但仍无法在Node.js环境中执行ffprobe二进制文件,期望脚本能像终端中一样成功运行ffprobe并输出预期结果。
请问为何ffprobe二进制文件在Node.js环境中执行失败,而终端中可正常运行?是否遗漏了其他需要考虑的因素?
内容的提问来源于stack exchange,提问作者dzul.stellar
相关产品推荐
相关产品推荐

