3

I'm trying to create very simple server-side video conversion using ffmpeg and nodejs. So far, I have 2 UDP servers, one for converting video input and second one for listening for converted video and passing it to websocket.

I've created one UDP server, where stream comes, converts the video input by calling ffmpeg. Then the second UDP server get the converted video and pass it to the websocket server to stream video to browser.

The problem is probably with input into the ffmpeg. The error I get is

_stream_readable.js:476
  dest.on('unpipe', onunpipe);
       ^
TypeError: Object 

The code looks like this:

// Websocket Server
var socketServer = new (require('ws').Server)({port: 8081});
socketServer.on('connection', function(socket) {
    socket.on('close', function(code, message){
        console.log( 'Disconnected WebSocket ('+socketServer.clients.length+' total)' );
    });
});

socketServer.broadcast = function(data, opts) {
    for( var i in this.clients ) {
        this.clients[i].send(data, opts);
    }
};

// UDP Server
var udpServer = require("dgram").createSocket("udp4");

udpServer.on("message", function(msg, rinfo) {
    socketServer.broadcast(msg, {binary:true});
    console.log("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port);
});

udpServer.on("listening", function() {
    var address = udpServer.address();
    console.log("server listening " + address.address + ":" + address.port);
});
udpServer.bind(8082);

// UDP Server for stream conversion
var udpServer2 = require("dgram").createSocket("udp4");

udpServer2.on("message", function(msg, rinfo) {
    // **********  THIS IS WHERE ERROR OCCURS **************
    var ffmpeg = require('child_process')
            .spawn('ffmpeg',['-f','video4linux2','-i','-','-f','mpeg1video','udp://127.0.0.1:8082']);
    ffmpeg.stdin.pipe(msg);
});

udpServer2.on("listening", function() {
    var address = udpServer2.address();
    console.log("server listening " + address.address + ":" + address.port);
});
udpServer2.bind(8083);
LadislavM
  • 414
  • 1
  • 6
  • 22

0 Answers0