首页 文章

如何从DJI相机Phantom 3 Professional无人机中检索NV21数据

提问于
浏览
0

正如我在上一篇文章中描述的那样,我使用相对SDK的DJI Phantom 3 Professional进行了相机视图(使用Wikitude框架进行AR部分) . 感谢Alex's response,我将自己的Wikitude Input Plugindji's Video Stream Decoding结合使用 .

我现在有些问题 . 首先,“DJI的视频流解码”演示使用FFmpeg进行视频帧解析,使用MediaCodec进行硬件解码 . 因此,它有助于解析视频帧并解码来自DJI Camera的原始视频流数据并输出YUV数据 . 你建议我“从dji sdk获取原始视频数据并将其传递给Wikitude SDK”:因为Wikitude Input Plugin需要YUV 420格式,安排符合NV21标准以提供自定义相机,我应该传递给MediaCodec的YUV数据输出,对吧?

关于这一点,我尝试从MediaCodec输出中检索字节缓冲区(这可以通过将Surface参数设置为null到configure()方法来实现,这可以调用回调并将其传递给外部侦听器),但是我关于可视化中的颜色有一些问题,因为编码的视频颜色不正确(蓝色和红色似乎相反,相机移动时噪点太大)..(请注意,当我通过Surface时没有null,在指令codec.releaseOutputBuffer(outIndex,true)之后,MediaCodec在其上呈现帧并正确显示视频流,但我需要将视频流传递给Wikitude插件,因此我必须将surface设置为null) .

我尝试设置不同的MediaFormat.KEY_COLOR_FORMAT,但它们都没有正常工作 . 我该如何解决这一点?

1 回答

相关问题