Nginx搭建流媒体服务器

本文介绍了如何使用Nginx、nginx-rtmp-module和nginx-http-flv-module搭建RTMP流媒体服务器,并通过OBSStudio推流,同时利用flv.js实现HTTP拉流播放。详细步骤包括软件准备、Nginx及模块的安装配置,以及推流和拉流的地址设置。
摘要由CSDN通过智能技术生成

1. 用到的软件

1. Nginx
nginx是开源的web服务器
官网: nginx

2. Nginx-rtmp-module
nginx安装nginx-http-rtmp模块后可以提供rtmp协议的流媒体服务
Github地址: nginx-rtmp-module

3. Nginx-http-flv-module
nginx-http-flv-module是将rtmp协议转换为http协议的模块
Github地址: nginx-http-flv-module

4. OBS Studio
推流软件,向流服务器推流

5. flv.js
Flv.js 是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。
Github地址:flv.js

2. 安装Nginx和flv模块

1. 下载nginx源码压缩包

wget http://nginx.org/download/nginx-1.23.4.tar.gz

在这里插入图片描述

2. 解压

tar -zxvf nginx-1.23.4.tar.gz 

在这里插入图片描述

3. 下载 nginx-http-flv-module并解压

这里使用gitcode的镜像源下载

wget https://gitcode.net/mirrors/winshining/nginx-http-flv-module/-/archive/master/nginx-http-flv-module-master.tar.gz
tar -zxvf nginx-http-flv-module-master.tar.gz 

3.执行解压后nginx目录下的configure命令并并配置要安装的模板

–prefix: nginx安装的路径

nginx-http-flv-module已经包含了nginx-rtmp-module ,所以不需要在单独安装rtmp模块

 ./configure --prefix=/export/server/nginx --add-module=nginx-http-flv-module-master

可能会提示缺少库文件,执行命令下面安装即可,再重新执行 configure命令

./configure: error: the HTTP rewrite module requires the PCRE library.

yum -y install pcre-devel

./configure: error: SSL modules require the OpenSSL library.

 yum -y install openssl-devel

4.编译,安装

make & make install

在这里插入图片描述

2. 配置nginx.conf文件并启动nginx

worker_processes  1;

events {
    worker_connections  1024;
}
# 添加RTMP服务
rtmp {

    server {
        listen 1935;
		chunk_size 4096;
        application live {  
            live on;
        }
	}

}
http {
	  # 引入其他配置文件
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
        # flv配置
       location /live {
						flv_live on;
            	chunked_transfer_encoding  on; #open 'Transfer-Encoding: chunked' response
       #出现跨域问题时加上这些     	
       #add_header 'Access-Control-Allow-Credentials' 'true'; #add additional HTTP header
			#add_header 'Access-Control-Allow-Origin' '*'; #add additional HTTP header
			#add_header Access-Control-Allow-Headers X-Requested-With;
			#add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
			#add_header 'Cache-Control' 'no-cache';
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

启动nginx

./sbin/nginx

3. 开始推流

使用OBS进行推流
在这里插入图片描述对应的拉流地址为
rtmp://192.168.242.130:1935/live/starship

使用flv进行拉流的地址为
http://192.168.242.130:80/live?port=1935&app=live&stream=starship

看完后推荐看

  1. flv.js全面解析
  2. Nginx RTMP 模块 nginx-rtmp-module 指令详解
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值