本文转自EasyDarwin团队Kim的博客,感谢Kim长期对EasyDarwin开源项目的贡献:http://blog.csdn.net/jinlong0603

EasyDarwin云平台是一套由EasyDarwin、EasyCMS、EasyCamera、EasyClient、nginx、redis构成的完整云平台架构,支持分布式、跨平台、多点部署,流媒体服务器支持负载均衡,按需直播,非常适用于互联网化的安防、智能家居、幼教平台、透明厨房、透明家装等多个行业应用。
EasyClient并不直接与EasyCamera进行通信。EasyCamera开机时会将中心管理服务器(EasyCMS)发送注册请求、发送快照等,并且一直定时发送注册、快照进行保活。EasyCMS记录了所有当前在线的EasyCamera信息。当Android客户端EasyClient打开时,首先会向EasyCMS获取当前在线的EasyCamera列表。EasyClient请求某个Camera视频时,EasyCMS会通知对应的EasyCamera将视频流推送到指定的EasyDarwin服务器上,EasyClient从该EasyDarwin服务器上获取到实时视频流进行播放。
部署云平台时EasyCamera是视频源端, EasyCMS和EasyDarwin结合是服务器端,EasyClient为客户端。可以做到有Client端观看时,EasyCamera才向EasyDarwin推流,没有Client观看时自动停止推流。对于3G/4G摄像机来说是个福音,很好的节约了网络流量。当EasyClient请求nginx是当客户端请求RTMP流时,由nginx转发的。EasyNVR和EasyCamera相同,是可以接入EasyCMS的设备端。

EasyClient控制、对讲功能实现

EasyCamera、EasyClient与EasyCMS服务器交互的命令参考EasyDarwin/Doc/EasyDarwin Protocol v1.1.pdf
Android EasyClient代码中如下:

public boolean onTouch(View v, MotionEvent event) {if (TextUtils.isEmpty(mDevSerial)) {return true;}switch (event.getAction()) {case MotionEvent.ACTION_DOWN:switch (v.getId()) {case R.id.btMoveUp:sendControlCommand(ControlCmd.CMD_MOVEUP, ControlType.TYPE_CONTINUE);break;case R.id.btMoveDown:sendControlCommand(ControlCmd.CMD_MOVEDOWN, ControlType.TYPE_CONTINUE);break;case R.id.btMoveLeft:sendControlCommand(ControlCmd.CMD_MOVELEFT, ControlType.TYPE_CONTINUE);break;case R.id.btMoveRight:sendControlCommand(ControlCmd.CMD_MOVERIGHT, ControlType.TYPE_CONTINUE);break;}break;case MotionEvent.ACTION_UP:case MotionEvent.ACTION_CANCEL:sendControlCommand(ControlCmd.CMD_MOVESTOP, ControlType.TYPE_CONTINUE);break;default:break;}return false;}void sendControlCommand(ControlCmd cmd, ControlType type) {String url = String.format("http://%s:%s/api/v1/ptzcontrol?device=%s&channel=%d&actiontype=%s&command=%s&speed=5&protocol=onvif",MyApplication.getInstance().getIp(),MyApplication.getInstance().getPort(),mDevSerial,mChannelId,type.GetDes(),cmd.GetDes());MyApplication.asyncPost(url, new CallbackWrapper<DeviceInfoBody>(DeviceInfoBody.class) {@Overridepublic void onError(Call call, Exception e) {Toast.makeText(EasyPlayerActivity.this, "onError:" + e.toString(), Toast.LENGTH_SHORT);}});}

下载地址

Android EasyCamera app下载:https://fir.im/EasyCamera
Android EasyClient app下载:https://fir.im/EasyClient
EasyCamera Demo代码下载:https://github.com/EasyDarwin/EasyCamera
EasyClient Demo代码下载:https://github.com/EasyDarwin/EasyClient
EasyDarwin服务器下载:https://github.com/EasyDarwin/EasyDarwin

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

