Android 获取mp4文件中任意时间点的帧图片(MediaMetadataRetriever )

来源:互联网 发布:netflix hystrix源码 编辑:程序博客网 时间:2024/06/06 18:47

#

工作中遇到,需要获取一个本地mp4文件任意时间点的图片。刚开我始是使用 Android 提供的 MediaMetadataRetriever 来实现,不过鼓捣一阵发现,其实系统的这个类并不能满足我的需求,因为
MediaMetadataRetriever 只能获取 你指定时间的附近的关键帧(Key frame
一开始的代码如下
java
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(renderOutputFilePath);
mmr.getFrameAtTime(1*1000*1000,OPTION_CLOSEST_SYNC );//获取1秒附近的关键帧

即使我把 getFrameAtTime 的第二个参数指定为 OPTION_CLOSEST 其实也获取不到精确位置的图片。

  最后还是在stackoverflow找到了封装了ffmpeg的库可以满足我的需要,并且所提供的API 和 Android 的 MediaMetadataRetriever是一样的,github地址。 需要注意的是,这个库导进去还是比较大的,我仅仅导入了 armeabi-v7a 架构的库,也使得我的库增加了 将近5MB。如果后续有更好的方式,会在这边更新。

0 0
原创粉丝点击