Я уже пытался сделать это, и это не сработало. Как я уже сказал в вопросе, создается миниатюра, и событие выхода дочернего процесса вызывается так, как и должно быть, но проблема в том, что ответ никогда не отправляется. Похоже, что ffmpeg как-то мешает ответу сервера.

аюсь сделать эскиз видео с помощью ffmpeg. Видеоданные принимаются в виде HTTP-запроса, а затем передаются в ffmpeg. Проблема в том, что после завершения дочернего процесса ffmpeg я просто не могу отправить ответ обратно.

Вот код:

var http = require('http'),
sys = require('sys'),
child = require('child_process')
http.createServer(function (req, res) {
    im = child.spawn('ffmpeg',['-i','-','-vcodec','mjpeg','-ss','00:00:03','-vframes','1','-s','100x80','./thumb/thumbnail.jpg']);
    im.on('exit', function (code, signal) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('{"success":true}\n');
     });
    req.connection.pipe(im.stdin);
}).listen(5678, "127.0.0.1");

Проблема в том, что вызов:

res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('{"success":true}\n');

ничего не делает, клиент никогда не получает ответ.

Ответы на вопрос(2)

Ваш ответ на вопрос