Linux学习|Gentoo/Arch/FreeBSDLinux学习之路我用 Linux

如何在Debian 10上搭建RTMP直播服务端

2021-06-02  本文已影响0人  等会再说

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直播服务器方法,如果你感兴趣不妨尝试一下。

上一篇下一篇

猜你喜欢

热点阅读