簡體   English   中英

使用nodejs ffmpeg流網絡攝像頭

[英]stream webcam with nodejs ffmpeg

我正在嘗試從本地網絡攝像頭生成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的另一端,我有一個ffplay主機,可以完美地與此ffmpeg命令配合使用:

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監聽rtsp:// localhost:7002 / live.sdp

我的nodeJs腳本怎么了? 如何使用fluent-ffmpeg生成完全相同的ffmpeg命令?

找到了解決此問題的變通方法/不同解決方案:我一直在使用子進程,如下所示:

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正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM