Android(安卓)获取mp4文件中任意时间点的帧图片(MediaMetadataRetriever )
16lz
2021-01-24
#
工作中遇到,需要获取一个本地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。如果后续有更好的方式,会在这边更新。
更多相关文章
- android ListView 异步加载图片
- Android(安卓)简易音乐动态相册(多种动画)
- android根据图片的uri获取图片的物理路径
- android系统设置-修改睡眠时间,修改背光强度
- android异步加载网络图片
- Android(安卓)自定义时间选择对话框
- Android之Bitmap使用心得(持续更新)
- Android:网络图片Url 转 Bitmap
- Android(安卓)video streaming and encoder