我正在开发一个应用程序来提取视频的帧,但是我无法使用MediaMetadataRetriever,因为它失败了很多次。所以我找到了一个名为FFmpegMediaMetadataRetriever的外部库,由William Seemann编写,用于提取帧。但我没有使用方法FFmpegMediaMetadataRetriever.getFrameAtTime(很长时间)得到任何位图。
这是我正在尝试的代码:
FFmpegMediaMetadataRetriever mediaData = new FFmpegMediaMetadataRetriever();
mediaData.setDataSource("/storage/sdcard0/DCIM/video.mp4");
frame = (ImageView)findViewById(R.id.frame);
frame.setImageBitmap(mediaData.getFrameAtTime());
相反,我可以从视频中获取元数据,我可以使用MedaMetadataRetriever提取帧,所以我认为视频是正确的。
我不知道为什么我无法提取帧。如果图书馆适合我,我会很高兴。 谢谢!
答案 0 :(得分:2)
代码中有一个错误导致返回空帧,我刚刚解决了这个问题。请执行新的代码检查,然后重试。