我想从javacv
Frame获取原始数据。
我正在使用FFmpegFrmaeFilter
来轮播Android相机预览。因此,我从FFmpegFrameFilter
中提取框架,然后将byte[]
转换为MediaCodec
。
但是,在这样做的时候,我收到了错误的数据(绿色图片)。我正在从Frame.Image[0].array();
获取原始数据
是否还有其他方法可以从Frame获取原始数据,我可以将其提供给Mediacodec
。
答案 0 :(得分:1)
绿色图片很可能意味着您为图像的色度分量传递零。 Android相机通常会生成YUV 420图像,其中您有宽度*高度亮度数组(Y),其后是U和V,宽度/ 2 *高度/ 2。
FFmpegFrameFilter
了解不同的帧格式,但这也取决于从Frame
参数派生输入像素格式的某些heuristics。
MediaCodec
可以在flexible YUV 420 format中接收相框,但您有责任正确设置Image。