我想从javacv Frame获取原始数据。
我正在使用FFmpegFrmaeFilter来旋转安卓相机预览。因此,我从FFmpegFrameFilter中提取帧,然后将转换后的byte[]提供给MediaCodec。
但是,在这样做的同时,我得到了错误的数据(绿色图片).I从Frame.Image[0].array();获取原始数据
有没有其他方法可以从Frame中获取原始数据,我可以将其提供给Mediacodec。
发布于 2018-05-03 16:27:05
绿色图片很可能意味着您为图像的色度分量传递了零。Android摄像头通常会生成YUV420图像,其中有宽度*高度亮度(Y)数组,然后是U和V,宽度/2*高度/2。
FFmpegFrameFilter可以理解不同的帧格式,但这也依赖于一些从Frame参数派生输入像素格式的heuristics。
MediaCodec可以在flexible YUV 420 format中接收帧,但正确设置Image是您的责任。
https://stackoverflow.com/questions/50147811
复制相似问题