произошла ошибка: появляется ENOENT, node.js

#node.js #ffmpeg #transcode

#node.js #ffmpeg #перекодировать

Вопрос:

У меня кошмарное время, когда я пытаюсь разобраться в этом. Я задал вопрос об этом вчера, но зашел так далеко, короче говоря, я не могу ни за что в этом разобраться.

Все, что я хочу сделать, это перекодировать файл .avi в .flv-файл, использующий FFmpeg в node.js приложение, это работает просто с помощью командной строки для FFmpeg, но не в приложении, вот код:

 var ffmpeg = require('fluent-ffmpeg');

//make sure you set the correct path to your video file
var proc = new ffmpeg({ source: 'C:/Users/Jay/Documents/movie/drop.avi', nolog: true });

//Set the path to where FFmpeg is installed
proc.setFfmpegPath("C:\Users\Jay\Documents\FFMPEG\bin");

proc
//set the size
//.withSize('50%') <-- error appears after this line

// set fps
//.withFps(24)

// set output format to force
//.toFormat('flv')

// setup event handlers
.on('end', function() {
    console.log('file has been converted successfully');
})
.on('error', function(err) {
    console.log('an error happened: '   err.message);
})
// save to file <-- the new file I want -->
.saveToFile('C:/Users/Jay/Documents/movie/drop.flv');
 

Ошибка появляется в строке, указанной выше, это не ошибка с красной надписью, а просто говорит:

 an error happened: spawn ENOENT
 

Кто-нибудь сталкивался с этим?

Комментарии:

1. Обычно означает, что он не может найти файл, который вы пытаетесь создать, в данном случае ffmpeg.exe . Укажите путь к двоичному файлу, а не к папке.

2. Бен Форчун, ты мой спаситель, большое спасибо 🙂

3. как бы мне сделать это на Mac

Ответ №1:

Бен Форчун исправил ошибку для меня, оказывается, я забыл указать ffmpeg.exe в пути к месту установки FFmpeg. Вот обновленная версия кода:

 var ffmpeg = require('fluent-ffmpeg');

//make sure you set the correct path to your video file
var proc = new ffmpeg({ source: 'C:/Users/Jay/Documents/movie/drop.avi', nolog: true });

//Set the path to where FFmpeg is installed
proc.setFfmpegPath("C:\Users\Jay\Documents\FFMPEG\bin\ffmpeg.exe"); //I forgot to include "ffmpeg.exe"

proc
//set the size
.withSize('50%')

// set fps
.withFps(24)

// set output format to force
.toFormat('flv')

// setup event handlers
.on('end', function() {
    console.log('file has been converted successfully');
})
.on('error', function(err) {
    console.log('an error happened: '   err.message);
})
// save to file <-- the new file I want -->
.saveToFile('C:/Users/Jay/Documents/movie/drop.flv');