我在 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 方法捕获所有这些帧?
提前致谢。