我正在尝试从相机捕获的视频文件中检索帧。 我写了一个函数来这样做,我在不同时间的循环中使用它,每100000(微秒)接收一次帧:
public static Bitmap getVideoFrame(long time) {
MediaMetadataRetriever mdr = new MediaMetadataRetriever();
mdr.setDataSource(path);
try {
return mdr.getFrameAtTime((time),MediaMetadataRetriever.OPTION_CLOSEST);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (RuntimeException ex) {
ex.printStackTrace();
} finally {
try {
mdr.release();
} catch (RuntimeException ex) {
}
}
return null;
}
我知道给定的时间必须是微秒,我试过。无论如何,getFrameAtTime()始终返回相同的帧。
答案 0 :(得分:3)
我遇到了同样的问题,但我找不到使用MediaMetadataRetriever的解决方案。
但是,我确实使用了这个:https://github.com/wseemann/FFmpegMediaMetadataRetriever
希望它有所帮助。