const NodeMediaServer = require('./'); const config = { rtmp: { port: 1935, chunk_size: 60000, gop_cache: true, ping: 30, ping_timeout: 60 }, http: { port: 8000, mediaroot: './media', webroot: './www', allow_origin: '*', api: true }, // https: { // port: 8443, // key: './privatekey.pem', // cert: './certificate.pem', // }, auth: { api: true, api_user: 'admin', api_pass: 'adminadminadmin', play: false, publish: true, secret: 'nodemedia2020' }, trans: { ffmpeg: '/usr/bin/ffmpeg', tasks: [ { app: 'live', ac: 'aac', hls: true, hlsFlags: '[hls_time=30:hls_list_size=5:hls_flags=delete_segments]' // args: '-profile:v baseline -level 3.0 -start_number 0' // dash: true, // dashFlags: '[f=dash:window_size=3:extra_window_size=5]' }, // { // app: 'ale', // ac: 'aac', // hls: true, // hlsFlags: '[hls_time=2:hls_list_size=3:hls_flags=delete_segments]' // }, // { // app: 'live', // mp4: true, // mp4Flags: '[movflags=faststart]' // } // { // app: 'live', // mp4: true // } ] }, // { // app: 'live', // hls: true // }, // relay: { // ffmpeg: "/usr/bin/ffmpeg", // tasks: [{ // app: 'live', // mode: 'push', // edge: 'rtmp://a.rtmp.youtube.com/live2/dqpj-00y7-v2vt-yrpu-em4h', // appendName: false // }] // } }; 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)}`); });