桌面直播
只能算是一个基于ffmpeg和jsmpeg的应用。
首先需要安装的内容有:ffmpeg、jsmpeg、ws模块
安装过程reference:https://my.oschina.net/chengpengvb/blog/1832469 (ffmpeg建议在官网装最新的可执行版本)
直接把下载下来的jsmpeg的代码引入网站后端
var STREAM_SECRET = 'supersecret',
STREAM_PORT = 8081,
WEBSOCKET_PORT = 8082,
RECORD_STREAM = false;
// Websocket Server
var socketServer = new WebSocket.Server({
port: WEBSOCKET_PORT, perMessageDeflate: false});
socketServer.connectionCount = 0;
socketServer.on('connection', function(socket, upgradeReq) {
socketServer.connectionCount++;
console.log(
'New WebSocket Connection: ',
(upgradeReq || socket.upgradeReq).socket.remoteAddress,
(upgradeReq || socket.upgradeReq).headers['user-agent'],
'('+socketServer.connectionCount+' total)'
);
socket.on('close', function(code, message){
socketServer.connectionCount--;
console.log(
'Disconnected WebSocket ('+socketServer.connectionCount+' total)'
);
});
});
socketServer.broadcast = function(data) {
socketServer.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
client.send(data);
}
});
};
// HTTP Server to accept incomming MPEG-TS Stream from ffmpeg
var streamServer = http.createServer( function(request, response) {
var params = request.url.substr(1).split('/');
if (params[0] !== STREAM_SECRET) {
console.log(
'Failed Stream Connection: '+ request.socket.remoteAddress + ':' +
request.socket.remotePort + ' - wrong secret.'
);
response.end();

本文介绍了使用ffmpeg、jsmpeg和jquery.facedetection实现桌面直播和简单人脸识别的过程。桌面直播通过ffmpeg推流至服务器,学生端通过WebSocket获取视频。人脸识别采用jquery.facedetection,能检测脸部位置但无法识别具体人。总结指出,项目提升了网络知识,但JavaScript基础仍有待加强。
最低0.47元/天 解锁文章
1340

被折叠的 条评论
为什么被折叠?



