千家信息网

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

发表于:2024-10-12 作者:千家信息网编辑
千家信息网最后更新 2024年10月12日,写在开始小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能。同时提供按需加载、自定义组件和更多访问层级等新特性,增强了第三方平台的能力,以满足日趋丰富的业务需求。为
千家信息网最后更新 2024年10月12日Nginx学习之配置RTMP模块搭建推流服务

写在开始

小程序升级实时音视频录制及播放能力,开放 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.zipunzip  master.zip

停止原来的Nginx服务:

nginx -s stop

配置并编辑:

./configure --add-module=/home/nginx-rtmp-module-mastermake

复制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 -tnginx

播放

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

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

回看

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

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视频云的推流地址,推送经过压缩编码现场活动、教学、投影或者游戏等画面,同时观众可以通过和推流地址相对应的播放地址收看实时画面。

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

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

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

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

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

服务 视频 地址 文件 直播 程序 配置 功能 实时 问题 音视 模块 位置 服务器 第三方 网络 能力 观众 软件 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 租衣软件开发思路 云南创新软件开发咨询报价 网络安全控制技术是什么 服务器时间时区不对 hana抽数支持的数据库 茂名戴尔服务器高质量选择 做软件开发项目需要什么人 分布式数据库的元数据 好的it网络技术 数据库应用技术培训内容 汽车连锁软件开发 想做服务器开发的应届生 学校网络安全自查报告刘鹏鹏 计算机网络技术搜题app 连接数据库的工具微信小程序 中国网络安全与信息化部 三河市网络技术 济有科技管理软件开发商 网易决战斗罗服务器端 三次方智己服务器 长江大学计算机网络技术 浦东新区公司软件开发包括哪些 微信登录显示已连接服务器 sql数据库数据文件在哪里 支付宝中国网络技术成都 网易电脑版可以进手机版服务器 远程视频服务器价格表 观唐互联网科技有限公司 电脑加入文件共享服务器设置权限 软件开发前提出的问题
0