【nginx-rtmp】01、控制模块(Control module)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
控制模块(Control module)

控制模块是http模块,可在外部通过http对rtmp模块进行控制,下面是启用控制模块的示例:

http {
...
    server {
        listen      8080;
        server_name  localhost;
        ....
        location /control {
            rtmp_control all;
        }
    }
}

控制模块内有几个子模块,每个子模块控制不同的功能!


记录/录制(Record)

这个子模块,可以控制记录的启动或者停止,语法如下:

http://server.com/control/record/start|stop?
srv=SRV&app=APP&name=NAME&rec=REC

  • srv=SRV         -  可选,表示 rtmp{} 块里面  server{} 块的序号,默认是第一个 server{} 块
  • app=APP        -  必需,application 名称
  • name=NAME  -  必需, stream 名称
  • rec=REC          -  可选,recorder 名称,默认是root(unnamed) recorder

配置示例如下:

rtmp {
    server {
        listen 1935;
        application myapp {
            live on;
            recorder rec1 {
              record all manual;
              record_suffix all.flv;
              record_path /tmp/rec;
              record_unique on;
          }
      }
    }
}

然后可以用下面命令推送流:

ffmpeg -i http://someserver.com/mychannel.ts -c:v copy -c:a nellymoser -ar 44100 -ac 1 -f flv rtmp://localhost/myapp/mystream

使用下面命令来启动或停止记录:

curl "http://localhost:8080/control/record/start?app=myapp&name=mystream&rec=rec1"
curl "http://localhost:8080/control/record/stop?app=myapp&name=mystream&rec=rec1"

有时候上面命令请求后没有返回结果,请检查下服务端是否使用了多个 worker,使用一个效果好点!



移除/中断(Drop)

这个子模块,提供一个简单方式来删除某个客户端的链接,语法如下:

http://server.com/control/drop/publisher|subscriber|client?
srv=SRV&app=APP&name=NAME&addr=ADDR&clientid=CLIENTID

  • srv、app、name   - 这三个参数同上(Record)
  • addr  -  可选,客户端IP地址(和 rtmp_start返回的一样)
  • clientid  - 可选,nginx的client id(在 log 和 stat 里有显示)

第一个方法 drop/publisher 用来中断发布者链接,
第二个方法 drop/client 中断所有符合 addr 参数的链接,如果不指定 addr 参数,将会中断所有客户端链接(包括发布者)。

请求示例:

curl http://localhost:8080/control/drop/publisher?app=myapp&name=mystream
curl http://localhost:8080/control/drop/client?app=myapp&name=mystream
curl http://localhost:8080/control/drop/client?app=myapp&name=mystream&addr=192.168.0.1
curl http://localhost:8080/control/drop/client?app=myapp&name=mystream&clientid=1



重定向/重置(Redirect)

重置 点播源/主播 (play/publish) 到一个新的流(stream),语法:

http://server.com/control/redirect/publisher|subscriber|client?
srv=SRV&app=APP&name=NAME&addr=ADDR&clientid=CLIENTID&newname=NEWNAME

  • srv、app、name、addr、clients   - 和上面的一样(Record/Drop)
  • nawname   - 要重定向到的新的流名称(new stream name to redirect to)



window系统:nginxnginx-rtmp-module模块)实现rtmp服务器 下面链接直接点击下载,下载的就是包含rtmp服务器相关功能的,只不过需要配置下直接点击额下面的连接即可下载。 阅读详情

相关推荐

centos7 操作系统利用nginxrtmp-module搭建rtmp服务器

vlc 播放 rtmp://192.168.61.128:1935/rtmplive/235 即可;配置文件路径(nginx安装路径下的相对路径): nginx/conf/nginx.conf。通过finalshell拷贝到centos上,路径 /home/zenglg/src。Nginx RTMP 模块 nginx-rtmp-module 指令详解。确认是否出现nginx页面,能打开则说明nginx运行成功;,如果下载失败,可以在windows上下载好拷贝过去。我们利用ffmpeg去推测试流。

zengliguang的专栏 3175

ngx_rtmp_control_module 模块解读

