Android 从org.bytedeco.javacv.Frame获取原始数据
我想从Android 从org.bytedeco.javacv.Frame获取原始数据,android,android-camera,android-mediacodec,android-ffmpeg,javacpp,Android,Android Camera,Android Mediacodec,Android Ffmpeg,Javacpp,我想从javacvFrame获取原始数据 我正在使用FFmpegFrmaeFilter旋转Android摄像头预览。因此,我从FFmpegFrameFilter中提取帧,然后将转换后的字节[]提供给MediaCodec 但是,在这样做时,我得到了错误的数据(绿色图片)。我从Frame.Image[0].array()获取原始数据 有没有其他方法可以从帧中提取原始数据,我可以将其馈送到Mediacodec绿色图片很可能意味着图像的色度分量传递零。Android摄像头通常会生成YUV420图像,其中
javacv
Frame获取原始数据
我正在使用FFmpegFrmaeFilter
旋转Android摄像头预览。因此,我从FFmpegFrameFilter
中提取帧,然后将转换后的字节[]
提供给MediaCodec
但是,在这样做时,我得到了错误的数据(绿色图片)。我从Frame.Image[0].array()获取原始数据代码>
有没有其他方法可以从帧中提取原始数据,我可以将其馈送到Mediacodec
绿色图片很可能意味着图像的色度分量传递零。Android摄像头通常会生成YUV420图像,其中亮度(Y)的宽度*高度数组后跟U和V,每个宽度/2*高度/2
FFmpegFrameFilter
可以理解不同的帧格式,但这也取决于从frame
参数导出输入像素格式的部分
MediaCodec
可以在中接收帧,但正确设置帧是您的责任。嗨,Alex,谢谢您的回复。我正在用Android NV21图像格式设置FFmpegFrameFilter。但是,我仍然没有得到正确的视频。当我使用FFmpegFrameRecorder而不是MediaCodec来存储视频时,视频是合适的。我也尝试过使用OpenCV函数进行视频旋转,但同样的问题也在发生,我无法找到与Android兼容的正确格式。正如我所解释的,MediaCodec需要将帧包装为编解码器功能。颜色格式灵活
。您可以为NV21准备这样的包装器。您好@Alex,我已经尝试使用FFmpegFrameFiter和OpenCV获得我的解决方案,但未能成功。最后,我通过将YUVImage转换为位图并旋转它来旋转它。谢谢你的帮助…你把位图输入到MediaCodec?运气好吗?我也在尝试从一帧中高效地获取RGB像素值数组,而现在我正在通过一个缓冲图像进行跳转,这很慢。