1

DirectXをインストールせずにWindows2008(できるだけインストールしたくないWebサーバー)で作業せずに、C#を使用して位置Xのビデオ(.wmv)からフレーム/イメージを取得できるかどうかを誰かが知っていますか?

または、directxを使用した単純なソリューションでもよいでしょう。

ヘンク

4

3 に答える 3

6

実際に調べる必要があるのは、Windows 用の汎用メディア (オーディオとビデオの両方) ライブラリであるDirectShowです。以前は DirectX の一部でしたが、数年前に分岐して Windows (プラットフォーム) SDK の一部になりました。また、Windows Vista からメディア ファンデーションが推奨されるようになったため、現在は非推奨になっていることも指摘しておく必要があります。私が読んだところによると、それははるかに優れたライブラリです (DirectShow は複雑なタスクには地獄です) が、残念ながら、現時点では XP 以前のサポートが不足しているため、Media Foundation のみをターゲットにすることは現実的ではありません...

私が実際にできる最善のことは、DirectShowの .NET ラッパー ライブラリである DirectShow.NET を紹介することです。これは、現時点ではかなり安定しており、十分にテストされています。作業を進めるのに役立つさまざまなサンプルが含まれていますが、決して簡単な解決策ではありません。また、この CodeProject の記事/sample applicationをご覧になることを強くお勧めします。Web カメラのビデオ キャプチャとファイル (WMV を含む) からのビデオ再生の両方を処理します。それを少しいじって、フレームシーク/単一フレームキャプチャの方法を学ぶことで(プロジェクトはそれを行うためのコードでさえあると思います、必要なものが得られるはずです。おそらく、その CodeProject アプリの DirectShow.NET サンプル内のどこかに正確な解決策が見つかるでしょう。

もちろん、ここでできればもっと簡単な解決策を提案したいと思いますが、現時点では DirectShow の恐ろしさにかなり悩まされています。とにかく頑張ってください!

于 2009-03-16T19:35:25.723 に答える
1

FFmpegを試してみてください。

于 2009-03-16T19:30:39.900 に答える
0

Windows Media フォーマット SDK を見てみましょう。これは、WMV (/WMA/ASF) ファイル内のフレームに直接アクセスできるように設計されています。

http://msdn.microsoft.com/en-us/library/dd757738(VS.85).aspx

特に、これらのファイルを読み取るための同期 API に関心があります (IWMSyncReader はインターフェイス名です)。WMFSDK にはかなりまともなサンプルがいくつかあります。ここで最も興味深いのは WMSyncReader だと思います。これは、WMV ファイルを調べて、位置 X からフレームを取得する方法を示します。

于 2010-08-20T14:26:58.870 に答える