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

相关文章

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.