2015-01-07 75 views
1

我試圖從本地網絡攝像頭產生RTSP流, 我一直在使用與fluent-ffmpeg插件流的NodeJS攝像頭,這是我的代碼:與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); 
       }); 

在本地主機上的另一面:7002我已經與此ffmpeg的命令完美工作ffplay主持人:

ffmpeg的-f用v412 -framerate 25 -video_size 640×480 -i的/ dev /視頻1 -f RTSP -rtsp_transport TCP的rtsp://本地主機:7002 /live.sdp

(工作完全是指主機服務,ffplay,接收和處理來自攝像機播放流)

這裏是我的ffplay命令: ffplay -rtsp_flags聽的rtsp://本地主機:7002/live.sdp

我的nodeJs腳本有什麼問題? 如何使用fluent-ffmpeg生成完全相同的ffmpeg命令?

回答

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上班