Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从org.bytedeco.javacv.Frame获取原始数据_Android_Android Camera_Android Mediacodec_Android Ffmpeg_Javacpp - Fatal编程技术网

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像素值数组,而现在我正在通过一个缓冲图像进行跳转,这很慢。