30 lines
914 B
JavaScript
30 lines
914 B
JavaScript
const NodeMediaServer = require('node-media-server'),
|
|
config = require('./config/default').rtmp_server,
|
|
User = require('./database/Schema').User,
|
|
helpers = require('./helpers/helpers');
|
|
|
|
nms = new NodeMediaServer(config);
|
|
|
|
nms.on('prePublish', async (id, StreamPath, args) => {
|
|
let stream_key = getStreamKeyFromStreamPath(StreamPath);
|
|
console.log('[NodeEvent on prePublish]', `id=${id} StreamPath=${StreamPath} args=${JSON.stringify(args)}`);
|
|
|
|
User.findOne({stream_key: stream_key}, (err, user) => {
|
|
if (!err) {
|
|
if (!user) {
|
|
let session = nms.getSession(id);
|
|
session.reject();
|
|
} else {
|
|
helpers.generateStreamThumbnail(stream_key);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
const getStreamKeyFromStreamPath = (path) => {
|
|
let parts = path.split('/');
|
|
return parts[parts.length - 1];
|
|
};
|
|
|
|
module.exports = nms;
|