DJI SDK:更改传入视频流的分辨率。还有,破帧
DJI SDK: changing resolution of incoming video stream. Also, broken frames
我通过 VideoFeeder 从 PrimaryVideoFeed 接收原始 H264 视频并将其发送到 DJICodecManager。
使用 DJI Phantom 4 YuvDataCallback 接收具有高清 (1280x720) 分辨率的正确视频帧。将 DJI Phantom 4 Advanced 与 HDMI(第 54 部分)模块结合使用时,它会收到损坏的全高清 (1920x1080) 视频帧。外观如下:
从图像处理的经验来看,当二进制数据不是声明的格式时会发生这种情况,但无论如何也无济于事。
所以,出现两个问题:
是否可以选择输入视频流的分辨率?如果可以,怎么做?
P4 Advanced 的视频帧到底发生了什么?它的实际格式是什么?如何解决?
这里是视频流初始化源代码:
DJICodecManager mCodecManager_ = new DJICodecManager(workContext, null, 0, 0, UsbAccessoryService.VideoStreamSource.Camera);
VideoFeeder.getInstance().getPrimaryVideoFeed().addVideoDataListener((bytes, size) -> mCodecManager_.sendDataToDecoder(bytes, size));
mCodecManager_.enabledYuvData(true);
mCodecManager_.setYuvDataCallback(yuv_handler_);
好吧,根据 this,更改 P4 Advanced 的分辨率是不可能的 - 您根本做不到。从 DJI 官方支持那里得到消息。
您会找到 #2 的答案。
我通过 VideoFeeder 从 PrimaryVideoFeed 接收原始 H264 视频并将其发送到 DJICodecManager。 使用 DJI Phantom 4 YuvDataCallback 接收具有高清 (1280x720) 分辨率的正确视频帧。将 DJI Phantom 4 Advanced 与 HDMI(第 54 部分)模块结合使用时,它会收到损坏的全高清 (1920x1080) 视频帧。外观如下:
从图像处理的经验来看,当二进制数据不是声明的格式时会发生这种情况,但无论如何也无济于事。
所以,出现两个问题:
是否可以选择输入视频流的分辨率?如果可以,怎么做?
P4 Advanced 的视频帧到底发生了什么?它的实际格式是什么?如何解决?
这里是视频流初始化源代码:
DJICodecManager mCodecManager_ = new DJICodecManager(workContext, null, 0, 0, UsbAccessoryService.VideoStreamSource.Camera);
VideoFeeder.getInstance().getPrimaryVideoFeed().addVideoDataListener((bytes, size) -> mCodecManager_.sendDataToDecoder(bytes, size));
mCodecManager_.enabledYuvData(true);
mCodecManager_.setYuvDataCallback(yuv_handler_);
好吧,根据 this,更改 P4 Advanced 的分辨率是不可能的 - 您根本做不到。从 DJI 官方支持那里得到消息。
您会找到 #2