我想制作具有逐帧播放功能的应用程序。我想标准的android工具是不可能的。我尝试了 VideoView 和 seekTo(current + 1000/framerate) 方法,但它不起作用(我猜它不会在暂停的视频上搜索)。我的问题是:我需要学习和使用什么才能使它成为可能,什么工具和/或库?我是 android 初学者,我之前没有从事视频渲染工作,所以我对此的了解非常低。
最佳答案
几年过去了,但问题仍然存在
关于该主题的简短评论:假设您有一个压缩视频,例如 mp4 文件。您要求的是逐帧播放,但由于压缩,帧实际上并不存在(查看 i,p 和 b 帧 at this Wiki )。所以Android需要为你生成这个帧。
这一代可能远非最佳(在我的情况下它跳过了大约 3% 的帧),并且可能在某些设备上不受支持,因为使用了不同的编解码器。
如果你打算在它上面运行一些算法,我建议先提取帧,作为 jpg 图像,然后一个一个地读取它们。
我使用了 here 中的 ffmpeg 包装器由 hiteshsondhi88 存档提取。它非常易于使用,并且运行流畅。
如果您仍然想使用纯 Java,Fadden 做得很好.有几个示例如何使用媒体编解码器和获取帧。
此外,我为此写了一个小例子,可以在 my Git repository 找到。
还有一个关于它的讨论,在另一个 StackOverflow question ,但我还没有尝试过,要批准。
关于android - 逐帧播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124688/