109 lines
2.9 KiB
JavaScript
Executable File
109 lines
2.9 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const NodeMediaServer = require('..');
|
|
let argv = require('minimist')(process.argv.slice(2),
|
|
{
|
|
string:['rtmp_port','http_port','https_port'],
|
|
alias: {
|
|
'rtmp_port': 'r',
|
|
'http_port': 'h',
|
|
'https_port': 's',
|
|
},
|
|
default:{
|
|
'rtmp_port': 1935,
|
|
'http_port': 8000,
|
|
'https_port': 8443,
|
|
}
|
|
});
|
|
|
|
if (argv.help) {
|
|
console.log('Usage:');
|
|
console.log(' node-media-server --help // print help information');
|
|
console.log(' node-media-server --rtmp_port 1935 or -r 1935');
|
|
console.log(' node-media-server --http_port 8000 or -h 8000');
|
|
console.log(' node-media-server --https_port 8443 or -s 8443');
|
|
process.exit(0);
|
|
}
|
|
|
|
const config = {
|
|
rtmp: {
|
|
port: argv.rtmp_port,
|
|
chunk_size: 60000,
|
|
gop_cache: true,
|
|
ping: 30,
|
|
ping_timeout: 60,
|
|
// ssl: {
|
|
// port: 443,
|
|
// key: __dirname+'/key.pem',
|
|
// cert: __dirname+'/cert.pem',
|
|
// }
|
|
},
|
|
http: {
|
|
port: argv.http_port,
|
|
mediaroot: __dirname+'/media',
|
|
webroot: __dirname+'/www',
|
|
allow_origin: '*',
|
|
api: true
|
|
},
|
|
https: {
|
|
port: argv.https_port,
|
|
key: __dirname+'/key.pem',
|
|
cert: __dirname+'/cert.pem',
|
|
},
|
|
auth: {
|
|
api: true,
|
|
api_user: 'admin',
|
|
api_pass: 'admin',
|
|
play: false,
|
|
publish: false,
|
|
secret: 'nodemedia2017privatekey'
|
|
}
|
|
};
|
|
|
|
|
|
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)}`);
|
|
});
|
|
|