大家好,我是小张!我今天给大家带来全网最期待的Dji pocket 1代 HDMI输出。
震惊!Dji pocket的无线底座居然使用的是RTL芯片
Dji Mimo APP逆向.1(pocket 2直播模式 物体追踪)
Dji pocket 1代云台相机初体验.上
Dji pocket 1代云台相机初体验.中
大疆Dji pocket 一代研究(Dji Mimo)
这些是我对相机的一些简单的研究。。。毕竟逆向菜鸡。。。我还在路上。
其实这个这个事情也不是我做的,是个俄罗斯大哥做的。。。我追踪他的博客和YouTube以及个人网站,看上去,他在大疆初代就开始逆向了,以及逆向成功。
下面我先放上产品的链接。
代码语言:javascript复制https://cosmostreamer.com/products/
这里我就先放一个Pocket
考虑到易用性,老哥做了客户端
这个是完整版本的样子
原理我懂,就是逆向了Dji的App,然后拿到了原生的码流,以及控制协议,从下面这个表就可见一斑。
这个协议不传输声音,然后视频的分辨率是1080P,30Fps,以及30mbit/s属于比较大的视频流了。
用Linux模拟这种协议,是什么协议呢?是安卓的AOA,以前的文章也说这个,然后在这个设备链接相机的时候也是会出现和连接手机app一样的画面。
然后内部是用下面这个解码的:
代码语言:javascript复制https://gstreamer.freedesktop.org/
这个这个,解码的!老哥电报群里面说来着,不过是内部也用的这个吗?
客户端时这个
代码语言:javascript复制https://gstreamer.freedesktop.org/
文档
代码语言:javascript复制https://source.android.google.cn/devices/accessories/protocol
就是这个,其实资料不多
是官方资料不多。。。
去Github上面看看
代码语言:javascript复制AOA protocol
关键词
代码语言:javascript复制https://github.com/search?l=Java&q=AOA&type=Repositories
因为是安卓的东西,java的代码不可少
对于通用性,还可以看看C的实现
下次看源码!
当然这里有一个有趣的项目
AOA的Python转发
这个是目前实现的一些功能
已经可以编程控制了
如果你的配件是3A 那就只有这些功能了
推荐用4B
他为Jetson Nano也做了镜像
其实老哥做 纯软件上面的工作,硬件都可以移植,只不过是按照软件饿要求移植的。因为很吃性能。
然后他提供了对应硬件的镜像,烧录好。还不能用,老哥要恰饭哦。。。你得买个key。
150美元
换算一下
但是我穷啊。。。我只能买的起个4B了,然后我斗胆给大哥写邮件了:
哇,很开心
老哥说硬件到了给他发QR,免费免费免费给我一个!!!
就是可以使用追踪
然后就是emmmmm,怕你看这个内部实现,文件系统为只读模式
代码语言:javascript复制https://cosmostreamer.com/products/pocketosmo/diy/
我这里简单的说下这个如何制作。
硬件 软件系统 电源 连接线 key
我这里为了性能和功能全面,选择树莓派4B ,4G的版本
硬件使用这个
在使用HDMI输出的时候,没有屏幕叠加
下载镜像以后
烧录,插卡
晚上拍的效果可能不好
这里是HDMI的输出口,如果你要用HDMI的输出的话
就使用这个口,然后是小的HDMI的口,记得买线
这个东西,运行起来把电源口给占了,所以不能用常规的方法供电,我选的方法是引脚供电,然后为了方便,我用了一个UPS。
就是这样的
自己要是折腾就是这几个线。。。
其实我有个疑惑的地方,资料都说,4B这个口不能传输数据,但是很明显现在当USB口用了。
烧录好以后,插卡开机,连接机器的热点,之后可以输入下面的任意一个URL打开后台,完成后续操作
代码语言:javascript复制http://192.168.50.1
http://my.cosmostreamer.com
http://cosmostreamer.local
连接到 Wi-Fi 网络cosmostreamer,密码1234512345
解压前
解压后
格式化
烧录
因为桌子小,就不上屏幕了
使用一个HDMI的采集器简单看看效果
HDMI Video Capture使用体验(上)
HDMI采集器
对这个东西感兴趣的,可以看我以前写的文章
配套的需要用OBS抓取
代码语言:javascript复制https://cdn-fastly.obsproject.com/downloads/OBS-Studio-27.0.1-Full-Installer-x64.exe
打开以后简单的设置就可以使用了,首次应该是会会出现
一个二维码的页面,用来发给老哥制作key
在网页内,打开设置
如果你连接相机了,现在就可以设置一下类型
接下来在第二项,输入秘钥
复制进来就行
此时就完成了所有的工作,我这里是使用了客户端,所以显得很专业。
看起来就很屌
还是很屌
再看看这个USB-C口的问题,再这里下载使用
代码语言:javascript复制https://shumeipai.nxez.com/raspberry-pi-schematics
代码语言:javascript复制https://shumeipai.nxez.com/wp-content/uploads/2018/09/rpi_SCH_4b_4p0_reduced.pdf
事实上看这个原理图,USB-C是全功能的
顺便看看树莓派Zero的两个USB口
关于供电,可以使用这个网口供电
不过有这么大电流?
这个小东西也可以增量更新
这个我有点疑惑
好像是USB和WiFi需要两个许可证
当然那么大的码流,USB是最推荐的办法了
一种是这样的
一种是这样的
还有一个3B的这样的,不知道能不能用在4B上面
还可以接航模遥控器来控制云台
这个先不玩
老哥修东西比较快
本来是想真实的机器测试的,然后线材拿错了。。。就不能正常运行了,不过登录以后看看相关的功能。
因为再WEB,调试比较简单一些,下面就是简单的看了下回传的各种信息
异步加载
Http协议
回复头什么的
可以在资源里面看到相机的QR
应用支持丰富的设备
为了更加稳定,可以启用网口传输
可以自己去更改WiFi的一些设置
对于HDMI的输出也可以更改参数
RTMP传输
原生的H264码流
RTSP传输
这些都可以使用OpenCV这些东西去传输
特别的暴露了一个tty
这里就可以看到是一个网口回环一个WiFi一个
打补丁也很简单。之后会出现这个
重启,连接
可以启用RC控制,这个不知道是实时的还是手动的
多路的游戏手柄控制
还有航模遥控器的控制
是否启用自带的摄像头作为第二摄像头
有时候,没有屏幕不方便
可以制作属于自己的实体按钮
支持HDMI和CVBS
就是老式的接口
还支持这个
代码语言:javascript复制https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)
牛逼
视频输出的选项
客户端的连接是可以指定ip或者自动连接
一些更加高级的控制选项
比如是否启用TCP的视频流连接
这个没有看懂,直接用这个客户端控制相机?
对于我来说,这个才是最有用的
有了这个,我就可以各种控制
键盘控制
小哥追踪库开源了
代码不难,可以去学习
代码语言:javascript复制https://github.com/cosmostreamer/CosmoTracker
也可以录制gif
我太弱了,要是可以逆向出协议就好了,emmmmmm。大哥的工作值得付款!毕竟你可以找到的资源只有这个了~