VideoFrameProcessor 的 VideoFrameYUV 数据在 4:3 模式下损坏

VideoFrameProcessor's VideoFrameYUV data corrupted in 4:3 mode

这里使用的是Phantom 4 Pro

我们在 Swift 应用程序中实施了 VideoFrameProcessor 并使用 DJIVideoPreviewer 注册了它。当我们处于 DJICameraPhotoAspectRatio.ratio16_9 时,这一切似乎都很有效。图像在帧处理器中显示为 1280x720,我们可以将数据解码为 UIImage。

但是,如果我们切换到 DJICameraPhotoAspectRatio.ratio4_3,那么我们会得到一张报告大小为 960x720 的图像,当我们将数据解码为 UIImage 时,它​​会出现伪像和绿色条带。

有没有办法在 4:3 模式下从帧处理器获取正确的图像?

这是16:9,看起来很完美。

这里是 4:3,有人工制品和绿色条带。

我终于能够让硬件编码工作了。那解决了这个问题。在您的代码库中的某个位置,您需要设置一个全局函数,以便 DJI 可以为 h264 流加载预构建的 I 帧。它没有记录在任何地方。希望这对其他人有帮助。

g_loadPrebuildIframeOverrideFunc = loadPrebuildIframePrivate

您可以查看支持的I帧列表here

你可以看到我的GitHub评论here