Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android MediaMetadataRetriever选项不适用于某些视频_Java_Android_Video_Mediametadataretriever - Fatal编程技术网

Java Android MediaMetadataRetriever选项不适用于某些视频

Java Android MediaMetadataRetriever选项不适用于某些视频,java,android,video,mediametadataretriever,Java,Android,Video,Mediametadataretriever,我刚刚开始安卓系统的开发 一段时间以来,我一直在尝试从手机上的视频文件中提取帧,如下所示: MediaMetadataRetriever retriever = new MediaMetadataRetriever(); retriever.setDataSource(getApplicationContext(),linkToVideo); // linkToVideo is Uri ImageView frameView = (ImageView) findViewById(R.id.vid

我刚刚开始安卓系统的开发

一段时间以来,我一直在尝试从手机上的视频文件中提取帧,如下所示:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(getApplicationContext(),linkToVideo); // linkToVideo is Uri
ImageView frameView = (ImageView) findViewById(R.id.video_frame);
frameView.setImageBitmap(retriever.getFrameAtTime(frameTime,MediaMetadataRetriever.OPTION_CLOSEST)); // frameTime in microseconds
这适用于640x480.mp4视频,但不适用于我的相机录制的1280x720.3gp文件。这只需要很长时间,最终应用程序停止响应。当我使用选项“最接近的同步”时,一切都会顺利运行,但我对获得的不仅仅是同步帧感兴趣

有没有办法解决这个问题?我试图避免视频编码,但如果没有其他选择,我会求助于它

提前感谢你花时间来帮助我

试试看:


谢谢你,威廉。它与FFmpeg一起工作:)我试图坚持使用android库,但在这种情况下,FFmpeg显然是更好的选择。当做
import wseemann.media.FFmpegMediaMetadataRetriever;

...

FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever();
retriever.setDataSource(getApplicationContext(),linkToVideo); // linkToVideo is  Uri
ImageView frameView = (ImageView) findViewById(R.id.video_frame);
frameView.setImageBitmap(retriever.getFrameAtTime(frameTime,MediaMetadataRetriever.OPTION_CLOSEST)); // frameTime in microseconds