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

服务器
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。

[[334702]]

 作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delay

写在前面

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

安装Nginx

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

1.安装依赖环境

  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

  1. wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz 
  2. tar -zxvf openssl-1.0.2s.tar.gz 
  3. cd /usr/local/src/openssl-1.0.2s 
  4. ./config --prefix=/usr/local/openssl-1.0.2s 
  5. make 
  6. make install 

3.安装pcre

  1. wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz 
  2. tar -zxvf pcre-8.43.tar.gz 
  3. cd /usr/local/src/pcre-8.43 
  4. ./configure --prefix=/usr/local/pcre-8.43 
  5. make 
  6. make install 

4.安装zlib

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

5.下载nginx-rtmp-module

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

使用命令:

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

6.安装Nginx

  1. wget http://nginx.org/download/nginx-1.19.1.tar.gz 
  2. tar -zxvf nginx-1.19.1.tar.gz 
  3. cd /usr/local/src/nginx-1.19.1 
  4. ./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 
  5. make 
  6. make install 

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

配置Nginx

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

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

在文件中添加如下内容。

  1. rtmp { 
  2.     server { 
  3.         listen 1935;  #监听的端口 
  4.         chunk_size 4096;    
  5.         application hls {  #rtmp推流请求路径   
  6.             live on;     
  7.             hls on;     
  8.             hls_path /usr/share/nginx/html/hls;     
  9.             hls_fragment 5s;     
  10.         }     
  11.     }     
  12. }  

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

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

接下来,修改http中的server模块:

  1. server {   
  2.     listen       81;   
  3.     server_name  localhost;   
  4.  
  5.     #charset koi8-r;   
  6.  
  7.     #access_log  logs/host.access.log  main;   
  8.  
  9.     location / {   
  10.         root   /usr/share/nginx/html;   
  11.         index  index.html index.htm;   
  12.     }   
  13.  
  14.     #error_page  404              /404.html;   
  15.  
  16.     # redirect server error pages to the static page /50x.html   
  17.     #   
  18.     error_page   500 502 503 504  /50x.html;   
  19.     location = /50x.html {   
  20.         root   html;   
  21.     } 

然后启动Nginx:

  1. /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。

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

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

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

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

设置完成我们就可以 开始推流了。

拉流测试地址

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

 

本文转载自微信公众号「 冰河技术」,可以通过以下二维码关注。转载本文请联系 冰河技术公众号。

 

责任编辑:武晓燕 来源: 冰河技术
相关推荐

2023-10-12 19:46:26

Nginx服务器

2020-07-14 07:46:55

NginxIPIP段

2021-01-29 14:41:43

Nginx直播服务器rtmp

2022-01-08 19:18:57

OBSLinux实时流媒体服务器

2018-10-26 09:52:25

Nginx服务器负载均衡

2021-09-10 10:07:17

Nginx虚拟主机服务器

2018-10-08 08:45:12

Nginx服务器容器

2015-09-06 09:53:41

DockerWeave

2010-05-06 14:15:02

流媒体服务器负载均衡

2019-10-22 10:20:13

Nginx反向代理服务器

2019-04-08 08:39:47

Nginx代理服务器

2020-04-15 20:57:57

NginxWeb服务器

2017-12-27 10:18:09

ApacheNginx服务器

2021-07-28 23:32:09

Nginx服务器Https

2010-02-06 10:24:52

CentOS Ngin

2018-10-29 09:39:34

NginxVSFTP服务器

2013-05-30 09:25:43

2024-02-29 07:45:38

Nginx服务模块

2017-03-06 09:26:56

Nginx服务器 SSL

2019-12-24 14:42:51

Nginx服务器架构
点赞
收藏

51CTO技术栈公众号