Este commit está contenido en:
Your Name
2020-05-27 18:27:52 +00:00
padre 317639d496
commit f8c587e1de
Se han modificado 3 ficheros con 153 adiciones y 0 borrados

109
production/nms/app.js Archivo normal
Ver fichero

@@ -0,0 +1,109 @@
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=2:hls_list_size=3:hls_flags=delete_segments]'
// dash: true,
// dashFlags: '[f=dash:window_size=3:extra_window_size=5]'
},
// {
// app: 'live',
// mp4: true,
// mp4Flags: '[movflags=faststart]'
// }
]
},
// {
// app: 'live',
// hls: true
// },
// relay: {
// ffmpeg: "/usr/bin/ffmpeg",
// tasks: [{
// app: 'live',
// mode: 'push',
// edge: 'rtmp://a.rtmp.youtube.com/live2/xvc5-mcaq-rkcu-p5fy-ep2e',
// 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)}`);
});

Ver fichero

@@ -0,0 +1,33 @@
version: "2"
services:
nms:
image: illuspas/node-media-server
container_name: nms
hostname: nms
restart: always
entrypoint:
- /bin/sh
- /usr/src/app/entrypoint.sh
volumes:
- ./app.js:/usr/src/app/app.js:ro
- ./entrypoint.sh:/usr/src/app/entrypoint.sh:ro
- ./media:/usr/src/app/media
- ./lists:/lists:ro
expose:
- "8000"
- "8443"
ports:
- "1936:1935"
- "1936:1935/udp"
networks:
mynet:
ipv4_address: 172.14.0.101
networks:
mynet:
driver: bridge
ipam:
config:
- subnet: 172.14.0.0/24

11
production/nms/entrypoint.sh Archivo normal
Ver fichero

@@ -0,0 +1,11 @@
#!/bin/sh
sed -i -e 's/v[[:digit:]]\..*\//edge\//g' /etc/apk/repositories
apk upgrade
apk add ffmpeg
node app.js &
sleep 1s
while [ True ]; do
for i in $(cat /lists/fanta.txt); do
ffmpeg -loglevel quiet -re -i async:cache:"$i" -threads 2 -f flv -vcodec h264 -acodec aac rtmp://127.0.0.1/live/streaming?sign=1590502038931-b04c1d7b5bfc3dc61ddce23b2dda3649
done
done