视频流服务器是一个中介系统,可让我们从本地系统向在线观众实时广播内容。实时流式处理过程的工作原理是实时编码视频内容,将其分解为较小的数据包,然后将其发送到客户端。媒体传输是连续的,也就说明服务器不会在本地存储媒体。下面分享一期详细的视频流服务器搭建指南。
一、视频流服务器搭建条件
1、搭建视频流服务器的前提是需要拥有一个搭载Linux内核(如Ubuntu)的服务器或VPS。如果打算部署国外地区可以选择
美国服务器,亚洲地区的话国内服务器或者VPS也够用。
2、服务器必须支持SSH连接才能远程执行命令。本地系统还必须安装像PuTTY这样的SSH客户端才能访问你的服务器。Linux和MacOS系统请使用内置的终端。
二、视频流服务器搭建教程
1、安装NGINX服务器
NGINX是用来接收和处理直播请求的核心软件,安装命令:
- sudo apt install -y nginx # 一键安装NGINX
复制代码装完后设置开机自启动:
- sudo systemctl enable nginx # 开启自启动
复制代码最后检查NGINX是否正常运行:
- sudo systemctl status nginx # 查看运行状态
复制代码如果显示 “active (running)”,说明NGINX已经就绪。
2、安装RTMP模块
RTMP协议专门用来传直播视频,能让观众实时看到画面。安装命令:
- sudo apt install -y libnginx-mod-rtmp # 安装RTMP模块
复制代码小提示:如果想装最新版,可以从GitHub下载源码编译,先装依赖项:
- sudo apt install build-essential git libpcre3-dev libssl-dev zlib1g-dev # 安装编译工具
复制代码然后克隆源码仓库:
- sudo git clone https://github.com/arut/nginx-rtmp-module.git # 克隆RTMP模块
- sudo git clone https://github.com/nginx/nginx.git # 克隆NGINX源码
复制代码进入 NGINX 目录编译安装:
- cd nginx # 进入NGINX源码目录
- ./auto/configure --add-module=../nginx-rtmp-module # 配置编译参数
- make # 编译源码
- sudo make install # 安装最新版NGINX
复制代码3、配置NGINX开启直播功能
用文本编辑器打开配置文件:
- sudo nano /etc/nginx/nginx.conf # 打开NGINX配置文件
复制代码在文件末尾添加 RTMP 配置块,比如这个基础设置:
- rtmp {
- server {
- listen 1935; # RTMP默认端口,别随便改
- chunk_size 4096; # 视频块大小,默认4KB
- application live { # 直播应用名,访问路径是/live
- live on; # 开启直播模式,允许多人同时连接
- record off; # 不保存视频到服务器
- }
- }
- }
复制代码说明:
如果你想限制直播推流的IP,可以加这两句:
- allow publish 127.0.0.1; # 只允许本地IP推流
- deny publish all; # 拒绝其他IP推流
复制代码调参数:
chunk_size太大导致延迟高,太小会增加传输负担;
max_connections设太高会占满带宽,建议先用默认值测试。
4、保存配置并重启NGINX
改完配置按Ctrl+X→Y→Enter保存,然后检查语法错误:
没问题的话重新加载配置:
- sudo nginx -s reload # 应用新配置
复制代码5、搭建CDN加速直播流
CDN就像分布在各地的缓存服务器,能让观众就近获取视频,减少延迟和服务器压力。以Cloudflare为例,操作步骤:
注册 Cloudflare账号,添加你的域名(先把域名解析到服务器 IP);
在 Cloudflare里选择免费套餐,确认 DNS 记录指向正确;
复制Cloudflare提供的名称服务器,到域名管理平台修改 DNS 配置;
回到Cloudflar 检查名称服务器是否生效,完成配置。
三、测试视频流服务器
可以通过VLC等媒体播放器访问URL来查视频是否正确流式传输到服务器。
1、从官方页面下载VLC并将其安装在您的本地计算机上。
2、打开媒体播放器,选择 媒体 在左上角,然后单击 打开网络流.
3、在Open Media窗口中,选择Network选项卡。
将RTMP流URL粘贴到提供的字段中,然后单击Stream 以开始流式传输视频。