nginx+rtmp+livePush实现视频转流推流

需要的工具:

一台电脑。

一个美美的心情。

centos环境

nginx(linux下部署)

rtmp模块(linux下部署)

livePush.war包(windows下部署)

OBS(测试转流工具)

VLC(测试拉流工具)

-----------------------我的分割线--------------------

先安装nginx+rtmp模块( nginx-rtmp-module-maste),没什么好说的。

1、wget http://nginx.org/download/nginx-1.8.0.tar.gz(如果连接没有或者更换的,移步 nginx下载 )选择你喜欢的版本

2、tar -zxvf nginx-1.8.0.tar.gz

3、 cd nginx-1.8.0 

4、./configure --prefix=/usr/local/src/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module   ./configure --prefix=/usr/local/src/nginx  --add-module=../nginx-rtmp-module-maste  --with-http_ssl_module   

5、make && make install 

中间如果少什么模块,就去装。

然后启动nginx。浏览器中能打开就好。

可能回有这样的一个问题   nginx: [emerg] unknown directive "rtmp"

网上说法很多,都是说没有安装rtmp模块,但是我之前是安装好了的。后来rtmp有多种。一定要选择源码类的哦。(nginx-rtmp-module-maste)

直接上nginx配置文件。

##################RTMP服务#################
rtmp {

    server {

        listen 1935;

        chunk_size 4096;

        application video {
           play /usr/local/data/video;
        }

                application live{ #第一处添加的直播字段
                        live on;#直播模式

                        hls on; #这个参数把直播服务器改造成实时回放服务器。

                        wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。

                        hls_path /tmp/hls; #切片视频文件存放位置。

                        hls_fragment 10s;     #每个视频切片的时长。

                        hls_playlist_length 60s;  #总共可以回看的事件,这里设置的是1分钟。

                        hls_continuous on; #连续模式。

                        hls_cleanup on;    #对多余的切片进行删除。

                        hls_nested on;     #嵌套模式。
                }
    }

}
####启动浏览器查看http://localhost:80/stat
http {
    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  localhost;

                location /stat {
                                #第二处添加的location字段。
                                rtmp_stat all;
                                rtmp_stat_stylesheet stat.xsl;
                }

                location /stat.xsl {
                        #第二处添加的location字段。
                        root /usr/nginx/nginx-rtmp-module-master/;
                }

                location /live {  #这里也是需要添加的字段。

                        types {

                                application/vnd.apple.mpegurl m3u8;
                                video/mp2t ts;
                        }
                        alias /opt/video/hls;
                        expires -1;
                        add_header Cache-Control no-cache;
        }

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

这个配置文件直接用就ok了。

然后创建文件夹   /tmp/hls/

给hls赋权限。chmod 777 /tmp/hls

我这里设置的是最高权限哦。

至此到这里,nginx+rtmp就已经搞定了。

现在启动nginx

1、cd /usr/local/nginx/sbin/

2、./nginx -c /usr/nginx/nginx-1.8.1/conf/nginx.conf

再浏览器中打开就ip,看看nginx是否成功启动成功


打开OBS软件,设置一下


可以再/tmp/hls下看到有一个名叫app的文件夹。我们看一下内容。


这里有数据就ok了。

然后下一步。

使用VLC拉流。能成功的获取到视频才算是成功的嘛。


可以看到,这里已经能成功的拉起到刚才推送的视频了。到此为止,已经满足一部分的看官了。

但是呢。我们需要继续往下走哦。

使用livePush来代替OBS,毕竟实际项目使用,没办法使用OBS。他只能推一个哦。

拿到livePush的war包,再tomcat下启动,访问网址就出现下面的页面


这个应用名就是你推的流的名。

视频源是从网上随便找了个。发布地址应该指向到nginx上。然后点击发布。生成一个播放地址,拿这个播放地址去刚才的VLC中去拉流就ok了。


到此为止,已经结束咯。哦。对了,war包。传送门在此  失效请联系我。

送上自己的公众号.



文章来源: nginx+rtmp+livePush实现视频转流推流

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:nginx+rtmp+livePush实现视频转流推流