【发布时间】:2013-09-30 13:14:46
【问题描述】:
我在 Android 环境中编程,我想从设备加载一个视频文件,将其分割成帧并使用一些图像处理技术处理每个帧。
为了将视频正确分割成帧数组,我使用 MetaDataRetriever 类,将文件路径作为输入。
我的问题是我不明白如何使用 getFrameAtTime 方法正确拆分文件。特别是,我的代码是:
MediaMetaDataRetriever media = new MediaMetaDataRetriever();
media.setDataSource(this.path);
String durata = media.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
int durata_millisec = Integer.parseInt(durata);
durata_video_micros = durata_millisec * 1000;
durata_secondi = durata_millisec / 1000;
String bitrate = media.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BITRATE); //numero bit al secondo.
int fps = 10;
int numeroFrameCaptured = fps * durata_secondi;
int i=0;
while(i<numeroFrameCaptured){
vettoreFrame[i] = media.getFrameAtTime();
}
如果 fps 为 10,我应该每秒有 10 帧。所以,在一个 5 秒的文件中,我应该有 50 个捕获的帧。这该怎么做?如何正确编写 while/for 语句以使用 getFramesAtTime 方法捕获所有这些帧?
提前致谢。
【问题讨论】: