在开始搭建档案培训交流会的直播系统之前,我们需要准备一台干净的服务器环境。本指南基于 CentOS 7.6 64位 操作系统编写,确保所有命令在该环境下可直接执行。登录服务器终端,更新系统源并安装编译 Nginx 所需的基础依赖库。
执行以下命令安装 gcc、pcre、openssl 和 zlib 等必要组件:
yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libopenssl-devel libopenssl-static
安装完成后,建议创建一个专门的目录用于存放下载的安装包和源码,保持系统整洁:
mkdir -p /data/software
cd /data/software
标准的 Nginx 不支持 RTMP 协议,我们需要手动下载 Nginx 源码和 nginx-rtmp-module 模块进行编译安装。这里我们选用稳定的 Nginx 1.18.0 版本。
下载 Nginx 源码包:
wget http://nginx.org/download/nginx-1.18.0.tar.gz
接着,下载 nginx-rtmp-module 模块源码:
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
如果服务器未安装 unzip 命令,请先执行 yum install -y unzip,然后解压模块文件:
unzip master.zip
tar -zxvf nginx-1.18.0.tar.gz
进入 Nginx 解压后的目录,执行编译配置。注意 --add-module 参数必须指向刚才解压的 rtmp 模块路径:
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module-master --with-http_ssl_module
配置成功后,执行编译和安装命令:
make && make install
安装完毕后,检查 Nginx 版本以确认安装成功:
/usr/local/nginx/sbin/nginx -v
为了实现档案培训交流会的直播功能,我们需要修改 Nginx 的配置文件,开启 RTMP 服务并配置 HLS(HTTP Live Streaming)切片,确保学员可以通过网页直接观看,无需安装专用播放器。
编辑 Nginx 配置文件:
vi /usr/local/nginx/conf/nginx.conf
将以下完整配置内容覆盖原文件。该配置开启了 RTMP 监听 1935 端口,并设置了 HLS 切片规则,切片存储在 /usr/local/nginx/html/hls 目录下:
worker_processes 1;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
hls on;
hls_path /usr/local/nginx/html/hls;
hls_fragment 3;
hls_playlist_length 10;
hls_continuous on;
hls_cleanup on;
hls_nested on;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /usr/local/nginx/html;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin ;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配置保存后,创建 HLS 视频切片存储目录:
mkdir -p /usr/local/nginx/html/hls
赋予 Nginx 对该目录的写入权限:
chmod -R 777 /usr/local/nginx/html/hls
启动 Nginx 服务:

/usr/local/nginx/sbin/nginx
服务器搭建完毕后,我们需要在主讲人的电脑上安装 OBS Studio 进行推流。下载地址为 https://obsproject.com/download,安装完成后打开软件。
在 OBS 主界面“设置” -> “推流”中,配置如下信息:
在“设置” -> “输出”中,将输出模式选为“高级”,在“串流”选项卡中设置关键参数以保证画质与流畅度的平衡:
配置完成后,点击“开始推流”。如果 OBS 右下角状态显示为绿色,说明推流成功。
为了让学员通过浏览器观看交流会,我们需要编写一个简单的 HTML 播放页面。这里使用 HLS.js 库来兼容各主流浏览器的播放。
在服务器上创建播放页面文件:
vi /usr/local/nginx/html/player.html
输入以下完整的 HTML 代码。这段代码引入了 HLS.js,并初始化播放器指向刚才推流地址生成的 HLS 流:
档案培训交流会直播
保存文件后,确保防火墙开放了 8080 和 1935 端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=1935/tcp --permanent
firewall-cmd --reload
此时,学员在浏览器中访问 http://你的服务器IP:8080/player.html 即可观看档案培训交流会的实时直播。
为了增强培训效果,我们需要添加一个简单的实时聊天室功能。首先安装 Node.js 环境:
curl --silent --location https://rpm.nodesource.com/setup_14.x | bash -
yum install -y nodejs
安装 Socket.io 依赖:
cd /data/software
npm init -y
npm install socket.io express
创建服务端脚本 server.js:
vi /data/software/server.js
写入以下服务端代码,用于转发聊天消息:
var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
http.listen(3000, function(){
console.log('Interactive service listening on :3000');
});
创建客户端页面 index.html,包含聊天框和 Socket.io 客户端逻辑:
vi /data/software/index.html
互动交流区
启动互动服务:
node /data/software/server.js &
至此,一套包含视频直播和文字互动的档案培训交流会系统已完全搭建完成。访问 http://你的服务器IP:3000 即可进入互动交流页面。