android - 逐帧播放视频

标签 android video-processing

我想制作具有逐帧播放功能的应用程序。我想标准的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/

相关文章:

python - Opencv VideoCapture 在 Heroku 上总是返回 false

c++ - 追踪多张面孔

android - 谷歌分析的数据使用

java - 图像无法正确缩放

android - 如何逐行打印文本框中文本的编辑文本

android - ScrollView 或其父级无用

android - Android 手机每 66 毫秒拍照一次以进行颜色分析(心率监测)

Android - 删除发送给自己的手机验证短信

Android更改任何视频文件的音频

video-streaming - Java 高清视频捕获处理和流式传输