当FFMPEG完成时,NodeJS + FFMPEG-发送响应

时间:2015-02-02 21:08:47

标签: node.js ffmpeg

我有一个工作的NodeJS + FFMPEG应用程序。我能够上传视频文件并在服务器上进行转换。我正在使用这个NodeJS FFMPEG库
https://github.com/fluent-ffmpeg/node-fluent-ffmpeg

当作业完成时,我在服务器上收到一条消息,但是如何通知客户端?在本例中是一个简单的AIR应用程序。现在我只能听到'成功上传后的初始响应。

初始视频文件是通过http POST请求上传的。

我没有依赖项的主节点应用程序如下

var ffmpeg =  require('./lib/fluent-ffmpeg');

var express = require('express'),
    multer  = require('multer');
var app = express();

//auto save file to uploads folder
app.use(multer({ dest: './uploads/'}))

var temp;

app.post('/', function (req, res) {
    console.log(req.body); //contains the variables
    console.log("req.files ="+ req.files); //contains the file references

console.log("req.files.Filedata.path ="+ req.files.Filedata.path ); 

temp=req.files.Filedata.path;
// make sure you set the correct path to your video file
var proc = ffmpeg('./'+temp)
  // set video bitrate
  .videoBitrate(1024)
  // set audio codec
  .audioCodec('libmp3lame')    
  // set output format to force
  .format('avi')


  // setup event handlers
  .on('end', function() {
   console.log('file has been converted succesfully');    
  })
  .on('error', function(err) {
    console.log('an error happened: ' + err.message);
  })


  // save to file
  .save('./converted/converted.avi');
    res.send('Thank you for uploading!');

});

app.listen(8080);

1 个答案:

答案 0 :(得分:0)

您可以使用两种方法。第一种是每隔x秒使用AJAX GET请求从客户端轮询服务器。第二种方法是使用WebSockets并通过直接向它们发送消息来通知客户端。