1

デスクトップビデオキャプチャに取り組んでいます。高速に動作するスクリーンショット取得を実装しました。次に、すべてのスクリーンショットを addImage:forDuration:withAttributes: 経由で QTMovie に追加しますが、動作が非常に遅いため、フルスクリーン キャプチャ (たとえば 1920x1080) を作成しようとすると、1.2 fps しかありません。メインスレッドでスクリーンショットを収集し、他のスレッドでそれらを処理 (QTMovie に追加) しようとしましたが、メモリ消費量が非常に速く増加しました (取得したスクリーンショットは圧縮されていません)。何か案は?ありがとう。

4

1 に答える 1

3

addImage:forDuration:withAttributes:フレームごとのキャプチャには良い方法ではないことに同意します。QTKitまた、多くのフレームでキャプチャに使用すると、フレームワーク内でメモリ リークが発生することもありました。

フレームワークを使用すると、はるかに優れた結果を得ることができますQuicktime。特にAddMediaSample2()ムービーに画像を追加する機能。

あるスレッドを使用してフレームを取得し、別のスレッドを使用してデータをムービーに追加する場合は注意が必要です。非常に多くのフレームを非常に迅速に取得できますが、オブジェクトはすべてのフレームを同じ速度でムービーに追加することはできません。続行するには、特定のフレームをドロップする必要がある場合があります。

一般に、キャプチャはトリッキーなプロセスです。幸運を。

于 2011-12-14T03:30:10.657 に答える