搭建Nginx-Rtmp 流媒体服务器

背景

如果学习研究或者对流媒体服务器要求不高的情况下,可以直接拿NRM作为服务器,它是基于Nginx这个经典的开源软件作为平台,以模块的形式,实现的RTMP的流媒体服务器。接下来,搭建此服务器,通过OBS推流,VLC拉流。当然,如果在工程中使用,完全可以自己实现推流和拉流的功能。

安装并运行NRM

下载Nginx

http://nginx.org/en/download.html

下载NRM

https://github.com/arut/nginx-rtmp-module

安装依赖包

apt-get install libpcre3 libpcre3-dev
apt-get install openssl libssl-dev

编译

cd nginx-1.12.2
./configure --add-module=/root/nginx/nginx-rtmp-module-master
make ; make install

设置配置文件: rtmp.conf

worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    
    
    worker_connections  1024;
}

rtmp {
    
    
    server {
    
    
        listen 1935;

        application myapp {
    
    
            live on;
        }
    }
}

运行

/usr/local/nginx/sbin/nginx -c /root/nginx/nginx-1.12.2/conf/rtmp.conf

推流

使用OBS推流。Linux版和Windows版都有,下载地址:

https://obsproject.com/

下载,安装,打开。导入视频源
在这里插入图片描述
进入设置
在这里插入图片描述
设置推流服务器
在这里插入图片描述
点击开始推流
在这里插入图片描述

拉流

在这里插入图片描述

遇到的问题

在这里插入图片描述
服务器设置好,OBS开始推流时,报出上面的错误。经过排查挺长时间,才找到原因:推流服务器地址设置有问题:
在这里插入图片描述
后面多了live,去掉就好了。主要是前期对obs设置推流地址不熟悉,从网上查了很多资料,弄混了。
这个串流秘钥可以作为设备地址进行推流,从而实现多设备转发,用处还是很大的。

FFmpeg推流

当然也可以通过FFmpeg进行推流,ffplay进行播放,都是可以的。
ffmpeg推流

ffmpeg -re -i test.mp4 -c:v libx264 -c:a copy -f flv rtmp://172.16.11.97:1935/myapp/123

ffplay拉流

ffplay -i rtmp://172.16.11.97:1935/myapp/123

效果

在这里插入图片描述
由于是分发机制,所以,只要服务器性能及带宽允许,可以接很多客户端来播放。

おすすめ

転載: blog.csdn.net/donglicaiju76152/article/details/107718114