0

我想从javacvFrame 获取原始数据。

我正在使用FFmpegFrmaeFilter旋转 Android 相机预览。因此,我将 Frame 从 中提取出来FFmpegFrameFilter,然后提供转换byte[]MediaCodec.

但是,这样做时,我得到了错误的数据(绿色图片)。我正在从Frame.Image[0].array();

有没有其他方法可以从 Frame 获取原始数据,我可以提供给Mediacodec.

4

1 回答 1

1

绿色图片很可能意味着您为图像的色度分量传递了零。Android 相机通常会生成 YUV 420 图像,其中您有亮度 (Y) 的宽度*高度数组,后跟 U 和 V,宽度/2*高度/2 各。

FFmpegFrameFilter理解不同的帧格式,但这也取决于一些从参数中导出输入像素格式的启发式方法。Frame

MediaCodec可以接收灵活的 YUV 420 格式的帧,但正确设置图像是您的责任。

于 2018-05-03T08:27:04.643 回答