我通过VideoFeeder从PrimaryVideoFeed接收了原始的H264视频,并将其发送到DJICodecManager。使用DJI Phantom 4,YuvDataCallback可以接收分辨率为HD(1280x720)的正确视频帧。配合DJI Phantom 4 Advanced和HDMI(第54部分)模块,它可以接收破碎的Full HD(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_);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。