Node-Media-Server
Node-Media-Server copied to clipboard
Node-Media-Server Network Output Bandwidth "0"
I am using NMS on RPi 3 A+. My Camera RPi Zero W. Zero streaming RTSP stream with this FFMPEG script;
raspivid -t 0 -a 1024 -a "Camera Number" -a 12 -ae 32 -n -w 1280 -h 720 -fps 15 -o - | ffmpeg -r 15 -i - -c:v copy -preset veryfast -use_wallclock_as_timestamps 1 -tune zerolatency -fflags nobuffer -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/live
this stream from Zero's RTMP-Simple-Server. My app.js file ;
const NodeMediaServer = require('./');
const config = {
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: true,
ping: 30,
ping_timeout: 60,
/*
ssl: {
port: 443,
key: './privatekey.pem',
cert: './certificate.pem',
}
*/
},
relay: {
ffmpeg: '/usr/bin/ffmpeg',
tasks: [
{
app: 'live',
mode: 'static',
edge: 'rtsp://150.150.150.10:8554/live',
name: 'Kamera1',
rtsp_transport : 'tcp'
}
]
},
http: {
port: 8000,
mediaroot: '/home/pi/Node-Media-Server/media',
webroot: './www',
allow_origin: '*',
api: true
},
auth: {
api: true,
api_user: 'admin',
api_pass: 'admin',
play: false,
publish: false,
secret: 'nodemedia2017privatekey'
},
trans: {
ffmpeg: '/usr/bin/ffmpeg',
tasks: [
{
app: 'live',
hls: true,
hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]',
mp4: true,
//mp4Flags: '[movflags=frag_keyframe+empty_moov]',
}
]
}
};
let nms = new NodeMediaServer(config)
nms.run();
nms.on('preConnect', (id, args) => {
console.log('[NodeEvent on preConnect]', `id=${id} args=${JSON.stringify(args)}`);
// let session = nms.getSession(id);
// session.reject();
});
nms.on('postConnect', (id, args) => {
console.log('[NodeEvent on postConnect]', `id=${id} args=${JSON.stringify(args)}`);
});
nms.on('doneConnect', (id, args) => {
console.log('[NodeEvent on doneConnect]', `id=${id} args=${JSON.stringify(args)}`);
});
nms.on('prePublish', (id, StreamPath, args) => {
console.log('[NodeEvent on prePublish]', `id=${id} StreamPath=${StreamPath} args=${JSON.stringify(args)}`);
// let session = nms.getSession(id);
// session.reject();
});
nms.on('postPublish', (id, StreamPath, args) => {
console.log('[NodeEvent on postPublish]', `id=${id} StreamPath=${StreamPath} args=${JSON.stringify(args)}`);
});
nms.on('donePublish', (id, StreamPath, args) => {
console.log('[NodeEvent on donePublish]', `id=${id} StreamPath=${StreamPath} args=${JSON.stringify(args)}`);
});
nms.on('prePlay', (id, StreamPath, args) => {
console.log('[NodeEvent on prePlay]', `id=${id} StreamPath=${StreamPath} args=${JSON.stringify(args)}`);
// let session = nms.getSession(id);
// session.reject();
});
nms.on('postPlay', (id, StreamPath, args) => {
console.log('[NodeEvent on postPlay]', `id=${id} StreamPath=${StreamPath} args=${JSON.stringify(args)}`);
});
nms.on('donePlay', (id, StreamPath, args) => {
console.log('[NodeEvent on donePlay]', `id=${id} StreamPath=${StreamPath} args=${JSON.stringify(args)}`);
});
My output bandwidth is 0 and does not flow. It won't open completely after a while. But seeing still on NMS Web interface.