Dji pocket 1代 HDMI输出(使用原生协议)

2021-09-14 15:44:35 浏览数 (1)

大家好,我是小张!我今天给大家带来全网最期待的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。大哥的工作值得付款!毕竟你可以找到的资源只有这个了~

0 人点赞