2011-08-17 143 views
6

有没有办法逐帧逐帧浏览视频文件?我尝试过使用VideoView,并且取得了轻微的成功。我可以通过关键帧获取视频,但不是单个帧。我想这是默认设置,尤其是视频压缩的方式。有没有办法来覆盖这种默认行为或我可以更改的配置?视频帧逐帧查找

回答

5

stagefright媒体框架中的默认行为总是寻求关键帧。 (与之前的框架相反 - opencore的默认搜索行为是寻求时间)。

您无法使用Android提供的MediaPlayer API进行逐帧搜索。

如果你真的想实现逐帧寻找,那么你将不得不使用像FFMPEG第三方多媒体框架,否则你将需要实现自己的。

+0

我想我会实现我自己的,并分享它。 – Spidy

+0

是的,我用摄像机也遇到过这个问题,并且在处理screan上的对象时显示和显示帧,最后我们去了MJPG,因为我们对时间和帧速率有更严格的控制。 – JPM

+0

如果我以这种方式录制视频,那么每一帧都是关键帧? ;) – Moonlit

0

你看过MediaMetadataRetriever?您可以使用getFrameAtTime(long timeUs, int option)并返回Bitmap

根据使用情况,也许这是你所需要的。

+0

我得试试看。只适用于本地媒体(不是基于网址的媒体),但它只是一个正确的方向,如果它的工作。 – Spidy

+0

如果您还不知道[MediaPlayer Sourcecode](http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/java/android/media /MediaPlayer.java;hb=HEAD)。 'getFrameAt'未被使用并被弃用。 这是观看MediaPlayer实现的好资源。正如拉维所说:你可以实现你自己的。 – proxylittle