Nginx学习之配置RTMP模块搭建推流服务
admin
2023-03-14 07:01:21
0

写在开始

小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能。同时提供按需加载、自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求。

为更高效地连接用户与商家,小程序提供了实时音视频录制及播放组件。符合类目要求的小程序自助开通后,可自建或使用云服务,实现单向、双向甚至多向的音视频功能,如在线授课、远程咨询、视频客服,以及多人会议等。

2017-12-26微信小程序推送了这样一条消息,文档,代码也是简单的一笔带过,用户需要自建或使用云服务,实现单向、双向甚至多向的音视频功能。目前仅支持 flv, rtmp 格式。

本篇博客通过介绍使用nginx的rtmp模块来使nginx服务支持rtmp协议,可以完成推流和播放的功能。

开发环境

Linux (centos7),Nginx (openresty),nginx-rtmp-module

安装

由于之前已经安装过了openresty,详见博文。这里我们只需要安装nginx-rtmp-module模块即可。

下载并解压模块:

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
unzip  master.zip

停止原来的Nginx服务:

nginx -s stop

配置并编辑:

./configure --add-module=/home/nginx-rtmp-module-master
make

复制Nginx:

## 路径根据自己软件路径自行配置
cp /home/openresty/build/nginx-1.11.2/objs/nginx /usr/local/openresty/nginx/sbin

配置rtmp服务:

rtmp {                #RTMP服务
    server {
       listen 1935;  #//服务端口
       chunk_size 4096;   #//数据传输块的大小
       application vod {
           play /opt/video; #//视频文件存放位置。
       }
       application live{ #直播
           live on;
       }
   }
}

检查并启动服务:

nginx -t
nginx

播放

上传一个视频文件test.flv至/opt/video目录。

下载一个VLC media player,工具栏-媒体-打开网络串流-网络,然后偶输入网络URL(rtmp://ip:port/vod/test.flv),点击播放。

Nginx学习之配置RTMP模块搭建推流服务

回看

实时回看视频服务器的配置:

events {
    use epoll;# 选择epoll模型可以达到最佳的IO性能
    worker_connections  1024;
}

rtmp {                #RTMP服务
    server {
       listen 1935;  #//服务端口
       chunk_size 4096;   #//数据传输块的大小
       application vod {
           play /opt/video; #//视频文件存放位置。
       }
       application live{ #直播
           live on;
           hls on; #这个参数把直播服务器改造成实时回放服务器。
           wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。
           hls_path /opt/video/hls; #切片视频文件存放位置。
           hls_fragment  600s;     #设置HLS片段长度。
           hls_playlist_length 10m;  #设置HLS播放列表长度,这里设置的是10分钟。
           hls_continuous on; #连续模式。
           hls_cleanup on;    #对多余的切片进行删除。
           hls_nested on;     #嵌套模式。
       }
   }
}

HTTP服务:

server {
        listen       80;
        server_name  rtmp.52itstyle.com;

        location /stat {
          rtmp_stat all;
           rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /home/nginx-rtmp-module-master/;
        }

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /live {  #这里也是需要添加的字段。
            types {  
               application/vnd.apple.mpegurl m3u8;  
               video/mp2t ts;  
            }
            alias /opt/video/hls;
            expires -1;
            add_header Cache-Control no-cache; 
            add_header Access-Control-Allow-Origin *;
        }  
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

微信推流

手机打开小程序页面,进行视频推流服务,稍后我们会在/opt/video/hls/itstyle 目录下发现一些ts文件和index.m3u8文件。

注意 url中的itstyle可以随便定义,相当于一个房间标识。

PC推流

PC 直播是在 PC(windows/mac)上借助安装的推流软件 OBS(推荐)或者 XSplit 向RTMP视频云的推流地址,推送经过压缩编码现场活动、教学、投影或者游戏等画面,同时观众可以通过和推流地址相对应的播放地址收看实时画面。

Nginx学习之配置RTMP模块搭建推流服务

PC 直播流程非常简单,主要步骤:

  • 通过RTMP自定义一个推流地址,解决往哪推流的问题;
  • 采用第三方的推流软件,设置推流音视频源以及编码参数,解决推什么内容的问题;
  • 观众就可以使用我们提供的 RTMP DEMO 通过设置播放地址即可进行观看,解决内容触达到观众那里的问题。

Nginx学习之配置RTMP模块搭建推流服务

推荐阅读:第三方推流工具使用指南

Web播放

xiaozhibo.html:



    
        
        
        
        小直播
        
        
        
        
        
        
        
    
    
        

跨域问题crossdomain.xml放置在网站根目录:


  

测试访问地址:http://rtmp.52itstyle.com/xiaozhibo.html

参考文档:

http://www.cnblogs.com/zx-admin/p/5783523.html

https://cloud.tencent.com/document/product/267

https://github.com/arut/nginx-rtmp-module/wiki/Directives#rtmp

作者: 小柒

出处: https://blog.52itstyle.com

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

相关内容

热门资讯

正式开港运营,河南龙头大港来了... 【编者按】 经济发展,交通先行。交通数据中,有人间烟火气的回归,有经济向好的速率;经济数据中,交通运...
玩家攻略科普“微乐陕西三代一.... 有 亲,根据资深记者爆料微乐陕西三代一是可以开挂的,确实有挂(咨询软件无...
科技赋能鲜果路 铸“链”兴农促... 冬日的暖阳下,位于砀山县砀城镇的安徽爱泽供应链管理有限公司(以下简称“安徽爱泽”)厂区里一片繁忙景象...
黄强主持召开省委科技委员会第二... 12月22日,省委书记、省委科技委主任黄强主持召开省委科技委员会第二次会议。他强调,要深入学习贯彻党...
【第一财经】“乐禧乾安麻将.有... 家人们!今天小编来为大家解答乐禧乾安麻将透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里...
今日重大通报“一言棋牌.真的有... 今日重大通报“一言棋牌.真的有挂吗?”确实真的有挂您好,一言棋牌这个游戏其实有挂的,确实是有挂的,需...
我来教教您“火神牛牛.可以开挂... 有 亲,根据资深记者爆料火神牛牛是可以开挂的,确实有挂(咨询软件无需打开...
【今日要闻】“麻友圈2挪来挪去... 【今日要闻】“麻友圈2挪来挪去.开挂器?”必胜开挂神器您好,麻友圈2挪来挪去这个游戏其实有挂的,确实...
终于了解“掌酷十三张.怎么开挂... 家人们!今天小编来为大家解答掌酷十三张透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买...
终于明白“暗宝.怎么装挂?”透... 您好:暗宝这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏中打...