安卓摄像头2:如何在录制视频时访问每一帧



我的目标是在录制视频时访问每一帧

我想要的是在录制时拍摄每一帧,并且帧应该与结果视频的每一帧完全相等,而不是预览帧。
当然,我可以在录制结束后使用OpenCV或FFMPEG等工具访问每一帧,但现在我需要在录制时实时获取它们。

BitmapImageByteBufferbyte[]或作为文件,如果我可以访问每个数据,则任何类型都可以。

我搜索了一些教程,找到了这个系列,尤其是这个视频,但这并不是我所需要的。该教程包括如何在录制视频时拍照。

有人能帮我吗?

不幸的是,通常情况下,精确的视频帧只发送到视频编码器。当然,您可以在每个编码帧从MediaCodec输出后对视频进行解码,但这有点昂贵。

或者,您可以尝试使用带有使用标志的ImageReader,这只在最近的Android版本上可行,并同时使用usage_CPU_READ_OFTEN和usage_VIDEO_ENCODE使用标志,并格式化YUV_420_888。这应该尽可能接近"正常"的视频录制输出,但不幸的是,它可能并不完全相同。

最新更新