wvp提供ZLM调用接口

1、接口:/on_stream_none_reader

流无人观看时事件,用户可以通过此事件选择是否关闭无人观看的流。

2、方法参数

public JSONObject onStreamNoneReader(@RequestBody OnStreamNoneReaderHookParam param) 

@RequestBody:表示请求体中的 JSON 数据会被自动绑定到 OnStreamNoneReaderHookParam 类的实例 param 中。
Spring 会自动解析请求体中的 JSON 数据并将其映射到该对象的字段上(需要确保字段名匹配)。
OnStreamNoneReaderHookParam:
这是一个自定义的 Java Bean,用于封装 ZLMediaKit 的回调参数。
它可能包含以下字段(根据 ZLMediaKit 的回调文档):
mediaServerId:媒体服务器的唯一标识。
schema:流的协议(如 rtsp 或 rtmp)。
app:应用名称(如 live)。
stream:流 ID。

3、日志记录

logger.info("[ZLM HOOK]流无人观看:{}->{}->{}/{}", param.getMediaServerId(), param.getSchema(), param.getApp(), param.getStream());

使用日志记录工具 logger,打印出当前触发无人观看事件的流的相关信息。
日志内容:
[ZLM HOOK]流无人观看:固定的日志前缀,标识该日志来源于 ZLMediaKit 的 Hook 回调。
{}:占位符,按顺序填充参数。
日志中打印的信息:
param.getMediaServerId():媒体服务器 ID。
param.getSchema():流协议(如 rtsp 或 rtmp)。
param.getApp():应用名称。
param.getStream():流 ID。

4、调用业务逻辑

boolean close = mediaService.closeStreamOnNoneReader(param.getMediaServerId(), param.getApp(), param.getStream(), param.getSchema());

调用 mediaService.closeStreamOnNoneReader(…) 方法,执行业务逻辑,决定是否关闭无人观看的流。
mediaService 是一个服务对象(通常是 @Service 注解的 Spring Bean)。
传入参数:
param.getMediaServerId():媒体服务器 ID。
param.getApp():应用名称。
param.getStream():流 ID。
param.getSchema():流协议(如 rtsp 或 rtmp)。
返回值:
close 是布尔值,表示是否成功关闭流。

5、构造返回值

ret.put("code", close);
return ret;

创建一个 JSONObject 实例(依赖于 com.alibaba.fastjson.JSONObject 或类似的 JSON 库)。
将 close 结果存入 JSON 对象中,键为 “code”,值为布尔值 close。
返回构造的 JSON 对象,作为 API 的响应。

6、功能和使用场景

1、功能描述:
该接口用于处理 ZLMediaKit 的回调事件,当某个流没有观看者时,调用该接口。
接口会根据传入的流信息,调用业务逻辑(通过 mediaService),决定是否关闭无人观看的流。
2、典型使用场景:
直播流管理:
如果一个直播流长时间没有观众,可以自动关闭以释放资源。
自动化流销毁:
当无人观看时,根据业务逻辑关闭流,避免无效流占用系统资源。

### WVP-Pro 与 ZLM 连接配置 为了实现 WVP-Pro 和 ZLM (ZLMediaKit) 的连接,需完成以下几个方面的设置: #### 配置文件调整 WVP-Pro 使用 `application.yml` 文件作为主要配置文件。如果开发环境中有多个配置文件(如 `application-dev.yml`),可以通过复制的方式将其重命名为默认加载的配置文件名 `application.yml`[^1]。 以下是典型的 `application.yml` 中涉及 ZLM 媒体服务器的部分配置项: ```yaml server: port: 8088 zlm: enable: true ip: 127.0.0.1 httpPort: 8089 wsPort: 5700 rtmpPort: 1935 pullStreamTimeoutSecs: 60 ``` 上述配置说明如下: - **enable**: 是否启用 ZLM 支持。 - **ip**: ZLMediaKit 所运行的服务 IP 地址。 - **httpPort**: ZLM 提供 HTTP 接口监听的端口号,默认为 8089。 - **wsPort**: WebSocket 协议使用的端口号,默认为 5700。 - **rtmpPort**: RTMP 协议支持的端口号,默认为 1935。 - **pullStreamTimeoutSecs**: 拉流超时时间,单位秒。 以上参数均需要根据实际部署情况修改,特别是当 ZLM 不在同一台机器上运行时,应将 `ip` 替换为目标主机的实际地址。 --- #### 启动服务 在完成配置后,通过命令行启动 WVP-Pro 服务: ```bash java -jar wvp-pro-2.7.0-02250919.jar ``` 此时浏览器访问 URL (`http://<wvp-server-ip>:8088`) 可验证服务是否正常启动[^3]。 对于 ZLMediaKit,则按照其官方文档中的方法编译并启动服务。通常情况下,只需执行以下命令即可快速测试: ```bash ./media_server ``` --- #### 录像功能集成 WVP-Pro 辅助录像程序 `wvp-pro-assist` 是专门设计用于配合 ZLM 实现录像管理的功能模块。该模块可以独立运行并与 ZLM 结合使用,提供录像录制、合并以及下载等功能接口[^2]。 要使两者协同工作,除了基础网络连通性和配置一致性外,还需确认以下几点: - 确保 ZLM 已开启录像存储路径及相关权限; - 在 WVP-Pro 的 API 调用中指定正确的媒体源 ID 或通道号; - 如果存在跨域请求场景,建议检查 CORS 设置以允许前端页面调用后台接口。 --- #### 故障排查提示 若发现无法建立连接或者视频流播放异常,请依次检查下列事项: 1. 网络可达性:Ping 测试目标设备之间的通信状态。 2. 端口开放状况:确保所有必需的服务端口未被防火墙阻断。 3. 日志记录分析:查看 WVP-Pro 和 ZLMediaKit 的日志输出寻找错误线索。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值