1
我在Android环境中编程,我想从设备中加载视频文件,将其拆分为多个帧并使用一些图像处理技术处理它们中的每一个。如何使用MediaMetaDataRetriever拆分视频
为了将视频正确地分割成一个帧数组,我使用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();
}
以10的fps,我应该有10帧每秒。所以,在5秒的文件中,我应该有50个捕获的帧。这个怎么做?如何正确写入while/for语句以使用getFramesAtTime方法捕获所有这些帧?
在此先感谢。