复制从视频连续帧(Copy consecutive frames from video)

2019-10-20 10:23发布

我试图复制视频的一部分,并将其保存为GIF格式写入磁盘。 视频可以是本地或远程,以及副本应2S最大。 我并不需要保存每一个帧,但每隔一帧(12-15 fps)的。 我有“帧GIF”的一部分工作,但“得到帧”的部分并不大。

以下是我试过到目前为止:
- MediaMetadataRetriever :太慢(每帧〜1S上Nexus4),只有本地文件的工作原理
- FFmpegMediaMetadataRetriever :相同的延迟,但可与远程视频
- TextureView.getBitmap()我使用ScheduledExecutorService每60ms的,抢Bitmap (同时播放...)它具有体积小效果很好getBitmap(100, 100)但对于那些较大(> 400)时,整个过程变得很慢。 而作为医生说Do not invoke this method from a drawing method反正。

看来,最好的办法是访问,而解码每一帧,并保存它们。 我试图OpenCV的针对Android ,但无法找到一个API在特定时间抢框架。

现在,我寻找到的样品 ,以了解如何使用MediaCodec ,但在运行ExtractMpegFramesTest.java ,我似乎无法提取任何框架(“从现有的解码器不输出”)。

我在正确的轨道上? 任何其他建议?

编辑:有更进一步ExtractMpegFramesTest.java ,感谢这个职位 。

编辑2:我只想澄清,我想在这里实现的是播放视频,并按下按钮,开始捕捉帧。

文章来源: Copy consecutive frames from video