如何在Debian 10上搭建RTMP直播服务端
RTMP 是一种设计用来进行实时数据通信的网络协议开放协议,由Adobe Systems公司开发,被用来作为Flash播放器和服务器之间音频、视频和数据进行传输的协议。
如果你需要直播,如果你不是购买了例如阿里云,腾讯云的直播服务,你可以尝试搭建自己的RTMP服务器。如何搭建,看下面我们一步一步进行讲解。
这里以安装了 Debian10 系统的 VPS 服务器系统为例。
安装服务软件
服务端使用nginx配合nginx-rtmp-module模块提供RTMP服务。
1、nginx
2、nginx-rtmp-module
首先下载上面列出的软件及模块,Debian10 中可通过 wget 命令进行下载:
cd /tmp
wget http://nginx.org/download/nginx-1.19.10.tar.gz
下载完成后,通过以下命令解压nginx-1.19.10.tar.gz:
tar xvf nginx-1.19.10.tar.gz
通过git从gitee克隆下载nginx-rtmp-module模块到/opt/nginx目录:
cd /opt/nginx
git clone https://gitee.com/mirrors/nginx-rtmp-module.git
如果没有/opt/nginx目录可以通过mkdir命令创建,并将创建的目录权限修改为当前账号linux265:
sudo mkdir /opt/nginx
sudo chown -hR linux265: /opt/nginx
如果没有安装git命令,通过以下命令进行安装:
sudo apt install git
/opt/nginx目录和git命令创建和安装完成后,通过以下命令从gitee克隆下载nginx-rtmp-module模块:
git clone https://gitee.com/mirrors/nginx-rtmp-module.git
下载完成后,再次进入/tmp/nginx-1.19.10目录,执行如下的命令配置安装nginx:
sudo apt install gcc make openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev
./configure --add-module=/opt/nginx/nginx-rtmp-module
sudo make && sudo make install
如果一切顺利,nginx会默认安装在/usr/local/nginx目录中。
配置RTMP服务
进入/usr/local/nginx/conf目录,使用vim或nano命令编辑nginx.conf文件。
cd /usr/local/nginx/conf
sudo vim nginx.conf
配置内容如下:
#user nobody;
worker_processes 1;
error_log logs/error.log debug;
rtmp {
server {
listen 1935;
application myapp {
live on;
drop_idle_publisher 10s;
}
}
}
# HTTP can be used for accessing RTMP stats
http {
server {
listen 8080;
# This URL provides RTMP statistics in XML
location /stat {
rtmp_stat all;
# Use this stylesheet to view XML as web page
# in browser
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# XML stylesheet to view RTMP stats.
# Copy stat.xsl wherever you want
# and put the full directory path here
root /path/to/stat.xsl/;
}
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
location /dash {
# Serve DASH fragments
root /tmp;
add_header Cache-Control no-cache;
}
}
}
配置文件保存后,通过如下命令测试配置文件的正确性:
/usr/local/nginx/sbin/nginx -t
如果正确,执行如下命令,启动nginx服务:
cd /usr/local/nginx/sbin/
sudo ./nginx
正常启动后,在浏览器地址栏输入你的服务器地址,你会看到类似如下界面:
image直播推流
我们可以通过OBS来进行直播推流,首先你得下载安装OBS(OBS Studio),然后设置推流,设置类似如下:
image之后在OBS主界面,设置“来源”之后,点击"开始推流"
image之后,再次刷新网页,你会看到如下图所示:
image观看直播
拉流也就是所谓通过客户端来访问直播流,这时候我们可以通过VLC这个支持RTMP网络视频,配置播放源:
image这样就可以直接查看直播了。
以上讲解了如何在Debian10上搭建RTMP直播服务器方法,如果你感兴趣不妨尝试一下。