从org.bytedeco.javacv.Frame获取原始数据

时间:2018-05-03 05:49:34

标签: android android-camera mediacodec android-ffmpeg javacpp

我想从javacv Frame获取原始数据。

我正在使用FFmpegFrmaeFilter来轮播Android相机预览。因此,我从FFmpegFrameFilter中提取框架,然后将byte[]转换为MediaCodec

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

是否还有其他方法可以从Frame获取原始数据,我可以将其提供给Mediacodec

1 个答案:

答案 0 :(得分:1)

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

FFmpegFrameFilter了解不同的帧格式,但这也取决于从Frame参数派生输入像素格式的某些heuristics

MediaCodec可以在flexible YUV 420 format中接收相框,但您有责任正确设置Image