基于EasyDarwin云平台实现的EasyClient客户端与EasyCamera摄像机之间的对讲与云台控制功能相关推荐

  1. 基于机智云平台的泵站智能巡检系统

    本文是由开发者设计开发的一款泵站智能巡检系统.该系统改变了常规的专人值守的工作模式,实现泵站运行状态的远程智能巡检工作,达到自动监测.故障报警.提前预测等功能. 随着我国水利事业不断发展,泵站在水利调 ...

  2. 基于EasyDarwin云视频平台的幼儿园视频直播(手机直播/微信直播)解决方案

    一.方案介绍 1.1.方案背景 在2016年10月25日至28日的安博会上,我们看到了不少的幼教平台厂商,我们注意到大部分的幼教平台,为了追求极佳的用户体验,在微信或者APP端能够做到极快的打开速度, ...

  3. 基于开放式云平台的开源在线评测系统设计与实现

    基于开放式云平台的开源在线评测系统设计与实现 张浩斌 ZHANG Hao-Bin 浙江传媒学院 新媒体学院 浙江省 杭州市 310018 Department of New Media, Zhejia ...

  4. 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

    设计高可用的应用是架构师的一个重要目标,可是基于云计算平台设计高可用应用与基于传统平台的设计有很多不同.云计算在给架构师带来了很多新的设计挑战的时候,也给带来了很多新的设计理念和可用的服务.怎样在设计 ...

  5. ZStack实践汇 | 基于ZStack云平台部署FortiGate

    2019年国际知名信息安全峰会RSA Conference在美国旧金山举行,在所有演讲主题中,云安全超过网络安全和数据安全,成为热门关键词第一.ZStack实践汇这次带来的是<基于ZStack云 ...

  6. 基于机智云平台的智能家居系统

    摘要:随着社会的发展,人们对于生活质量的要求越来越高,智能家居作为能够大幅提升人们生活舒适度的一部分,得到了越来越多的人关注,更多方便.实用的智能家居系统急需被提出. 本文设计了一种基于机智云物联网云 ...

  7. 【Microsoft Azure 的1024种玩法】五十九.基于Azure云平台快速搭建GitLab应用实现代码托管

    [简介] GitLab是由GitLab Inc.开发,一款基于Git的完全整合的软体开发平台,以 Git 作为代码管理工具并实现自托管的 Git 项目仓库,本篇文章主要介绍如何在Azure Virtu ...

  8. 【Microsoft Azure 的1024种玩法】六十八.基于Azure云平台使用Azure Virtual machines快速搭建Docker容器

    [简介] Docker 是一个开放源代码软件,主要应用于开发应用.交付应用.运行应用,Docker 可以将应用程序及其依赖项打包到可以在任何 Linux.Windows 或 macOS 计算机上运行的 ...

  9. 基于阿里云平台的esp8266实现空调红外远程控制

    基于阿里云平台的esp8266实现空调红外远程控制 演示视频:https://www.bilibili.com/video/BV1tL411W7Ck 开发环境 概述 开发需要的环境包括:硬件ESP82 ...

  10. 第十四讲:基于3DEXPERIENCE云平台的异构CAD产品的协同开发案例 | 达索系统百世慧

    随着产品复杂程度的提升,市场竞争愈加激烈,基于模型的正向研发已经作为有效的应对手段被广泛接受.但研发流程中仍然存在复杂功能架构定义困难.多方案难以权衡.多系统难以联合仿真,仿真效率低,验证不充分等问题 ...

最新文章

  1. 一张图看透JavaScript原型关系:__proto__(对象原型)和prototype(函数原型)
  2. SAP FI新手常用代码
  3. 图模型概述:三种分布(联合、条件、边缘分布)
  4. 初一级练习题(2019.3.8)
  5. RuoYi-Cloud 部署篇_01(windows环境 mysql +nginx版本)
  6. java项目怎么导出成jar_如何在eclipse将程序导出成jar文件
  7. jQuery按钮隐藏与显示
  8. spring boot +spring security + jwt 实现认证模块
  9. MSSql使用SQL语句快速查看表对的就说明,及表字段描述及字段类型
  10. 支付弹出php,PHP微信公众号支付弹出“NaN:undefined”解决方法
  11. openmv探索_2_追踪单颜色
  12. Greenplum技术浅析
  13. Python 学习笔记---爬取海贼王动漫
  14. Clover 驱动文件夹_Intel全系利核显驱动教程
  15. 基于jsp+mysql+java+ssm实验室设备管理系统——计算机毕业设计
  16. scum服务器在线玩家,SCUM服务器选择推荐 官服跟私服有什么区别
  17. python布尔类型的两个值_布尔人有两个可能的值。是否有三种可能值的类型?
  18. 泛微OA e-cology WorkflowCenterTreeData前台接口SQL注入漏洞复现
  19. 【《Redis深度历险》读书笔记(1)】基础:万丈高楼平地起 ——Redis 5种基础数据结构
  20. Microsoft Visual C++ 14.0 网盘下载

热门文章

  1. Linux 网卡重新获取IP
  2. Java 判断中文及标点符号
  3. dwg格式的计算机图,例举电脑dwg文件怎么打开
  4. 从CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
  5. MySQL数据库管理命令和远程管理问题
  6. n1刷宝塔linux,斐讯天天链N1电视盒子折腾记录-安装宝塔面板当作家庭内网服务器...
  7. Android低功耗蓝牙通讯
  8. python linux区域截屏,用Python写一个像QQ可快捷键唤起区域截屏的应用
  9. mysql pxc gcache_MySQL高可用之PXC
  10. android 波斯文排序,android 阿拉伯,波斯字符串从右到左显示问题