nginx怎么使用nginx-rtmp-module模块实现|直播|间功能

发布时间 - 2023-05-19 00:00:00    点击率:

系统环境

wujianjun@wujianjun-work ~ $ uname -a
linux wujianjun-work 4.10.0-37-generic #41~16.04.1-ubuntu smp fri oct 6 22:42:59 utc 2017 x86_64 x86_64 x86_64 gnu/linux

软件环境

obs(open broadcaster software) v20.0.1 (linux)

nginx version: nginx/1.13.6

built by gcc 5.4.0 20160609 (ubuntu 5.4.0-6ubuntu1~16.04.5)

built with openssl 1.0.2g 1 mar 2016

tls sni support enabled

configure arguments: –with-pcre=pcre-8.38 –add-module=nginx-rtmp-module-1.1.11

nginx+obs安装及配置 安装obs

wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install ffmpeg
wujianjun@wujianjun-work ~ $ sudo apt-get install obs-studio
wujianjun@wujianjun-work ~ $ sudo add-apt-repository ppa:obsproject/obs-studio
wujianjun@wujianjun-work ~ $ sudo apt-get update && sudo apt-get install obs-studio

nginx加装rtmp模块

nginx-rtmp-module (  )

wujianjun@wujianjun-work ~ $ sudo apt-get install build-essential
wujianjun@wujianjun-work ~ $ wget wget http://nginx.org/download/nginx-1.13.6.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget https://github.com/arut/nginx-rtmp-module/archive/v1.1.11.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf v1.1.11.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ tar -xvf pcre-8.38.tar.gz
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all
总用量 748
drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:39 .
drwxr-xr-x 63 wujianjun wujianjun 4096 10月 15 11:33 ..
drwxr-xr-x 6 wujianjun wujianjun 4096 10月 15 11:33 auto
-rw-r--r-- 1 wujianjun wujianjun 282456 10月 10 23:22 changes
-rw-r--r-- 1 wujianjun wujianjun 430416 10月 10 23:22 changes.ru
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 conf
-rwxr-xr-x 1 wujianjun wujianjun 2502 10月 10 23:22 configure
drwxr-xr-x 4 wujianjun wujianjun 4096 10月 15 11:33 contrib
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 html
-rw-r--r-- 1 wujianjun wujianjun 1397 10月 10 23:22 license
drwxr-xr-x 2 wujianjun wujianjun 4096 10月 15 11:33 man
drwxrwxr-x 6 wujianjun wujianjun 4096 2月 13 2017 nginx-rtmp-module-1.1.11
drwxr-xr-x 7 wujianjun wujianjun 4096 11月 23 2015 pcre-8.38
-rw-r--r-- 1 wujianjun wujianjun  49 10月 10 23:22 readme
drwxr-xr-x 9 wujianjun wujianjun 4096 10月 15 11:33 src
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ./configure --with-pcre=pcre-8.38 --add-module=nginx-rtmp-module-1.1.11
wujianjun@wujianjun-work ~/nginx-1.13.6 $ make && sudo make install
wujianjun@wujianjun-work ~/nginx-1.13.6 $ ls -all /usr/local/nginx/
总用量 24
drwxr-xr-x 6 root root 4096 10月 15 16:11 .
drwxr-xr-x 11 root root 4096 10月 15 16:11 ..
drwxr-xr-x 2 root root 4096 10月 15 16:11 conf
drwxr-xr-x 2 root root 4096 10月 15 16:11 html
drwxr-xr-x 2 root root 4096 10月 15 16:11 logs
drwxr-xr-x 2 root root 4096 10月 15 16:11 sbin

增加rtmp协议配置

wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo vi /usr/local/nginx/conf/nginx.conf

在nginx.conf文件末尾增加以下rtmp协议的配置

rtmp {
 server {
  listen 1935;
  chunk_size 4096;

  application live {
   live on;
   record off;
  }
 }
}

启动&测试

启动nginx

wujianjun@wujianjun-work ~/nginx-1.13.6 $ sudo /usr/local/nginx/sbin/nginx

启动obs

打开刚安装的obs软件,在来源处配置图像的推送来源(我这里选择窗口捕获),点击右下角”设置”,进行如下图配置流推送地址

配置完成后,点击”开始推流”

启动支持网络流播放的视频播放器(演示使用vlc播放器)

配置网络流播放的地址,如下图:

当点击”播放”后,稍等几秒,即可看到播放器显示了obs捕获的图像了。

由于视频流需要通过网络进行传输,所以|直播|图像会有几秒的延迟。

http访问|直播|视频

1、更改nginx.conf中配置,增加hls配置(hls是在流媒体服务器中用来存放流媒体的文件夹),再次hls所在目录设置为http协议访问目录即可,更改后的配置如下:

rtmp {
 server {
  listen 1935;
  chunk_size 4096;

  application live {
   live on;
   hls on;
   hls_path /usr/share/nginx/html/hls;
   hls_fragment 5s;
  }
 }
}

http {
 server {
 listen 80;
 .....
 location / {
   #root html;
   root /usr/share/nginx/html;
   index index.html index.htm;
 }
 .....
 }
}

注意:hls所在目录nginx的用户必须有写入权限。

2、obs软件配置录制流名称

在配置obs推送流url的下方有一个设置”流名称”的地方,这里可以随意填写一个名称(我这里示例填入”test”)

3、重启一下nginx与obs软件,我们即可在手机浏览器中输入 http://ip/hls/test.m3u8 即可通过手机播放|直播|视频。(|直播|延迟有点大,后续出文章优化)


# nginx  # http  # linux  # ubuntu  # 播放器  # 流媒体  # 如下图  # 几秒  # 器中  # 是在  # 会有  # 重启  # 设置为  # 填入 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  如何在阿里云虚拟主机上快速搭建个人网站?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何解决hover在ie6中的兼容性问题  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  JS弹性运动实现方法分析  如何在新浪SAE免费搭建个人博客?  深入理解Android中的xmlns:tools属性  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  千库网官网入口推荐 千库网设计创意平台入口  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  如何在万网开始建站?分步指南解析  JavaScript实现Fly Bird小游戏  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何自定义建站之星网站的导航菜单样式?  JavaScript中的标签模板是什么_它如何扩展字符串功能  怎样使用JSON进行数据交换_它有什么限制  如何在阿里云虚拟服务器快速搭建网站?  如何在搬瓦工VPS快速搭建网站?  如何在万网自助建站平台快速创建网站?  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  图册素材网站设计制作软件,图册的导出方式有几种?  如何在局域网内绑定自建网站域名?  香港服务器租用费用高吗?如何避免常见误区?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  深圳网站制作培训,深圳哪些招聘网站比较好?  如何选择PHP开源工具快速搭建网站?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何用好域名打造高点击率的自主建站?  如何快速辨别茅台真假?关键步骤解析  javascript基本数据类型及类型检测常用方法小结  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  如何在景安服务器上快速搭建个人网站?  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Internet Explorer官网直接进入 IE浏览器在线体验版网址  零基础网站服务器架设实战:轻量应用与域名解析配置指南  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  Laravel怎么为数据库表字段添加索引以优化查询