实际上我需要使用Mediameatdatareteriver从视频中获取特定的时间帧图像 但我对使用FFMPEG不感兴趣。
如果有人对此有任何想法请帮助我们。
答案 0 :(得分:1)
尝试使用此代码(从Android的android.media.ThumbnailUtils
类中提取)。
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(filePath);
bitmap = retriever.getFrameAtTime(time);
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file.
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
}
}
请注意time
值以微秒为单位。
编辑这些是another overload for getFrameAtTime(),您可以在其中传入选项,以便所选框架更接近指定时间(尽管它可能不是关键帧)。例如,使用:
bitmap = retriever.getFrameAtTime(time, MediaMetadataRetriever. OPTION_CLOSEST);
文档指出此选项的性能成本虽然更高,但请注意这一点。