我试图了解视频文件中 CMTime 和 fps 的功能。我正在尝试使用 for 循环在 AVPlayer 中呈现视频的每一帧。我知道使用 AVPlayer 的播放方法可以轻松完成此任务。但我想知道帧是如何显示的。我创建了一个 for 循环,并尝试通过不断更新 AVPlayer 的 seekToTime 方法来一一呈现每一帧。我能够开发一个解决方案,但它没有显示所有帧并且视频看起来很生涩。
这是我的代码:
for(float t=0; t < asset.duration.value; t++)
{
CMTime tt = CMTimeMake(t, asset.duration.timescale);
[self.player seekToTime:tt];
NSLog(@"%lld, %d",tt.value, tt.timescale);
}
在这里,player 是 AVPlayer 的实例,asset 是我要呈现的帧的视频资源。我也尝试过使用 CMTimeMakeSeconds(t,asset.duration.timescale),但没有奏效。
请给出你的建议。谢谢你。