【发布时间】:2012-04-11 08:13:40
【问题描述】:
我想从视频中获取帧数。我正在使用以下代码:
package com.vidualtest;
import java.io.File;
import java.io.FileDescriptor;
import android.app.Activity;
import android.graphics.Bitmap;
import android.media.MediaMetadataRetriever;
import android.os.Bundle;
import android.os.Environment;
import android.widget.ImageView;
public class VidualTestActivity extends Activity {
/** Called when the activity is first created. */
File file;
ImageView img;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
img = (ImageView) findViewById(R.id.img);
File sdcard = Environment.getExternalStorageDirectory();
file = new File(sdcard, "myvid.mp4");
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(file.getAbsolutePath());
img.setImageBitmap(retriever.getFrameAtTime(10000,MediaMetadataRetriever.OPTION_CLOSEST));
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (RuntimeException ex) {
ex.printStackTrace();
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
}
}
}
}
在 getFrameAtTime() 中,我以毫秒为单位传递了不同的静态时间,例如 10000、20000 等,但我仍然在不同时间内从视频中获取相同的帧。我的目标是获得具有不同时间间隔的不同帧。
请给我你可能的帮助。
谢谢
【问题讨论】:
-
您的代码运行速度太慢,一帧需要 1 秒。您找到更好的解决方案了吗?
-
还没有哥们!其实我也在寻找优化的解决方案。
-
那么看看下面我的解决方案吧!
-
@RahulUpadhyay 你的问题解决了吗?