【Nginx】若何使用Nginx搭建流媒体服务器实现直播?看完这篇我会了!!

admin 2个月前 (07-23) 科技 26 0

写在前面

最近几年,直播行业对照火,无论是传统行业的直播,照样购物、游戏、教育,都在涉及直播。作为在互联网行业奋斗了多年的小伙伴,你有没有想过若是使用Nginx搭建一套直播环境,那我们该若何搭建呢?别急,接下来,我们就一起使用Nginx来搭建一套直播环境。

安装Nginx

注重:这里以CentOS 6.8服务器为例,以root用户身份来安装Nginx。

1.安装依赖环境

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* autoconf automake zlib* fiex* libxml* libmcrypt* libtool-ltdl-devel* libAIo libaio-devel  bzr libtool

2.安装openssl

wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz
tar -zxvf openssl-1.0.2s.tar.gz
cd /usr/local/src/openssl-1.0.2s
./confIG --prefix=/usr/local/openssl-1.0.2s
make
make install

3.安装PCre

wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz
cd /usr/local/src/pcre-8.43
./configure --prefix=/usr/local/pcre-8.43
make
make install

4.安装zlib

wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd /usr/local/src/zlib-1.2.11
./configure --prefix=/usr/local/zlib-1.2.11
make
make

5.下载nginx-rtmp-module

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

使用下令:

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

6.安装Nginx

wget http://nginx.org/download/nginx-1.19.1.tar.gz
tar -zxvf nginx-1.19.1.tar.gz
cd /usr/local/src/nginx-1.19.1
./configure --prefix=/usr/local/nginx-1.19.1 --with-openssl=/usr/local/src/openssl-1.0.2s --with-pcre=/usr/local/src/pcre-8.43 --with-zlib=/usr/local/src/zlib-1.2.11 --add-module=/usr/local/src/nginx-rtmp-module --with-http_ssl_module
make
make install

这里需要注重的是:安装Nginx时,指定的是openssl、pcre和zlib的源码解压目录,安装完成后Nginx设置文件的完整路径为:/usr/local/nginx-1.19.1/conf/nginx.conf。

设置Nginx

设置Nginx主要是对Nginx的nginx.conf文件举行设置,我们可以在下令行输入如下下令编辑nginx.conf文件。

vim /usr/local/nginx-1.19.1/conf/nginx.conf

在文件中添加如下内容。

rtmp {
    server {
        listen 1935;  #监听的端口
        chunk_size 4096;   
        application hls {  #rtmp推流请求路径  
            live on;    
            hls on;    
            hls_path /usr/share/nginx/html/hls;    
            hls_fragment 5s;    
        }    
    }    
} 

其中,hls_path需要可读可写的权限。接下来,我们建立/usr/share/nginx/html/hls 目录。

mkdir -p /usr/share/nginx/html/hls
chmod -R 777 /usr/share/nginx/html/hls

接下来,修改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.19.1/sbin/nginx -c /usr/local/nginx-1.19.1/conf/nginx.conf  

使OBS推流

OBS(Open BroaDCaster Software) 是以互联网流媒体直播内容为目的免费和开放源码软件。需要下载这个软件,借助这个软件举行推流(电脑没有摄像头的貌似安装不了。。。)

OBS的下载链接为:https://obsproject.com/zh-cn/download。

安装后,桌面上会有一个如下所示的图表。

打开后我们需要有一个场景,并且在这个场景下有一个流的泉源(可以是窗口,若是选的是视频则会自动识别摄像头),接下来就是设置了。

在设置中最需要关注的就是流的设置,由于是自建的流媒体服务器以是我们根据如下所示的方式举行设置。

rtmp://你的服务器ip:端口(1935)/live #URL填写流的地址

设置完成我们就可以 最先推流了。

拉流测试地址

推荐一个拉流的测试地址,内里针对种种协议都能测试拉流测试,需要注重图中几个地方,由于我们使用的rtmp协议,我们选择这一栏,底下填写我们推流的地址和我们在上面obs的设置内里设置的流的名称,start, ok搞定!!!

【Nginx】若何使用Nginx搭建流媒体服务器实现直播?看完这篇我会了!! 第1张

福利

关注「 冰河手艺 」微信民众号,后台回复 “设计模式” 关键字领取《深入浅出JAVa 23种设计模式》PDF文档。回复“Java8”关键字领取《Java8新特征教程》PDF文档。

好了,今天就聊到这儿吧!别忘了点个赞,给个在看和转发,让更多的人看到,一起学习,一起提高!!

写在最后

若是你以为冰河写的还不错,请微信搜索并关注「 冰河手艺 」微信民众号,跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生手艺,「 冰河手艺 」微信民众号更新了大量手艺专题,每一篇手艺文章干货满满!不少读者已经通过阅读「 冰河手艺 」微信民众号文章,吊打面试官,乐成跳槽到大厂;也有不少读者实现了手艺上的飞跃,成为公司的手艺骨干!若是你也想像他们一样提升自己的能力,实现手艺能力的飞跃,进大厂,升职加薪,那就关注「 冰河手艺 」微信民众号吧,天天更新超硬核手艺干货,让你对若何提升手艺能力不再渺茫!

【Nginx】若何使用Nginx搭建流媒体服务器实现直播?看完这篇我会了!! 第2张

,

欧博APP下载

欢迎进入欧博APP下载(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务

AllBetGaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:【Nginx】若何使用Nginx搭建流媒体服务器实现直播?看完这篇我会了!!

网友评论

  • (*)

最新评论

站点信息

  • 文章总数:658
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1144
  • 评论总数:222
  • 浏览总数:10179