我正确安装了ffmpeg我能够通过在cmd中编写ffmpeg
来检查它,这会给我这个结果
现在在我的index.html中的电子应用程序中,我正在从用户输入并将自定义事件发送到应用程序的电子端,该应用程序位于index.js入口点
的index.html
<script>
const electron = require('electron');
const { ipcRenderer } = electron;
document.querySelector('form').addEventListener('submit', (e) => {
e.preventDefault();
const { path } = document.querySelector('input').files[0];
ipcRenderer.send('video:submit', path);
});
</script>
并使用ffmpeg.ffprobe我尝试将视频的元数据更新为电子方面的输入,如下所示:
const electron = require('electron');
const ffmpeg = require('fluent-ffmpeg');
const { app, BrowserWindow, ipcMain } = electron;
app.on('ready', () => {
const mainWindow = new BrowserWindow({});
mainWindow.loadURL(`file://${__dirname}/index.html`);
});
ipcMain.on('video:submit', (event, path) => {
ffmpeg.ffprobe(path, (err, metadata) => {
console.log(metadata);
//console.log(metadata.format.duration);
});
});
当我取消注释console.log(metadata.format.duration)
时,它会控制元数据未定义
typeError:无法读取属性 &#39;格式&#39;未定义的
我做错了什么?
所以我设置了两个新的环境变量,现在我在console.log(错误)时出现了其他错误:
{ Error: spawn C:\Users\Borys\Documents\videoinfo\ffmpeg\bin ENOENT
at exports._errnoException (util.js:1024:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:192:19)
at onErrorNT (internal/child_process.js:374:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn C:\\Users\\Borys\\Documents\\videoinfo\\ffmpeg\\bin',
path: 'C:\\Users\\Borys\\Documents\\videoinfo\\ffmpeg\\bin',
spawnargs:
[ '-show_streams',
'-show_format',
'C:\\Users\\Borys\\Documents\\portfolio\\img\\header_video.mp4' ] }`
(我必须将其粘贴为代码,因为它说我的帖子包含的代码格式不正确)
答案 0 :(得分:0)
好的,感谢@Alexander Leithner和this question我明白了。所以错误是我的环境变量应该是: