0

コールバックによって返されたカメラフレームを処理しようとしていますdidOutputSampleBufferが、画像の突然の変化(フラッシュライトが消えるなど)をキャプチャするために高いフレームレートが必要です。コールバックが呼び出されるレートは、接続に設定されたフレームレートとは無関係のようです。を介してフレームレートを60に設定してもvideoOut.minFrameDuration = CMTimeMake(1, 60);、2つの連続するdidOutputSampleBufferの間隔は約60〜80mSのようです(これは約17〜12 fpsのフレームレートです。なぜそうですか?それを増やすことは可能ですか?

4

1 に答える 1

0

質問に対する答えを見つけたようです。基本的に、フレーム レートは、画像の解像度を選択するために使用するプリセットの影響を受けます。したがって、1MP の解像度の場合、8MP などに比べてより高速なフレーム レートを得ることができます。そのため、minFrameDuration を 160 に設定しようとしても、ハードウェアは解像度の設定 (おそらく 15 fps 以下) に基づいて可能な範囲を提供します。

そのため、FPS を上げるには、解像度を下げ、minFrameDuration プロパティを上げます。

于 2012-11-26T11:24:27.580 に答える