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

作者: 等会再说 | 来源:发表于2021-06-02 20:39 被阅读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直播服务器方法,如果你感兴趣不妨尝试一下。

    相关文章

      网友评论

        本文标题:如何在Debian 10上搭建RTMP直播服务端

        本文链接:https://www.haomeiwen.com/subject/qwaosltx.html