使用nodejs ffmpeg流式摄像头

时间:2015-01-07 11:28:32

标签: node.js ffmpeg video-streaming

我试图从本地网络摄像头生成rtsp流, 我一直在使用带有fluent-ffmpeg插件的nodeJs,这是我的代码:

var ffmpeg = require('fluent-ffmpeg');
var proc = ffmpeg('/dev/video1')
                //.format('h264')
                .inputOptions([
                    '-f v4l2',
                    '-framerate 25',
                    '-video_size 640x480'
                ])
                .outputOptions([
                    '-f rtsp',
                    '-rtsp_transport tcp',
                    'rtsp://localhost:7002/live.sdp'
                ])
                //.output('rtsp://localhost:7002/live.sdp')
                .on('end',function(msg){
                    console.log("finish ffmpeg command " + msg);
                })
                .on('err',function(err){
                    console.log("error found " + err);
                });

在localhost的另一端:7002我有一个与这个ffmpeg命令完美配合的ffplay主机:

ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i / dev / video1 -f rtsp -rtsp_transport tcp rtsp:// localhost:7002 / live.sdp

(完美的工作意味着主机服务,ffplay,接收和播放来自相机的流)

这是我的ffplay命令: ffplay -rtsp_flags listen rtsp:// localhost:7002 / live.sdp

我的nodeJs脚本有什么问题? 如何使用fluent-ffmpeg生成完全相同的ffmpeg命令?

1 个答案:

答案 0 :(得分:1)

找到解决此问题的解决方案/不同解决方案: 我一直在使用这样的子进程:

child = exec("ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video1 -f rtsp -rtsp_transport tcp rtsp://localhost:7002/live.sdp",function(error,stdout,stderr){
    sys.print('STDOUT: ',stdout);
    sys.print('STDERR: ',stderr);
});

这应该有用,太糟糕没有人弄清楚如何让ffmpeg工作