Drift 运动相机 用于远程视频会议系统的开发教程

2023-10-29 18:59

本文主要是介绍Drift 运动相机 用于远程视频会议系统的开发教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 简介

本开发教程主要用于指导手机APP端如何通过WIFI获取Drift运动相机的实时视频流来实现远程(云)会议系统。相机支持如下技术特点:

  1. Drift运动相机目前支持会议系统的有风云客X1, GHOST 4K以及GHOST X三个型号。
  2. 第一次使用或更换外接路由器时, 采用扫描二维码方式设置相机外接Wi-Fi路由器或4G路由器或个人热点的SSID信息,以及视频流的格式等信息。
  3. 采用UDP广播包协议来实现发现设备,占用及释放设备
  4. 视频流支持TCP,RTSP以及RTMP通讯协议
  • 如何设置Wi-Fi路由器信息

手机APP按一定的字符串格式,产生二维码,如图:

以上二维码字符串:“4|foream_dev|foreamqwe123|192.168.1.14|h264”,

相机开机后,长按相应键可进入扫码模式,如X1是长按REC键,有语音提示“开始扫描”,松开按键后,相机镜头距离手机15cm左右对准手机屏幕显示的二维码,直到听到“扫描成功”,则会把二维码的数据信息写入相机并保存,然后自动连接路由器进入云视频模式,这样就可以获取相机的实时视频流了。

GHOST 4K和GHOST X 是开机后长按中间按键进入扫描模式。

第一次使用相机需要设置路由器信息,或需要修改路由器信息时,可通过扫描二维码设置。

二维码数据格式如下:“4|router_ssid|router_password|phone_ip|stream_type”

  1. 4: 表示支持远程会议系统
  2. router_ssid: 表示外接Wi-Fi路由器或个人热点的SSID
  3. router_password: 表示外接Wi-Fi路由或个人热点的Password, 可以为空
  4. phone_ip: 手机的ip地址
  5. stream_type: 支持的流协议, 目前支持tcp, rtsp, 值为字符串型,值为h264表示采用tcp协议,值为rtsp表示采用rtsp协议。
  • 手机如何发现设备

    相机设置成功后,再次开机会自动连接路由器,进入云视频模式。手机APP按设定的的设备发现协议可以找到周围的设备,如:

相机连接上路由器后会采用简单的UDP广播包来作为设备在线的心跳包,相机每隔2秒广播一个心跳包,其中心跳包的格式: “5|16位序列号|相机型号|状态”,其中:

  1. 5: 表示这是一个心跳包
  2. 16位序列号: 为相机的唯一序列号, 如“fd99652018092001”
  3. 相机型号: 相机返回的型号,如”X1_G”,“G4K_Q”
  4. 状态: 如果是数字,如值“16”表示取了手机IP地址“192.168.1.16”末位,用来表示相机正在被IP地址末位为“16”的手机占用, 如果为字符“N”, 表示没有设备连着相机,可以被其它设备使用, 这样保证一次只能一台手机使用相机。
  • 手机查询设备及锁定设备

4.1 查询设备“CAM”命令

手机APP可以发UDP广播包“CAM”来查询相机是否在线以及相机的信息,相机收到命令回复:“1|16位序列号|X1_G|固件版本号|相机IP”,使用该命令可以获取相机的IP地址,还有相机的固件版本号,判断是否有相机在线,或相机是否需要升级固件。

4.2 锁定设备“USE”命令

手机APP发UDP广播包“USE|IP末位”来锁定相机,IP末位为手机的IP地址末位,这样相机将不可被其它终端连接,相机返回的心跳包状态位为手机的IP地址的末位。

4.3 解锁设备“RELEASE”命令

手机APP发UDP广播包“RELEASE|IP末位”来解锁相机,这样相机处理空闲状态,表示可以被其它终端连接,相机返回的心跳包状态位为“N”。
  • 如何获取实时视频流

5.1 TCP协议

5.1.1 配置

缺省情况下,相机视频流的默认传输协议为TCP方式, 即相机作为了流服务器提供H264格式的RAW视频数据,客户端采用TCP协议获取一帧一帧的H264视频帧,该种协议只支持获取视频流,没有声音。

5.1.2 获取TCP视频流:

通过前面的心跳包或查询相机命令可以获得相机的IP地址,播放器直接使用URL“tcp://192.168.XX.XX:8001”,即可获得TCP协议的视频流, 其中“192.168.XX.XX”为相机的IP地址,“8001”为端口号。

如可以使用ffplay播放器,采用如下命令来播放视频流:

ffplay -fflags nobuffer -analyzeduration 1000 tcp://192.168.1.16:8001

5.2 RTSP视频流

5.2.1 配置

相机也可以提供标准的RTSP协议的视频流方式,如果希望相机提供RTSP视频流, 可以在APP中的使用如下二维码:

4|foream_dev|foreamqwe123|192.168.1.14|rtsp

5.2.2 获取RTSP视频流

针对X1设备,播放器直接使用URL “rtsp://192.168.XX.XX/AmbaTestStream”,即可获得RTSP协议的视频流, 针对GHOST 4K或GHOST X,使用“rtsp://192.168.XX.XX/live”获取视频流,其中“192.168.XX.XX”为相机的IP地址。

如可以使用ffplay播放器,采用如下命令来播放视频流:

ffplay -fflags nobuffer rtsp://192.168.1.16/AmbaStreamTest

  • 如何设置视频流参数

缺省情况下,相机视频流的分辨率为WVGA即(848*240),帧率为30fps, 码率为“1.5Mbps”,手机APP可以通过WiFi,采用tcp协议来设置相机的参数,请参考[Drift 相机API 接口全集]文档。

有兴趣交流的请发邮件到

转载于:https://my.oschina.net/u/3984083/blog/2218761

这篇关于Drift 运动相机 用于远程视频会议系统的开发教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/302714

相关文章

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统