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中Tkinter GUI编程详细教程

《Python中TkinterGUI编程详细教程》Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文... 目录前言1. Tkinter 简介2. 第一个 Tkinter 程序3. 窗口和基础组件3.1 创建窗

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

VSCode开发中有哪些好用的插件和快捷键

《VSCode开发中有哪些好用的插件和快捷键》作为全球最受欢迎的编程工具,VSCode的快捷键体系是提升开发效率的核心密码,:本文主要介绍VSCode开发中有哪些好用的插件和快捷键的相关资料,文中... 目录前言1、vscode插件1.1 Live-server1.2 Auto Rename Tag1.3

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

使用Python实现局域网远程监控电脑屏幕的方法

《使用Python实现局域网远程监控电脑屏幕的方法》文章介绍了两种使用Python在局域网内实现远程监控电脑屏幕的方法,方法一使用mss和socket,方法二使用PyAutoGUI和Flask,每种方... 目录方法一:使用mss和socket实现屏幕共享服务端(被监控端)客户端(监控端)方法二:使用PyA

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js