我正在尝试使用此配置进行视频传输:
Raspberry Pi => Node.js server => Browsers
主要优点是可以有多个浏览器,并且Raspberry Pi不会过载。现在,我已经为视频流做了很多工作:
Raspberry Pi => Linux laptop
使用这些命令:
// [first] Computer: listen to video and play it with mplayer
nc -l 2222 | mplayer -fps 200 -demuxer h264es -
// [second] Raspberry Pi (emit video to the IP)
raspivid -t 0 -w 300 -h 300 -hf -fps 20 -o - | nc 192.168.1.44 2222
我首先尝试更换计算机端。到目前为止我得到了这段代码:
const NetcatServer = require('netcat/server');
const nc = new NetcatServer();
const stream = nc.port(2222).k().listen();
stream.pipe(process.stdout); // ~ correct
但是,如果我尝试使用这样的stream
事件来收听data
:
let i = 0;
stream.on('data', () => {
i++;
console.log(i);
});
使用此on('data', ...)
,流适用于20-25个事件,然后停止(stdout没有发生的事情)。所以我的问题:
注意:我会检查end
,error
,finish
和destroy
事件,但不会在流式传输时触发。它只是停下来。