搭建音视频点播服务器的核心在于选择合适的流媒体服务软件(如Nginx-RTMP、FFmpeg、SRS或Wowza)、配置高效的转码与存储方案,并确保网络带宽与并发承载能力满足业务需求。 以下从环境准备、软件安装、参数配置、安全优化四个维度详细展开。
首先,准备一台Linux服务器(推荐Ubuntu 22.04或CentOS 7+),最低配置建议4核CPU、8GB内存、100GB SSD。安装系统后更新包管理器:`sudo apt update && sudo apt upgrade -y`。接着安装依赖工具:`sudo apt install build-essential git libpcre3-dev libssl-dev zlib1g-dev -y`。
然后选择流媒体服务器。以最流行的轻量级方案Nginx-RTMP为例:下载Nginx源码与RTMP模块(`git clone https://github.com/arut/nginx-rtmp-module.git`),编译安装`./configure --add-module=../nginx-rtmp-module --with-http_ssl_module`,然后`make && make install`。修改nginx.conf,在http块外添加rtmp块定义推拉流路径,例如:
```
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
application vod {
play /var/www/vod;
}
}
}
```
其中`application vod`用于点播静态视频文件,需将mp4/mkv等文件放入`/var/www/vod`目录。对于HLS等自适应码率需求,可增加`hls on; hls_path /tmp/hls;`等配置。
接着配置转码与存储。推荐使用FFmpeg对上传的视频进行多分辨率转码,生成720p、480p、360p版本,并存储于不同目录。可用脚本定时扫描新文件,调用`ffmpeg -i input.mp4 -vf scale=1280:720 -c:a copy output_720.mp4`等命令。存储方面,使用NFS或对象存储(如MinIO)实现扩缩容,并在nginx中通过`alias`指令指向挂载点。
最后进行安全加固:开启鉴权(如`on_publish http://auth-server/check`),限制IP访问,配置SSL证书(使用Let's Encrypt)加密推拉流,并设置带宽限制与并发连接数上限(`limit_conn addr 10`)。测试方法:使用OBS推流到rtmp://服务器ip/live/stream,用VLC播放rtmp://服务器ip/live/stream验证。
【音视频点播服务器搭建 服务器搭建教程相关话题】
问题1:点播服务器对视频格式有什么要求?是否需要预先转码?
回答1:点播服务器原生支持MP4、FLV、TS等常见容器格式,但为了客户端兼容性(尤其是移动端HLS),建议将视频统一转码为H.264视频编码 + AAC音频编码,并封装为MP4或生成m3u8索引。转码可在上传时由FFmpeg自动完成,以避免播放端因格式不支持而卡顿。
问题2:如何优化点播服务器的并发性能,避免卡顿?
回答2:可从三方面优化:一是在nginx中启用`sendfile on; tcp_nopush on;`并调整`worker_connections`为2048以上;二是对热门视频使用CDN分发(如Cloudflare或自建边缘节点);三是采用分片存储与缓存策略,将视频切分为10秒左右的TS分片,并利用`proxy_cache`缓存频繁请求的分片,减少磁盘I/O压力。


