nginx-rtmp搭建直播流(全网最详细教程)

由于我要和我女朋友看电影,所以要搭建个直播流网站,那样我们就能独享私人影院,没有超管打扰~

首先,需要准备,6个东西

1.gcc-c++ 编译环境     

CentOS

yum install -y gcc gcc-c++ autoconf wget
yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype* 

Ubantu

sudo apt-get install build-essential 
sudo apt-get install gcc 
sudo apt-get install g++

2.openssl 插件

openssl官网:http://www.openssl.org/

tar -zxvf tar -zxvf openssl-1.1.1d.tar.gz 
cd openssl-1.1.1d
sudo ./config --prefix=/usr/local/openssl-1.1.1d    #prefix指定安装目录
sudo make
sudo make install

3.pcre 插件

pcre官网:http://www.pcre.org/

tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35
sudo ./configure --prefix=/usr/local/pcre-8.35    #prefix指定安装目录
sudo make
sudo make install

4.zlib 插件

zlib官网:http://www.zlib.net/

tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
sudo ./configure --prefix=/usr/local/zlib-1.2.8    #prefix指定安装目录
sudo make
sudo make install

5.nginx-rtmp-module 流

官方github Git地址:https://github.com/arut/nginx-rtmp-module

unzip nginx-rtmp-module-master.zip 

6.nginx 基础

tar -zxvf nginx-1.14.0.tar.gz 

安装nginx

#cd nginx-1.14.0/
源码路径(非安装目录): --with--xxx=DIR   DIR一定是源码路径(解压后的路径)
add-module=DIR  DIR是unzip解压rtmp的的路径
#./configure --prefix=/usr/local/nginx-1.14.0  --with-openssl=/hadoop/sa12/openssl-1.1.1d --with-pcre=/hadoop/sa12/pcre-8.35  --with-zlib=/hadoop/sa12/zlib-1.2.8 --add-module=/hadoop/sa12/nginx-rtmp-module-master --with-http_ssl_module
#sudo make
#sudo make install

按照上面,一步一步来,就不会报错。有问题请评论区留言。我会进一步完善不足之处。

配置nginx

vi /usr/local/nginx-1.14.0/conf/nginx.conf

增加如下配置

rtmp {
    server {
        listen 1935;  #监听的端口
        chunk_size 4096;   
        application hls {  #rtmp推流请求路径  
            live on;    
            hls on;    
            hls_path /你的流存放路径;    #hls_path需要可读可写的权限。
            hls_fragment 5s;    #一个片段含5秒内容,也就是1给文件含有5秒的内容进行保存
        }    
    }    
} 

修改http中的server模块:

server {  
    listen       81;  
    server_name  localhost;  
  
    #charset koi8-r;  
  
    #access_log  logs/host.access.log  main;  
  
    location / {  
        root   /usr/share/nginx/html;  
        index  index.html index.htm;  
    }  
  
    #error_page  404              /404.html;  
  
    # redirect server error pages to the static page /50x.html  
    #  
    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   html;  
    } 

启动nginx

/usr/local/nginx-1.14.0/sbin/nginx -c /usr/local/nginx-1.14.0/conf/nginx.conf

 查看是否启动成功

  ps-ef |grep nginx

ok成了,接下来使用obs推流

打开i后是这样的(下面的箭头已经说明了各种功能)

这里注意(必须有摄像头和麦克风),笔记本可能会出现安装后用不了的情况,因为是双显卡,在显卡中设置添加obs为集成显卡显示即可。(双显卡,不指定的话,它不知道使用哪一个,会导致无法使用)

hls就是你刚刚配置nginx.conf中的application,串流密匙可以先不设置,设置后是关于你拉流的时候,需要加上密匙才能看到你的直播。(不设置,别人知道你的路径也可以直接拉流,也就是能看你的直播)

设置后保存,点开始推流。

去配置的 hls_path(刚刚nginx.conf里面配置的存放流文件的路径) 目录查看是否产生了文件

cd 你的hls_path路径

成功~

现在推流,以及服务器上的配置,完成了(最复杂 的部分你已经解决了)现在回到客户端拉流,这里有2钟一种是js,直接拉流。不安全(也就是斗鱼,b站 之类的直播),谁都能看。另一种是vlc app这里使用的是vlcAPP

客户端 VLC APP拉流

这里是手机,使用

第一步打开

                     点确定,地址右端末尾有给小箭头

等待5秒左右

ok,直播流搭建完成,并且测试成功。就是每过5秒因为包的原因会有短暂延迟。有朋友能解决的,请留言


参考资料:

https://blog.csdn.net/l1028386804/article/details/80022437

https://blog.csdn.net/baidu_19473529/article/details/80781623

发布了103 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_38403590/article/details/104085838