nginx搭建rtmp协议流媒体服务器

最近和客户对接时问道怎么在不同网段中接收数据流,然后就想到了rtmp推流,客户不会搭建服务器,只能自己动手了,吭吭哧哧终于搞定了。

--------------------------------------------------------以下正文-----------------------------------------------------------

我是在linux上搭建的,虚拟机IP地址为192.168.0.111  设定端口为1935

为了让大家少踩我踩过的坑,所以将搭建rtmp推流服务器的软件包打包到百度网盘:

链接:https://pan.baidu.com/s/1WfiVux9M8euVTMa9hDtqIg
提取码:nwe7

nginx-1.15.5和nginx-rtmp-module是搭建服务器需要的

pcre-8.37和zlib-1.2.11,以及openssl是安装nginx需要安装的库,根据自己实际情况,按报错提示安装,

1.安装nginx这步不做详细说明,网上一搜一大堆。

./configure --add-module=../nginx-rtmp-module

make

make install

2.安装结束后  确定访问服务器URL

打开文件  vim /usr/local/nginx/conf/nginx.conf不用管文件里面的内容,直接shift +g到文件末尾

添加

rtmp {
    server {
        listen 1935; #监听的端口
        chunk_size 4000;
        application livestream{
            live on; #开启实时
            hls on; #开启hls
            hls_path /usr/local/nginx/html/tv_file; #rtmp推流请求路径,文件存放路径
            hls_fragment 5s; #每个TS文件包含5秒的视频内容
        }
    }
}

然后保存,确定访问服务器URL为rtmp://192.168.0.111:1935/livestream。

3.运行  ##  sudo /usr/local/nginx/sbin/nginx

一般会出现以下问题

 处理方法是:

#  ps -elf | grep nginx

显示如下:

 使用kill -9 pid 将master 和worker两个进程都杀死。

然后重新启动  #sudo /usr/local/nginx/sbin/nginx     

正常无输出

4.然后在浏览器输入对应本机IP  比如我的就是192.168.0.111

如下图显示则表示安装成功

5.ffmpeg测试

#ffmpeg -re -i 2021_11_25_163240.MP4 -c copy -f flv rtmp://192.168.0.111:1935/livestream

显示如下:

 则表示推流成功,在VLC上输入URL : rtmp://192.168.0.111:1935/livestream则可实时观看播放的视频。

我自己一直卡在确定URL上,最后发现,自己一直在http下的server里面修改,而实际确实需要在rtmp下的server修改。


版权声明:本文为yyyljw原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。