一. 前言

RTMP(Real Time Messaging Protocol)称为实时消息传送协议,它是 Adobe 公司为 Flash 播放器和服务器之间传输音视频开发的私有协议。RTMP 属于应用层协议,传输层需要靠 TCP 来保证消息的可靠性,更多 RTMP 相关的内容可以参考雷博士的这篇博客。

nginx 不仅可以搭建一个高性能 Web 服务器,还有很多扩展模块,例如 nginx-rtmp-module,默认情况下安装 nginx 是不包含该模块的,需要先将 nginx-rtmp-module 下载到本地,然后在安装 nginx 的时候指定 ./configure --add-module=nginx-rtmp-module的路径,如果你对安装 nginx 不熟悉,建议参考这篇博客。

二. 搭建RTMP流服务器

安装好加入 nginx-rtmp-module 的 nginx 后,我们需要修改 nginx.conf 文件加入与 RTMP 相关的配置,该配置文件默认在安装路径下的 conf 文件夹里。

rtmp {server {listen 1935;chunk_size 4096;application live {live on;record off;allow play all;play /opt/vod;}}#server {#   listen 1936;#   chunk_size 4096;#   application vod {# #   }#}
}

nginx.conf 文件添加 rtmp 相关的配置如上所示,一个 rtmp 标签下可以有多个 server 标签,每个 server 标签可以监听不同的端口,一个 server 标签下也可以有多个不同的应用,确保了请求的时候可以根据应用来划分。

server 标签下的 listen 1935 表示监听 1935 端口,chunk_size 4096 表示发包时候的数据传输块大小,application live 表示创建了一个 live 的应用,application 标签下的 live on 表示打开流传输功能,record off 表示关闭录制,allow play all 表示允许所有用户连接该流应用,play /opt/vod/ 表示视频存放的路径,只要我们把视频文件放入 /opt/vod/ 目录下就可以通过 RTMP 访问到。

完成配置文件的修改后需要启动 nginx。假设当前已经在 nginx 的 sbin 目录下,命令行输入 ./nginx 启动即可启动。

三. 验证流服务器的功能

假设 /opt/vod/ 目录下已经有一个视频文件(中国合伙人.flv),我们可以使用 VLC 播放该网络流文件,URL 格式为:

rtmp://流服务器地址:端口号/应用名/视频文件名,如下所示。

当然也可以通过 ffmpeg 推流的方式将指定的视频流推送到该服务器,然后其他地方再拉取下来,例如将摄像头采集到的画面编码之后推送到该服务,再用手机拉取该视频流就可以做成一个监控系统,这里不过多讲述,到此一个 RTMP 流服务器就搭建成功了。

使用nginx搭建一个RTMP流服务器相关推荐

  1. Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播)

    文章目录 Linux上利用nginx搭建一个简单的rtmp视频流服务器(不涉及直播) 一.基础环境搭建 二.构建Nginx 下载nginx-rtmp-module 安装Nginx 编译nginx,代理 ...

  2. 使用nginx搭建HTTP FLV流媒体服务器

    使用nginx搭建HTTP FLV流媒体服务器 文章目录 使用nginx搭建HTTP FLV流媒体服务器 1 HTTP FLV简介 2 HTTP FLV流媒体服务搭建 3 结果验证 1 HTTP FL ...

  3. Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型

    场景 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件让全世界浏览,还可以放置数据文件,让全世界下载.目前最主流的Web服务 ...

  4. 键盘侠Linux干货| 使用Nginx搭建一个私人网盘

    前言 使用Nginx搭建一个私人网盘 安装Nginx 增加 Nginx 官方源 cat << EOF > /etc/yum.repos.d/nginx.repo [nginx-sta ...

  5. 轻松搭建一个Windows SVN服务器

    轻松搭建一个Windows SVN服务器 前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个 ...

  6. 用nodejs搭建一个简单的服务器

    使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...

  7. 制作服务器需要哪些,怎么搭建一个小型企业服务器机房,做这些都需要什么

    怎么搭建一个小型企业服务器机房,做这些都需要什么? 通过内部部署IT解决方案来减少在线数据存储的安全问题,甚至完全避免这些问题. 但问题又来了,大多数小型企业只能通过投资专用的内部IT设备来成功实现这 ...

  8. Node.js搭建一个简单的服务器

    文章目录 Node.js的安装 了解Node.js模块系统 服务器的搭建 一.创建一个Web服务器 注意 程序代码 运行 二.静态资源托管 静态资源 注意 程序代码 运行 三.简单接口的实现(简单服务 ...

  9. 利用NGINX搭建部署直播流媒体服务器

    直播如今是一个老生常谈的问题,怎么用于直播,大多数人只晓得,大佬某平台直播软件,点击开始即可直播.那么如何来搭建一个简易的直播平台呢?仅仅是有直播功能,没有涉及转码以及播放软件. 安装nginx以及r ...

最新文章

  1. java基础面试题:抽象类中是否可以有静态的main方法?
  2. php流媒体视频下载,如何使用PHP流媒体文件?
  3. Codeforces 994B. Knights of a Polygonal Table
  4. py-faster-rcnn代码roidb.py的解读
  5. Java技术:项目构建工具Maven最佳替代者gradle介绍
  6. java 导入excel到数据库_java导入excel到数据库
  7. MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解
  8. 关于iOS13 的一些适配
  9. gradle 关于repository配置
  10. -webkit-padding-start: 40px;ul的padding-left:40px;问题
  11. 计算机网络军训口号,霸气押韵的16字军训口号(精选50句)
  12. fdfs文件服务环境搭建详细教程
  13. html chm 打不开,Win7系统中出现CHM打不开的具体解决方法
  14. 数据采样控制系统的事件触发传输方案与L2控制联合设计
  15. Bebras挑战样题之五——警察能抓住海盗吗?
  16. 办公室网络带宽叠加(有线和WiFi同时使用)
  17. 电路交换、报文交换、分组交换、异步传输模式等通信交换技术的区别
  18. Docker之通过阿里云的镜像加速器快速拉取镜像到本地
  19. WIN10极限清理 C盘空间
  20. OLT基本操作及ONU的认证

热门文章

  1. ANTLR4(四) 基础设计语法
  2. 【华为OD机试真题】完美走位(python)100%通过率 超详细代码注释 代码解读
  3. 三菱FX3U 485ADP-MB与台达变频器modbus通讯程序
  4. 分布式存储服务器是什么项目,分布式存储服务器的含义是什么?分布式存储服务器的优势体现?...
  5. 基于 jsPlumb 的流程图编辑器的实现 (一,节点的操作)
  6. 六月DLP数据防泄漏产品全球四强出炉
  7. OLT与ONU之间上下行数据方式解释
  8. 如何成功申请计算机软件著作权【申请流程完整记录】
  9. Vue 动态路由的实现
  10. 【SEO】域名前缀www与不加的对比性质