vlambda博客
学习文章列表

nginx搭建rtmp服务 FFmpeg推流

    玩树莓派恰好有相识的需求,也是推流和拉流,找资料实现了,这里分享一下给大家。

​RTMP:
     RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

​以上是百度百科对rtmp的解释。
nginx就不说了哈,大家都懂。

1.下载源码安装
    我这里是unbutu,需要先安装一下nginx的依赖包

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

下载nginx和rtmp源码

先创建文件夹
​    mkdir /usr/local/nginx
    cd /usr/local/nginx

wget源码,进行编译
​     wget http://nginx.org/download/nginx-1.12.2.tar.gz
     wget https://codeload.github.com/arut/nginx-rtmp-module/zip/master

解压,进行编译,rtmp源码是zip压缩的,所以我们需要用unzip解压
​     tar -zxvf nginx-1.12.2.tar.gz
    unzip master
解压master我们多了一个nginx-rtmp文件夹
    


​  cd nginx-1.12.2/
   #add-module后面是你rtmp源码的绝对路径,add添加模板
   ./configure --add-module=/usr/local/nginx/nginx-rtmp-module-master
    make && make install

测试nginx是否安装成功
​   cd /usr/local/nginx/sbin
   ./nginx -t

出现以下提示表示安装成功

nginx搭建rtmp服务 FFmpeg推流




​2.配置rtmp服务
    我们源码安装的nginx配置文件在/usr/local/nginx/conf/nginx.conf这里

vim  /usr/local/nginx/conf/nginx.conf

nginx搭建rtmp服务 FFmpeg推流


在http在添加rtmp服务,如下:
​rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        application live
        {
            live on;    #开启实时
        }
    }

在http{}中添加server,配置我们拉流
​server {
        listen       80;    #通过80端口拉流
        location /stat{
                rtmp_stat all;
                rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl{
              #root后面是你rtmp源码的路径
               root /usr/local/nginx/nginx-rtmp-module-master;
        }
    }

这里我们nginx.conf已经配置好了,先杀死nginx服务
​    killall nginx
​    #重启nginx
    cd /usr/local/nginx/sbin
    ./nginx -s reload

没有问题的话,访问url,出现如下:

nginx搭建rtmp服务 FFmpeg推流



​3.FFmpeg推流
    我这里是unbutu,直接输入以下命令安装ffmpeg
​    apt install ffmpeg

接下来上传好我们的视频文件,进入目录,使用ffmpeg进行推流

nginx搭建rtmp服务 FFmpeg推流

ps:a.mp4太短了....看不到....尴尬


​    ffmpeg -i b.mp4  -f flv rtmp://ip/live/test

ps:记得ip替换成你的ip😌

-i 视频文件
-f 设置推送格式
后面rtmp是我们推送的地址

出现如下,表示已经成功的在推流了

nginx搭建rtmp服务 FFmpeg推流



​4.拉流
    我这里安卓,下载了一个万能视频播放器,进行拉流


nginx搭建rtmp服务 FFmpeg推流


添加流的地址

nginx搭建rtmp服务 FFmpeg推流


打开....

nginx搭建rtmp服务 FFmpeg推流


成功拉流了


推流完成,unbutu提示了



感谢您百忙之中抽出时间阅读,希望文中内容能带给您帮助


                    -----------🙏----------