1. 前言
在前面3章中已经搭建好了nginx、nginx-rtmp-module、ffmpeg的环境,如未安装请先安装基础环境。安装教程如下。
nginx:https://blog.csdn.net/Aarstg/article/details/122619555
nginx-rtmp-module:https://blog.csdn.net/Aarstg/article/details/122626126
ffmpeg:https://blog.csdn.net/Aarstg/article/details/122668586
2. 搭建直播系统
1. 进入nginx配置文件目录
[root@localhost ~]# cd /usr/local/nginx/conf/
其中 nginx.conf 为默认加载的配置文件 nginx.conf.default 为默认配置的文件备份,如下所示。
2. 修改默认配置文件
复制一份 nginx.conf.default 文件并命名为live.conf。
[root@localhost conf]# cp nginx.conf.default live.conf
3. 配置RTMP直播
3.1 RTMP标签
NRM的基础标签的所有服务器都被配置在RTMP标签中。
3.2 Server标签
Server标签是服务标签,一个RTMP服务中可以有多个Server标签,每个Server标签可以监听不同端口,Server标签中的配置是应用于所有Application标签的。
3.3 Application标签
Application标签是应用标签,一个Server标签中可以有多个Application标签,Application标签中的配置是应用于其本身的,application name确保了在请求时进行准确的Application划分。
worker_processes 1;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application mylive {
live on;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
4. 防火墙规则
开放1935端口,使该端口可被外部请求访问。
[root@localhost conf]# firewall-cmd --zone=public --add-port=1935/tcp --permanent
RTMP协议是基于TCP协议的。重启防火墙使配置生效。
[root@localhost conf]# firewall-cmd --reload
重新启动nginx
[root@localhost conf]# nginx -c /usr/local/nginx/conf/live.conf
5. 上传一个视频到服务器
服务器新建一个文件夹用于存放本地视频。
[root@localhost conf]# mkdir /opt/video
[root@localhost conf]# cd /opt/video/
通过xftp工具上传视频至新建文件夹。
6. 推流
[root@localhost video]# ffmpeg -re -i ./f3pn.flv -b 4M -f flv rtmp://192.168.5.133:1935/mylive/6
7. 拉流
这里使用VLC流媒体播放器来拉流,此时正在直播的视频可以观看了。如下所示。
打开VLC并输入上方推流地址就可以观看推流视频了。
我的地址为:rtmp://192.168.5.133:1935/mylive/6,请输入自己对应的ip地址。
流媒体地址输入方式:媒体->打开网络串流
播放视频。
如果这里你成功了说明一个简单的流媒体播放服务环境就搭建成功了,后续章节更加精彩。