1、模块功能描述 本模块主要提供了外部接口控制rtmp流状态的接口,通过这些接口进行一些断流,录制,流名重定向等以下接口: record 录制功能 drop 断流功能,涉黄涉暴力的话可以通过这个方式断开服务端的推流 redirect 对推拉流进行重定向功能 1.1 配置示例 http { server { listen 88; server...

wu5215080的专栏 2511

Nginx record录制配置

** Nginx record录制参数简述: ** record 语法:record [off|all|audio|video|keyframes|manual]* 描述:切换录制模式。流可以被记录到 flv 文件。本指令指定应该被记录的: off - 什么也不录制 all - 音频和视频(所有) audio - 音频 video - 视频 keyframes - 只录制关键视频帧 manual - 用不自动启动录制,使用控制接口来启动/停止 在单个记录指令中可以有任何兼容的组合键。 record_path

佳佳鸽的博客 2382

nginx+rtmp 推流录制

nginx+rtmp 推流录制 1、环境搭建: https://blog.csdn.net/caowenjing123/article/details/94621301 2、修改nginx.conf 配置文件 在你对应的myapp推流APP下添加record recorder all { record all manual; rec...

caowenjing123的博客 7636

Nginx控制record开始停止

Nginx record录制配置 rtmp_control all: 开启所有控制接口。 record: 只开启录像控制接口。 drop: 只开启关闭连接控制接口。 redirect:只开启重定向控制接口。 pause: 只开启暂停接口。 resume:只开启恢复接口。 rtmp { server { application camera { live on; recorder all { record all manual; //不自动启动录制,使用控制接口

佳佳鸽的博客 957

Nginx RTMP源码分析--ngx_rtmp_control_module

ngx_rtmp_control_module RTMP控制模块主要包括录制指令、关闭指令、重定向指令三个控制命令。和其他RTMP有所不同的地方是:RTMP控制模块是注册在HTTP模块下的,它是通过在HTTP配置域下进行控制配置,并通过HTTP Get请求来实现外部对RTMP服务的控制功能。 源码分析 注册HTTP回调 static char * ngx_rtmp_control(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_http_c

xiaofeilong89的专栏 952

分布式直播系统(九)【nginx-rtmp控制台暂停、录像控制

转载请注明出处:https://blog.csdn.net/impingo 项目地址:https://github.com/im-pingo/nginx-rtmp-module 项目官网:http://pingos.io 目录控制台接口配置配置项配置模板控制接口说明JS控制台示例录像文件查看接口获取流信息QQ交流群:697773082 控制台接口 一个成熟的媒体服务器需要有跟业系统对接的能力,例如...

impingo的博客 4200

Nginx RTMP源码分析--record module

简介 本章介绍RTMP的录制模块。Nginx RTMP中,直播流可以被录制为FLV格式的文件。 录制模块配置解析 record指令指定了应该被准确录制的内容: off:不开启录制; all:音频和视频录制; audio:只录制音频 video:只录制视频; keyframes:只录制视频关键帧; manual:从不自动开启录制,使用录制接口控制开始/结束录制。 record_path 指定录制的FLV文件的路径 record_path /tmp/rec; record_suffix 设置录制文件后缀名

xiaofeilong89的专栏 1309

Nginx-Rtmp-Module命令

rtmp-module版本:1.1.4 Features RTMP/HLS/MPEG-DASH live streaming RTMP Video on demand FLV/MP4, playing from local filesystem or HTTP Stream relay support for distributed streaming: push

fei的专栏 3921

nginx搭建RTMP服务

本文介绍了搭建基于NginxRTMP流媒体服务器的完整流程。首先需要准备Nginx、FFmpeg和nginx-rtmp-module插件,然后配置Nginx支持RTMP直播HLS切片功能,设置服务端口、视频存储路径等参数。接着通过FFmpeg命令实现视频推流,包括RTSP流转换和本地视频循环推流。最后创建HTML页面使用video.js播放器展示直播流,并提供统计页面查看流状态。整个方案实现了从视频采集、推流到播放的完整流程,支持HLS协议和实时监控功能。

yiqiu_0130的专栏 701

nginx-rtmp】09、指令(Directives)之 记录(Record

五、记录/录制(Record01record 语法:record [off|all|audio|video|keyframes|manual]* 上下文:rtmp, server, application, recorder 记录模式切换,流可以记录到flv文件中,这个指令指定了哪些需要记录: Toggles record mode. Stream

EnVon的专栏 3676

Nginx RTMP 模块 nginx-rtmp-module 指令详解

译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解。 指令 Core rtmp 语法:rtmp { ... } 上下文:根 描述:保存所有 RTMP 配置的块。 server 语法:server { ... } 上下文:rtmp 描述:声明一个 RTMP 实例。 rtmp {   server {

Defonds 的专栏 11万+

RTMP协议视频流页面即时加载及录像方法

RTMP及时流加载显示及录像

bacawa的博客 835

五、nginx-rtmp-module进阶

1. 前言 前面几张主要讲解了nginxnginx-rtmp-module、ffmpeg的环境搭建以及我们成功搭建了第一个直播系统。这一章主要介绍如何配置一个基于HLS协议的直播系统,以及m3u8与ts文件的配置,然后逐渐深入介绍NRM与直播系统的高级应用。 ...

Aarstg的博客 4086

Android-音视频学习系列-()基于-Nginx-搭建(rtmp、http)直播服务器

云服务器: 腾讯云 系统: centos 直播服务器: nginx 拓展模块: nginx-http-flv-module (支持 rtmp、http-flv、http-hls) 如果 NGINX 要支持正则表达式,需要安装 PCRE库。 如果 NGINX 要支持加密访问,需要安装 OpenSSL库。 如果 NGINX 要支持压缩,需要安装 zlib库。 测试环境: 电脑 : MAC 推流软件: obs-studio MAC 拉流软件: VLC Android 拉流软件: 前几天写的一个 Andr.

3291

手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统

在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器。

华为云官方博客 2878

RTMP命令亲自测试记录

  手动和自动录像模块: recorder rec1 { record all manual; record_unique on; record_notify on; record_max_size 5...

Tinywan 563
上一篇: CentOS7安装crtmpserver搭建在线直播平台(crtmpserver开机启动、rtmpd、rtmpserver、rtmp直播)
下一篇: 【nginx-rtmp】02、调试日志(Debug log)
envon123
博客等级 码龄18年 169粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值