逐帧播放视频

时间:2013-08-08 11:20:04

标签: android video-processing

我想用逐帧播放功能制作应用程序。我想用标准的android工具是不可能的。我尝试了VideoView和seekTo(当前+ 1000 /帧速率)方法,但它不起作用(我猜它不会寻找暂停的视频)。我的问题是:我需要学习和使用什么来使它成为可能,什么工具和/或库?我是android初学者,我之前没有处理视频渲染,所以我对此的了解非常少。

1 个答案:

答案 0 :(得分:2)

几年过去了,但问题仍然存在

有关该主题的简短评论:
假设您有一个压缩的视频,例如mp4文件。您要求的是逐帧播放,但是由于压缩,实际上并没有帧(请看i,p和b帧at this Wiki)。因此,Android需要为您生成此框架。 这一代可能不是最佳选择(在我的情况下,它跳过了约3%的帧),并且在某些设备上可能不受支持,因为使用了不同的编解码器。

如果您打算在其上运行一些Algo,建议您先将帧提取为jpg图像,然后逐个阅读。

我使用了hiteshsondhi88的here中的ffmpeg包装器来存档提取。它非常易于使用,并且运行流畅。

如果您仍然想使用纯Java,Fadden可以做得很好。有一些示例如何使用媒体编解码器并获取帧。

此外,我为此写了一个小例子,可以在my Git repository

上找到。

在另一个StackOverflow question中也对此进行了讨论,但我尚未尝试批准。