4

これまでのところ、満足のいく答えはどこにも見つかりませんでした...

データベース BLOB からビデオ ファイルをロードし、アプリケーション ウィンドウ内で再生する必要がある C# WinForms .NET3.5 アプリケーションに取り組んでいます。データベースはローカル ファイルです (サーバーは関係ありません)。

ファイルをハード ドライブに保存することは、時間がかかる可能性があるため、良い解決策ではないと思います。とにかく、ファイルは既にメモリ ストリームに保存されています。

できるだけ多くの種類のビデオ フォーマット (コーデック?) を再生できるようにする必要があります。divX、XVid、mpeg、avi、3gp などを含みます。

使いやすい実用的なコード サンプル、または既存のサード パーティ コンポーネントを探しています。

DirectShow や VLC など、ビデオ レンダリング、フィルター、グラフなどの分野でほとんどの学位を取得する必要がある提案は、実用的なサンプルがない限り、問題外です。

何か案は?

ありがとうございました。

4

2 に答える 2

2

最も一般的なアプローチは DirectShow を使用することですが、この場合はグラフなどを作成する必要があります。この分野の経験がない場合、DirectShow を使い始めるのは簡単ではありません。

別の非常にリッチなアイデア (およびあなたが書いた「一般的なアイデア」) は、ReadFile や SetFilePointer などのファイル呼び出しをフックし、これらの呼び出しをメモリストリームのメソッド (Read、Seek) に変換することです。したがって、呼び出し元のコードは、実際に存在するファイルで動作すると見なします.

たとえば、チャンクごとに暗号化されたビデオを再生し、ファイル全体を復号化せずに再生し、復号化されたチャンクをディスクにドロップせずに再生する方法を示す記事: http://boxedapp.com/encrypted_video_streaming.html

于 2014-08-14T18:30:26.047 に答える
0

これを行うには、VLC でシン ラッパー (マネージド コードを使用していると仮定します) を作成し、invmem と imem を使用します。入力を渡すいくつかの例は、 ここここにあります。

于 2013-01-31T16:38:20.590 に答える