相比租用第三方录播平台,自建Linux高清录播服务器具备可控性高、定制灵活、无版权限制、成本可控等诸多优势。接下来我们将以实战角度,系统讲解如何基于Linux系统搭建一套稳定、高性能、支持高清视频的录播服务器环境,从底层依赖到直播录制全流程,确保搭建完成即可投入实际使用。
一、录播服务器系统及环境准备
系统推荐选择以下Linux发行版,Ubuntu Server 20.04/22.04 LTS 稳定性好、社区活跃、文档丰富。CentOS 7/AlmaLinux 8 企业生产环境常用,系统稳定、兼容性高。Debian 11 系统精简,资源占用低,适合低功耗录播服务部署。建议部署在纯净环境上,避免与其他服务如数据库、Web服务混合安装,减少资源争抢。
最低硬件配置建议,CPU四核以上、内存8GB以上、存储500GB以上SSD(录播视频空间大)、网络对称带宽≥20Mbps,建议独享线路。系统盘建议单独挂载,避免视频数据写入系统分区。安装前请关闭SELinux与防火墙,开放常用端口(如1935、554、8080、80等)。
二、录播核心组件安装与配置
安装FFmpeg:
FFmpeg是实现录制、转码、流处理的关键工具。安装方式如下:
Ubuntu/Debian安装最新版FFmpeg:
sudo apt update
sudo apt install ffmpeg
CentOS/AlmaLinux安装最新版:
sudo yum install epel-release
sudo yum install ffmpeg ffmpeg-devel
验证安装:
ffmpeg -version
确认支持libx264、libx265、aac等编码器。
安装Nginx + RTMP模块
Nginx RTMP模块用于接收推流、播放直播与录播,具有性能稳定、易于部署等优势。
编译安装(推荐):
# 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev -y
# 下载源码
wget http://nginx.org/download/nginx-1.24.0.tar.gz
git clone https://github.com/arut/nginx-rtmp-module.git
# 解压与编译
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --add-module=../nginx-rtmp-module --with-http_ssl_module
make && sudo make install
默认安装在/usr/local/nginx
。
配置RTMP服务:
编辑/usr/local/nginx/conf/nginx.conf
,添加如下配置:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record all;
record_path /var/www/record;
record_unique on;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 8080;
location / {
root /var/www/html;
index index.html;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/html;
}
}
}
创建录播目录:
sudo mkdir -p /var/www/record
sudo chmod -R 755 /var/www/record
启动Nginx:
/usr/local/nginx/sbin/nginx
三、推流与录播测试
1. 推流工具:OBS Studio
在推流客户端(如Windows或macOS电脑)安装OBS Studio,设置推流协议RTMP,流名称自定义例如test1。
推流地址示例:
rtmp://服务器IP:1935/live
2. 直播观看地址
直播流播放地址为:
rtmp://服务器IP:1935/live/test1
可使用VLC播放器播放:
Media -> Open Network Stream -> 输入上方URL
3. 录播文件位置
直播开始后,自动生成.flv录播文件,保存在:
/var/www/record
录制文件命名规则为:
test1-YYYYMMDD-HHMMSS.flv
可使用FFmpeg将其转码为MP4:
ffmpeg -i test1.flv -vcodec copy -acodec copy output.mp4
四、性能优化与安全建议
1. 提高系统连接数
编辑系统限制:
ulimit -n 65535
编辑/etc/security/limits.conf:
* soft nofile 65535
* hard nofile 65535
2. 使用H.265编码降低带宽
FFmpeg支持将录制视频压缩为H.265编码,大幅降低视频文件大小:
ffmpeg -i input.flv -c:v libx265 -crf 28 output.mp4
适合保存长时间教学内容或会议录像。
3. 设置直播权限认证
可配置Nginx防止推流地址被盗用。可使用token
鉴权机制:
application live {
live on;
on_publish http://localhost/auth;
}
再在Web服务中处理auth
请求,实现按用户鉴权、控制推流权限。
五、自动化与功能拓展建议
1. 定时切割录播文件
使用ffmpeg结合cron脚本,每小时自动切割并保存为新文件,避免文件过大:
0 * * * * /usr/bin/ffmpeg -i rtmp://localhost/live/test -t 3600 -c copy /var/www/record/hourly-$(date +\%H).mp4
2. 搭配网页播放
安装支持HLS或MP4播放的Web播放器如Video.js、DPlayer,将录播视频通过HTTP方式提供点播入口。可使用FFmpeg生成M3U8格式:
ffmpeg -i input.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls index.m3u8
通过本文教程,读者可以基于Linux系统,独立搭建出一套支持高清录制与直播的稳定录播服务器方案。无论是教育培训、企业会议,还是远程发布场景,均可实现推流、录制、回放一体化功能。相比市面上的商业SaaS平台,基于Linux的自建方案拥有更高的定制灵活性、更低的带宽成本、更全面的数据控制能力。只要网络环境合理、服务器性能达标,再配合Nginx+FFmpeg的组合,就能支撑大规模高质量的音视频录播任务。