Atitit onvif协议获取rtsp地址播放java语言attilx总结
Atitit onvif协议获取rtsp地址播放java语言attilx总结
1.1.获取rtsp地址的算法与流程1
1.2.Onvif摄像头的发现,ws的发现机制,使用xcf类库1
2.调用getStreamUri 获得rtsp地址 ,使用类库ONVIF Java Library by Milgo2
2.1.问题为什么使用这个得到的地址不能播放4
1.1. 获取rtsp地址的算法与流程
动态发现onvif设备
调用getProfiles 获取Profile列表,
调用getStreamUri 获得rtsp地址( 使用Profile参数)
1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库
Onvif协议建立在webservice协议基础上。他的发现机制就是ws的发现机制。。
import java.util.List;
import javax.xml.ws.EndpointReference;
import org.apache.cxf.ws.discovery.WSDiscoveryClient;
public class Main
{
public static void main(String[] args)
{
WSDiscoveryClient client = new WSDiscoveryClient();
client.setVersion10(); // use WS-discovery 1.0
client.setDefaultProbeTimeout(1000); // timeout 1s
System.out.println("Probe:" + client.getAddress());
List<EndpointReference> references = client.probe();
System.out.println("Nb answsers:" + references.size());
for (EndpointReference ref : references)
{
System.out.println(ref.toString());
}
}
}
Probe is :soap.udp://239.255.255.250:3702
Nb answsers:1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><EndpointReference xmlns="http://www.w3.org/2005/08/addressing"><Address>http://192.168.31.144:10080/onvif/device_service</Address><ReferenceParameters/></EndpointReference>
返回的ws服务地址 http://192.168.31.144:10080/onvif/device_service
2. 调用getStreamUri 获得rtsp地址 ,使用类库ONVIF Java Library by Milgo
根据上异步获得的ws服务地址,提取ip,port。。调用getStreamUri 获得rtsp地址
返回的rtsp地址 rtsp://192.168.31.144:10554/tcp/av0_0
package com.attilax.video; /** *@author attilax *2016年12月21日 下午10:38:11 */ import java.io.IOException; import java.net.ConnectException; import java.util.List; import javax.xml.soap.SOAPException; import org.onvif.ver10.media.wsdl.GetStreamUri; import org.onvif.ver10.media.wsdl.GetStreamUriResponse; import org.onvif.ver10.schema.Profile; import org.onvif.ver10.schema.StreamSetup; import org.onvif.ver10.schema.Transport; import de.onvif.soap.OnvifDevice; public class OnvifTest { public static void main(String[] args) { // org.apache.commons.codec.binary.Base64 // org.apache.commons.codec.binary.Base64 try { // OnvifDevicenvt = new OnvifDevice("192.168.0.20", "admin", // "password"); OnvifDevice nvt = new OnvifDevice("192.168.31.144:10080", "", ""); List<Profile> profiles = nvt.getDevices().getProfiles(); for (Profile profile : profiles) { // String profileToken = profiles.get(0).getToken(); System.out.println(profile); } // System.out.println("Snapshot URI: "+nvt.getMedia().getSnapshotUri(profileToken)); String profileToken = profiles.get(0).getToken(); //PROFILE_000 StreamSetup streamSetup = new StreamSetup(); String getStreamUri = nvt.getMedia().getStreamUri(profileToken, streamSetup); System.out.println("getStreamUri:" + getStreamUri); } catch (ConnectException e) { System.err.println("Could not connect to NVT."); } catch (SOAPException e) { e.printStackTrace(); } } |
2.1. 问题为什么使用这个得到的地址不能播放
返回的rtsp地址 rtsp://192.168.31.144:10554/tcp/av0_0
使用VLC播放器和onvif测试工具都不能播放。。设备也没有设置用户名密码的。
作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher
捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak
简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴
全名::Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 埃米尔阿提拉克斯 阿克巴本 马哈茂德 本阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
头衔:uke总部o2o负责人,全球网格化项目创始人,
uke宗教与文化融合事务部部长, uke宗教改革委员会副主席
,Uke部落首席大酋长,
uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,
奶牛科技cto ,uke 首席cto
uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 uke终身教育学校副校长
Uke 数据库与存储标准化协会副会长 uke出版社编辑总编
Uke医院方面的创始人
转载请注明来源:attilax的专栏 ?http://blog.csdn.net/attilax
--Atiend
Atitit onvif协议获取rtsp地址播放java语言attilx总结相关推荐
- Atitit onvif协议获取rtsp地址播放java语言 attilx总结
Atitit onvif协议获取rtsp地址播放java语言 attilx总结 1.1. 获取rtsp地址的算法与流程1 1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库1 2. 调用 ...
- ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)
概要: 目前ONVIF协议家族设备已占据数字监控行业半壁江山以上,亲,作为开发者的你还在犹豫是否了解下吗?本文介绍了ONVIF客户端从设备搜索,鉴权,能力获取,媒体信息获取,URI地址获取的整套流 ...
- 【视频开发】ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)
转载地址:http://blog.csdn.net/gubenpeiyuan/article/details/25618177 概要: 目前ONVIF协议家族设备已占据数字监控行业 ...
- ONVIFclient搜索设备获取rtsp地址开发笔记(精华篇)
概要: 眼下ONVIF协议家族设备已占领数字监控行业半壁江山以上,亲,作为开发人员的你还在犹豫是否了解下吗?本文介绍了ONVIFclient从设备搜索.鉴权,能力获取,媒体信息获取.URI地址获取的整 ...
- android dhcp 服务器,安卓通过DHCP协议获取IP地址的过程
安卓通过DHCP协议的DORA Discovery发现 Offer提供 Request请求 Ack确认 获取IP地址的过程 安卓N之前 5.0 6.0通过 android_net_utils_runD ...
- arp协议获取mac地址,同网段和不同网段。
arp协议属于OSI模型第二层(数据链路层) 计算机实现网络通信在数据链路层发送数据帧(链路层数据包)实现通讯.而数据帧要发送到目标计算机需要知道,发送端的ip地址和mac地址还有接收端的ip地址和m ...
- 3.onvif实现获取RTMP地址完整流程
获取摄像头推流地址 前面介绍了怎么来发现设备,接下来该介绍怎么来获取摄像头的推流地址,这也是项目需求,得到推流地址后就可以使用ffmpeg来拉去视频流,并推送到云端 先来看一下这个流程 probe:设 ...
- java 获取ip地址 公网,java获取公网ip地址操作
获取公网ip地址操作 import javax.servlet.http.HttpServletRequest; /** * * 获取公网ip地址操作 * @ClassNmae:NewClass * ...
- android 获取堆栈地址,关于java native interface:如何捕获SIGSEGV(分段错误)并在Android下的JNI下获取堆栈跟踪?...
我正在将一个项目转移到新的Android本机开发工具包(即JNI)中,我想捕获sigsegv,如果它发生(也可能是sigill.sigabrt.sigfpe),以便呈现一个很好的崩溃报告对话框,而不是 ...
- snmp 获取防火墙mac_通过snmp协议获取mac地址
-if)# ip access-group 106 in B:通过TCP截获防范.(这会给路由器产生一定负载) Router(Config)# ip tcp intercept list 107 Ro ...
最新文章
- shell脚本中判断上一个命令是否执行成功
- CSS将长文字换行的方法 (转)
- vs发生生成错误_S7报告系统错误:
- Variational Bayes
- Hugo + github 搭建个人博客
- 艾伟:【翻译】使用ASP.NET 2.0记录错误
- xcode 4.5 new feature __ ios6 新特性 (转)
- Effective Java之用enum代替int常量(三十)
- ElasticSearch评分分析 explian 解释和一些查询理解
- git bash 风格调整
- 斑马无线打印服务器,如何设置斑马打印机无线WiFi
- 新闻发布项目——数据库脚本(直接导入即可)
- android中虚拟程序停止,为什么我的在虚拟机运行后出现应用程序停止运行
- ArcgisPro3.0-3.0.1中文安装包下载及安装教程
- 仿斗鱼、美团、网易邮箱等 弹窗效果
- python实时读取串口数据_串口的数据采集、以及数据的实时显示
- c语言小名,男女宝宝小名大全
- Camera 图像处理原理分析- 色彩篇 一
- 让创意设计更加简单:在线设计平台Canva登陆中国
- 2017计算机二级ms office高级应用成绩查询
热门文章
- PHP图片水印右下角,php图片水印处理
- [译] Redux vs. React 的 Context API
- 【C++】 53_被遗弃的多重继承 (上)
- BZOJ2555:SubString(SAM,LCT)
- 读写Word的组件DocX介绍与入门
- CSS 相邻选择器(七)
- 如何开拓中国EDM市场
- 构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)...
- springboot - 应用实践(3)springboot的核心
- mongodb添加登陆验证