ビデオ ファイル内の CMTime と fps の機能を理解しようとしています。forループを使用して、AVPlayerでビデオのすべてのフレームを表示しようとしています。このタスクは、AVPlayer の play メソッドを使用して簡単に実行できることを知っています。しかし、フレームがどのように正確に表示されるかを知りたいです。for ループを作成し、AVPlayer の seekToTime メソッドを常に更新することで、各フレームを 1 つずつ表示しようとしました。解決策を開発することはできますが、すべてのフレームが表示されず、ビデオがぎこちなく見えます。
これは私のコードです:
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) も使用してみましたが、うまくいきませんでした。
あなたの提案をしてください。ありがとうございました。