写在前面
最近几年, 直播行业比较火, 无论是传统行业的直播, 还是购物, 游戏, 教育, 都在涉及直播. 作为在互联网行业奋斗了多年的小伙伴, 你有没有想过如果使用 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. https://obsproject.com/zh-cn/download。
安装后, 桌面上会有一个如下所示的图表.
打开后我们需要有一个场景, 并且在这个场景下有一个流的来源 (可以是窗口, 如果选的是视频则会自动识别摄像头), 接下来就是设置了.
在配置中最需要关注的就是流的配置, 由于是自建的流媒体服务器所以我们按照如下所示的方式进行配置.
rtmp:// 你的服务器 ip: 端口 (1935)/live #URL 填写流的地址
设置完成我们就可以 开始推流了.
拉流测试地址
推荐一个拉流的测试地址, 里面针对各种协议都能测试拉流测试, 需要注意图中几个地方, 由于我们使用的 rtmp 协议, 我们选择这一栏, 底下填写我们推流的地址和我们在上面 obs 的设置里面配置的流的名称, start, ok 搞定!!!
福利
关注「 冰河技术 」微信公众号, 后台回复 "设计模式" 关键字领取《深入浅出 Java 23 种设计模式》PDF 文档. 回复 "Java8" 关键字领取《Java8 新特性教程》PDF 文档.
好了, 今天就聊到这儿吧! 别忘了点个赞, 给个在看和转发, 让更多的人看到, 一起学习, 一起进步!!
写在最后
如果你觉得冰河写的还不错, 请微信搜索并关注「 冰河技术 」微信公众号, 跟冰河学习高并发, 分布式, 微服务, 大数据, 互联网和云原生技术,「 冰河技术 」微信公众号更新了大量技术专题, 每一篇技术文章干货满满! 不少读者已经通过阅读「 冰河技术 」微信公众号文章, 吊打面试官, 成功跳槽到大厂; 也有不少读者实现了技术上的飞跃, 成为公司的技术骨干! 如果你也想像他们一样提升自己的能力, 实现技术能力的飞跃, 进大厂, 升职加薪, 那就关注「 冰河技术 」微信公众号吧, 每天更新超硬核技术干货, 让你对如何提升技术能力不再迷茫!
来源: https://www.cnblogs.com/binghe001/p/13363105.html