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

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本