1

Desktop Duplication API でキャプチャされたデスクトップ イメージ データのフレームをネットワーク経由で転送する必要がありますが、問題が 1 つあります。DXGI_FORMAT_B8G8R8A8_UNORM形式のFullHD生フレームデータのサイズ は、約 8 MBで、サイズが大きすぎます。特に1フレーム。

D3D11_MAPPED_SUBRESOURCEからのデスクトップ イメージのフレームを圧縮し、少なくともKB単位でサイズを取得する良い方法はありますか? bmp から jpeg への何らかの変換でしょうか?

私はすでにLZ4_compress_defaultメソッドを使用してLZ4圧縮を試しましたが、3.4 MBサイズのバイト配列を取得しましたが、これはまだフレームには大きすぎます。

4

1 に答える 1

1

...大きいサイズ、特に 1 フレームの場合

ビデオを実行していて、ネットワーク伝送が問題であるため、唯一の現実的な選択肢は、H.264 および H.265 ビデオ圧縮です。これは、ビデオ アダプターのハードウェア アシスト エンコーダーに実装されています。Microsoft Media Foundation API (変換)およびビデオ ハードウェア ベンダー固有の SDK は、関連する機能を提供します。

個々の画像の Windows Imaging Component (WIC) は、圧縮率が遅くなり、効率が低下します。ビデオではなく、個々のスナップショットが送信される唯一のデータである場合には、これは良い選択かもしれません。

また、ビデオ エンコーディングのサポートを確認する簡単な方法: http://alax.info/blog/1609

このツールは、メディア ファンデーション変換 (MFT) の列挙アプリケーションと同様に、変換を列挙し、詳細を提供します。

于 2019-11-18T07:11:38.097 に答える