Java onvif协议,Java onvif协议通用协议获取rtsp地址

本文介绍如何使用Java实现ONVIF协议来获取RTSP地址,包括实时流和历史流。通过解析ONVIF设备的Capabilities并扩展功能,实现了从设备获取历史流的RTSP地址。示例代码提供了获取RTSP地址的方法。
摘要由CSDN通过智能技术生成

Java onvif协议通用协议获取rtsp地址

Java onvif协议通用协议获取rtsp地址

吐槽下可搜索的资源真的是少,好多都是4 5年前的资料

onvif通用协议就不说了,大多摄像头都可用,利用onvif获取实时流和历史流转换成h264编码推送到前端,用h5新标签直接播放

onvif协议大部分是c或者android 资料 java的比较少 感谢大佬留下的宝贵资源:

1. https://github.com/RootSoft/ONVIF-Java   (功能不够完善,没有使用例子)

2. https://github.com/fpompermaier/onvif   (这个是基于上面的项目封装,有简单的例子,这里使用的这个)

实际使用:

前言:因为例子有限,没有历史流rtsp地址的使用,在参考例子和源码下,走了很多坑

后续更新利用javacv 使用rtsp地址拉取流推送出去。

上代码:

将第二个项目拉下来打包到本地仓库 下面的

pom 中的onvif-ws-client就是打包到本地仓库的

项目地址:https://github.com/xsjzf/onvif_java

核心的地方是:

这里说明下例子中只有实时流rtsp地址的方法获取

在onvif-ws-client的源码中有很多功能例子中只有media 也就是实时流的

97db7f169c0d8c42da5f3cb06362f9cf.png

要使用历史流则需要自行添加 就是replay和recording 其他功能详见onvif的官网文档

Capabilities capabilities = this.device.getCapabilities(Arrays.asList(CapabilityCategory.ALL));

@javax.xml.bind.annotation.XmlElement(name = "Analytics")

protected org.onvif.ver10.schema.AnalyticsCapabilities analytics;

@javax.xml.bind.annotation.XmlElement(name = "Device")

protected org.onvif.ver10.schema.DeviceCapabilities device;

@javax.xml.bind.annotation.XmlElement(name = "Events")

protected org.onvif.ver10.schema.EventCapabilities events;

@javax.xml.bind.annotation.XmlElement(name = "Imaging")

protected org.onvif.ver10.schema.ImagingCapabilities imaging;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值