PNGシーケンスまたはムービーを処理してエクスポートする最速の方法を見つけようとしています。私はKinectデータをキャプチャしており、現在、各描画呼び出しで次を使用しています。
saveFrame("output/fames####.png");
しかし、これは遅すぎます。もっと速くできることはありますか?
kinectフィードにはsimple-openniを使用しています。
PNGシーケンスまたはムービーを処理してエクスポートする最速の方法を見つけようとしています。私はKinectデータをキャプチャしており、現在、各描画呼び出しで次を使用しています。
saveFrame("output/fames####.png");
しかし、これは遅すぎます。もっと速くできることはありますか?
kinectフィードにはsimple-openniを使用しています。
.oni 形式への保存を試みることができます。録音および再生用のSimpleOpenNI サンプルが既に存在します。これは多くのメモリを使用するはずですが、それでも saveFrame() よりも高速である可能性があると思います
.oni 形式を使用する利点は、SimpleOpeni で記録されたノードを簡単に処理できることです (たとえば、スケルトン/ハンド トラッキングやその他の機能を .oni 記録でテストできます)。画像が必要な場合は、.oniファイルを抽出/解析する方法があるはずです
1 つのフレームを処理/エンコードするのにどのくらいの時間がかかりますか (また、許容できる時間はどれくらいですか)? データをバッファリングして、一定数のワーカー スレッドで非同期に処理することができます。そうしないと、インストールされたコーデックがハードウェア アクセラレーション/最適化された CPU ベースのエンコーディングを使用できるため、ビデオのキャプチャに頼る必要があります。
編集:エンコードのレイテンシを吸収するには、エンコードが必要なフレームをダンプする循環バッファーを使用できます。次に、一連のフレームを並行してエンコードするTaskを起動します。それらが終了したら、バッファにフレームがあるかどうかを確認し、それらを処理します。