从视频中提取位图而不使用FFMpeg

时间:2013-07-05 07:50:30

标签: android video bitmap extract

首先,感谢这个论坛在我的第一个应用程序(SwatchMatic)上提供了很多帮助(作为很长时间的潜伏者)。我现在正努力尝试第二次,而且,这是我第一次提出问题。

正如本论坛其他地方所指出的那样,MediaDataRetriever不能指望以细粒度的步骤从视频中检索位图,即使使用微秒,即使使用OPTION CLOSET(获取所有帧,也不是只是键/同步帧)

所以,像这样的东西,将会返回许多重复的帧 - 一个与你期望的第二个视频相比〜(至少在我的三星测试设备上 - 而三星发行版看起来似乎更差)提供所有帧,而不是其他制造商from what I've read in other forums)。

for (int i = 0; i < 1000000 ; i = i + (1000000/30)){
    Bitmap myBitmap = retriever.getFrameAtTime(i, android.media.MediaMetadataRetriever.OPTION_CLOSEST);
    ...
    }

典型的答案是使用ffmpeg,但这是一个臃肿的解决方案,以获得我需要的非常有限的功能(从mpeg-4编码vido的30-60的几个位图序列),它打开了我必须用我的应用程序等分发LGPL代码

我也在这个论坛上看到,没有简单的方法可以从VideoView(这是SurfaceView的chid)中获取帧。一些Google员工实际上已回复此效果here

但是ThumbnailUtils的createVideoThumbnail方法呢?我可以使用它可以提供的MINI_KIND分辨率,但它似乎只能提供剪辑的中间帧(时间方面)。可以以某种方式覆盖/扩展以在特定时间创建帧吗?

0 个答案:

没有答案