java onvif

作者:原创时间:2022-04-15
文档

java onvif是什么,让我们一起了解一下?

ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全互通。

实战操作:

Java如何整合ONVIF云台控制获取RTPM流地址,控制摄像机左右上下角度?

搜索发现设备获取设备信息转动摄像头提供两种方式:

第一种main方法里直接发现设备获取到设备ip获取流地址或者转动摄像头。

List onvifPointer = OnvifDiscovery.discoverOnvifDevices();
for (OnvifPointer ref : onvifPointer) {
System.out.println(ref.toString());
System.out.println("设备地址:" + ref.getAddress());
System.out.println("设备名:" + ref.getName());
System.out.println("设备:" + ref.getOnvifDevice());
System.out.println(ref.getSnapshotUrl());
}
OnvifDevice nvt = onvifPointer.get(0).getOnvifDevice();
// 获取设备信息
GetDeviceInformationResponse deviceInformation = nvt.getDevices().getDeviceInformation();
System.out.println("设备制造商: " + deviceInformation.getManufacturer());
System.out.println("设备模型: " + deviceInformation.getModel());
System.out.println("设备固件版本: " + deviceInformation.getFirmwareVersion());
System.out.println("设备序列号: " + deviceInformation.getSerialNumber());
System.out.println("设备硬件id: " + deviceInformation.getHardwareId());
// 获取token
List profiles = nvt.getDevices().getProfiles();
for (Profile profile : profiles) {
System.out.println("profile==" + profile);
}
String profileToken = profiles.get(0).getToken(); // PROFILE_000
// 设置StreamSetup
StreamSetup streamSetup = new StreamSetup();
Transport transport = new Transport();
transport.setProtocol(TransportProtocol.UDP);
streamSetup.setStream(StreamType.RTP_UNICAST);
streamSetup.setTransport(transport);
// 获取流地址
String getStreamUri = nvt.getMedia().getStreamUri(profileToken, streamSetup);
System.out.println("getStreamUri:" + getStreamUri);
// 获取视频参数
String videoSourceToken = profiles.get(0).getVideoSourceConfiguration().getSourceToken();
System.err.println("videoSourceToken=====" + videoSourceToken);
ImagingSettings20 imagingSettings20 = nvt.getImaging().getImagingSettings(videoSourceToken);
System.err.println(imagingSettings20.getBacklightCompensation().getMode());
// 设置视频参数上下转动
nvt.getPtz().continuousMove(profileToken, -1, 1, 1);
nvt.getPtz().stopMove(profileToken);

第二种直接ip地址和用户名密码获取流地址或者转动摄像头。

try {
OnvifDevice nvt = new OnvifDevice nvt = new OnvifDevice("192.168.1.200:80", "admin","admin");
// 获取设备信息
GetDeviceInformationResponse deviceInformation = nvt.getDevices().getDeviceInformation();
System.out.println("设备制造商: " + deviceInformation.getManufacturer());
System.out.println("设备模型: " + deviceInformation.getModel());
System.out.println("设备固件版本: " + deviceInformation.getFirmwareVersion());
System.out.println("设备序列号: " + deviceInformation.getSerialNumber());
System.out.println("设备硬件id: " + deviceInformation.getHardwareId());
List profiles = nvt.getDevices().getProfiles();
for (Profile profile : profiles) {
System.out.println("dddd==" + profile);
}
String profileToken = profiles.get(0).getToken(); // PROFILE_000
StreamSetup streamSetup = new StreamSetup();
Transport transport = new Transport();
transport.setProtocol(TransportProtocol.UDP);
streamSetup.setStream(StreamType.RTP_UNICAST);
streamSetup.setTransport(transport);
// 获取流地址
String getStreamUri = nvt.getMedia().getStreamUri(profileToken, streamSetup);
System.out.println("getStreamUri:" + getStreamUri);
// 获取视频参数
String videoSourceToken = profiles.get(0).getVideoSourceConfiguration().getSourceToken();
System.err.println("videoSourceToken=====" + videoSourceToken);
ImagingSettings20 imagingSettings20 = nvt.getImaging().getImagingSettings(videoSourceToken);
System.err.println(imagingSettings20.getBacklightCompensation().getMode());
// 设置视频参数上下转动
nvt.getPtz().absoluteMove(profileToken, 0, 0, 0.5f);
// nvt.getPtz().stopMove(profileToken);
// System.err.println(nvt.getPtz().getPresets(profileToken));
} catch (ConnectException e) {
System.err.println("Could not connect to NVT.");
} catch (SOAPException e) {
e.printStackTrace();
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java openfire java opengl java openjdk java rectangle java redirect java reference java reflect java regex java openssl java orm java outer java outofmemory java overload java resources java resolve java require java region java render java override java pandas java inputstreamreader java influxdb java implements java image java htmlunit java hibernate java number java nslookup java notify java node类 java hdfs java hashcode java getbytes java geotools java nfs java nexus java nextline java nextint java newinstance java namespace