在Android中从视频获取视频帧

在Android中从视频获取视频帧,android,image,video,android-camera,Android,Image,Video,Android Camera,我正在编写一个应用程序,它可以从Android设备的摄像头捕获视频。我试图在不重复帧的情况下获取视频的所有帧,并将它们存储在某种列表中。“无重复帧”指的是: 如果我调用MediaMetadataRetriever.getFrameAtTime(时间,选项),如果time没有太大变化,那么对该方法的两个调用有可能返回相同的帧。我想在下次调用getFrameAtTime()之前增加足够的时间,这样我就不会再得到相同的帧 显然,我还想确保不会错过任何帧 一种方法是获取视频的每秒帧数,并通过帧捕获频率增

我正在编写一个应用程序,它可以从Android设备的摄像头捕获视频。我试图在不重复帧的情况下获取视频的所有帧,并将它们存储在某种列表中。“无重复帧”指的是:

如果我调用
MediaMetadataRetriever.getFrameAtTime(时间,选项)
,如果
time
没有太大变化,那么对该方法的两个调用有可能返回相同的帧。我想在下次调用
getFrameAtTime()
之前增加足够的
时间,这样我就不会再得到相同的帧

显然,我还想确保不会错过任何帧

一种方法是获取视频的每秒帧数,并通过帧捕获频率增加
时间。但是我怎样才能获得我拍摄的视频的每秒帧数呢


否则我将如何完成此任务?

您可以注册一个处理程序。此接口声明onPreviewCallback()方法,该方法完全按照您的需要调用:每个不同的视频帧调用一次。该参数是原始相机图像。

您可以注册处理程序。此接口声明onPreviewCallback()方法,该方法完全按照您的需要调用:每个不同的视频帧调用一次。该参数是原始相机图像。

是否愿意解释为什么它不符合主题?我可以做出适当的改变。相机在哪里?(这不是关闭的理由,从你的描述中根本不清楚)顺便说一句,我相信“java”标签是不相关的。视频是用Android摄像头拍摄的。我想这可能会引起那些对相机感兴趣的人的兴趣,他们可能知道如何回答这个问题。Java标记已删除。谢谢。为什么不直接从相机上抓拍画面呢?要不要解释一下为什么它是离题的?我可以做出适当的改变。相机在哪里?(这不是关闭的理由,从你的描述中根本不清楚)顺便说一句,我相信“java”标签是不相关的。视频是用Android摄像头拍摄的。我想这可能会引起那些对相机感兴趣的人的兴趣,他们可能知道如何回答这个问题。Java标记已删除。谢谢。为什么不直接从相机中捕获帧?即使我没有编写自己的相机功能,我也可以使用它吗?我只是使用MediaStore.ACTION\u VIDEO\u CAPTURE intent来允许用户录制视频,当我的活动恢复焦点时,录制的视频将通过intent数据传递给我的应用程序。不,你不能。但是你可以同时启动录像机。即使我没有编写自己的相机功能,我也可以使用它吗?我只是使用MediaStore.ACTION\u VIDEO\u CAPTURE intent来允许用户录制视频,当我的活动恢复焦点时,录制的视频将通过intent数据传递给我的应用程序。不,你不能。但是你可以同时启动录音机。