ビデオを作成するためにキャプチャしてレンダリングしている一連のjpg画像があります。ビデオを作るためにC#で画像のシーケンスをレンダリングする
私はJpegBitmapDecoderを使用してMemoryStreamからイメージを解凍し、イメージコントロールにソースを設定してレンダリングしています。これはうまくいくようですが、プロセッサのオーバーヘッドはかなり高いです。画像は1280x720で、30fpsで動作しており、私のコンピュータ(Dual Core 2.8Ghz)にほとんど追いつくことができません。より高い解像度で走っていると、フレームが捨てられる。私はCPU使用率を下げるようにしたいと思います。
ほとんどの時間は、デコード(私のマシン上でのデコードのみの単純なベンチマークでは、約40fpsのデコードが可能であることを示しています)に費やされています。誰もが、より速いデコーダがあるかどうか知っていますか(DirectX?DirectShow?ビデオカードに何かをロードすることができますか?)
レンダリングに関しては、Imageコントロールがこのタイプの使用のために設計されているようには見えません(私は実際にそれがまったく働いて驚いた、私はそれが簡単だったので、私はそれを試した)。より速いかもしれない個々のフレームをレンダリングする別の方法がありますか?
代わりに、jpgの名前を順番に指定し、VirtualDubで最初のファイルを開き、ビデオとして再生することもできます。 –
私はもっとはっきりしていたはずです。私は画像をストリーミングしており、ストリーミングされた画像からライブビデオを再生したいと考えています。 – Dolphin
どのような方法でJPEG画像をストリーミングするのですか?私はほぼ同じことを試みており、BinaryFormatterを使ってMemoryStreamをカプセル化して送信しています。より良い方法があるのだろうかと思います。 – geometrikal