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 {

// OnvifDevice nvt = 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://www.cnblogs.com/attilax/

--Atiend

Atitit onvif协议获取rtsp地址播放java语言 attilx总结相关推荐

  1. ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

    概要:   目前ONVIF协议家族设备已占据数字监控行业半壁江山以上,亲,作为开发者的你还在犹豫是否了解下吗?本文介绍了ONVIF客户端从设备搜索,鉴权,能力获取,媒体信息获取,URI地址获取的整套流 ...

  2. 【视频开发】ONVIF客户端搜索设备获取rtsp地址开发笔记(精华篇)

    转载地址:http://blog.csdn.net/gubenpeiyuan/article/details/25618177 概要:           目前ONVIF协议家族设备已占据数字监控行业 ...

  3. ONVIFclient搜索设备获取rtsp地址开发笔记(精华篇)

    概要: 眼下ONVIF协议家族设备已占领数字监控行业半壁江山以上,亲,作为开发人员的你还在犹豫是否了解下吗?本文介绍了ONVIFclient从设备搜索.鉴权,能力获取,媒体信息获取.URI地址获取的整 ...

  4. android dhcp 服务器,安卓通过DHCP协议获取IP地址的过程

    安卓通过DHCP协议的DORA Discovery发现 Offer提供 Request请求 Ack确认 获取IP地址的过程 安卓N之前 5.0 6.0通过 android_net_utils_runD ...

  5. arp协议获取mac地址,同网段和不同网段。

    arp协议属于OSI模型第二层(数据链路层) 计算机实现网络通信在数据链路层发送数据帧(链路层数据包)实现通讯.而数据帧要发送到目标计算机需要知道,发送端的ip地址和mac地址还有接收端的ip地址和m ...

  6. 3.onvif实现获取RTMP地址完整流程

    获取摄像头推流地址 前面介绍了怎么来发现设备,接下来该介绍怎么来获取摄像头的推流地址,这也是项目需求,得到推流地址后就可以使用ffmpeg来拉去视频流,并推送到云端 先来看一下这个流程 probe:设 ...

  7. java 获取ip地址 公网,java获取公网ip地址操作

    获取公网ip地址操作 import javax.servlet.http.HttpServletRequest; /** * * 获取公网ip地址操作 * @ClassNmae:NewClass * ...

  8. android 获取堆栈地址,关于java native interface:如何捕获SIGSEGV(分段错误)并在Android下的JNI下获取堆栈跟踪?...

    我正在将一个项目转移到新的Android本机开发工具包(即JNI)中,我想捕获sigsegv,如果它发生(也可能是sigill.sigabrt.sigfpe),以便呈现一个很好的崩溃报告对话框,而不是 ...

  9. snmp 获取防火墙mac_通过snmp协议获取mac地址

    -if)# ip access-group 106 in B:通过TCP截获防范.(这会给路由器产生一定负载) Router(Config)# ip tcp intercept list 107 Ro ...

最新文章

  1. 解决fitz模块报错
  2. WWDC的31个年头,来点不一样的!听说库克还忍不住要收割13岁以上程序员
  3. html5播放视频只有声音不出现画面?
  4. JDBC连接数据库教程,postgreSQL
  5. LeetCode 581. 最短无序连续子数组(排序单调栈)
  6. Java BigInteger类| toByteArray()方法与示例
  7. 表记录的检索(数据查询)
  8. 第二次冲刺阶段第三天
  9. SCCM2007系列教程之一SCCM2007的安装
  10. HTML跳转页面指定位置的几种方法
  11. 苹果id可以同时用两个手机吗_苹果手机Apple ID账号的重要性你知道多少?
  12. GNSS测量与数据处理(第十周)
  13. 使用xlsxwriter简单的将截图插入excel表格中
  14. Microsoft SQL Server 2008 R2(Microsoft SQL Server,错误: 2)
  15. NVMe到底是什么?用它的SSD有啥优势?
  16. MyBatis02:CRUD 操作
  17. Milvus 社区周报- Week 12, 2020
  18. 投资20亿 宁波大数据云基地揭牌
  19. PC与Android通过USB连接进行Socket通信
  20. 中南大学计算机学院联系方式,中南大学

热门文章

  1. 人机融合智能与深度态势感知
  2. 【工业互联网】全球工业互联网十大最具成长性技术展望(2019-2020年)
  3. 科创板:中国科技产业新引擎
  4. 5G年终盘点:2018,意难平
  5. 人工智能能否在对抗虚假新闻战争中完胜?
  6. 余承东:华为 P50 系列无 5G 版本,但依然流畅
  7. 其实,我是一名程序员!
  8. 我是一个秒杀请求,正在逃离这颗星球...
  9. 四款 5G 版 iPhone 12 齐发,支持北斗系统,你准备好了吗?
  10. 阿里巴巴JAVA面试真题(三)