56

ブラウザベースのクライアント (後で作成します) を使用して接続し、ストリーミング ビデオを視聴できる単純なサーバー アプリケーションを作成したいと考えています。そして、C#を使いたいです。

Web カメラを介してビデオまたは高速画像をキャプチャし、ネットワーク経由で送信するには何が必要ですか?

4

6 に答える 6

22

「ボックス内のキャプチャ/ストリーマー」コンポーネントが必要な場合は、他の人が言及したようにいくつかあります。

すべてを低レベルで制御したい場合は、同志のハッカーが指摘しているように、DirectShow を使用する必要があります。C# で DirectShow を使用する最良の方法は、DirectShow.Netライブラリを使用することです。このライブラリには、すべての DirectShow COM API がラップされており、多くの便利なショートカット関数が含まれています。

キャプチャとストリーミングに加えて、録音、オーディオとビデオのフォーマット変換、オーディオとビデオのライブ フィルタなど、さまざまなことができます。

Microsoft は、DirectShow がなくなると主張していますが、DirectShow が提供するすべてのことを行う新しいライブラリまたは API をまだリリースしていません。彼らがリリースした最新のものの多くは、まだ内部の DirectShow であると思われます。Microsoft でのステータスのため、MSDN やフォーラムで見つけることができるもの以外には、本や参考文献はあまりありません。昨年、それを使用したプロジェクトを開始したとき、このテーマに関する最高の本であるMicrosoft DirectShow のプログラミングは絶版で、中古で約 350 ドルでした。

于 2008-12-05T22:48:52.127 に答える
7

このための通常の API は DirectShow です。

P/Invoke を使用して C++ API をインポートできますが、これを行っているプロジェクトがすでにいくつかあると思います。

http://channel9.msdn.com/forums/TechOff/93476-Programatically-Using-A-Webcam-In-C/

http://www.codeproject.com/KB/directx/DirXVidStrm.aspx

ストリーミング部分を取得するには、おそらく DirectShow を使用して圧縮コーデックを適用し、ラグを減らしてから、ストリームを取得して送信します。マルチキャストを使用してネットワーク負荷を軽減することを検討できます。

于 2008-12-05T22:20:46.083 に答える
4

VideoLANを使用できます。VideoLAN はサーバーとして機能します (または、より詳細に制御するために独自の C# アプリケーションをラップすることもできます)。また、ビューアー用の .NET ラッパーを使用して C# クライアントに埋め込むこともできます。

于 2009-02-04T17:22:21.583 に答える
3

プロジェクトにVideoCapXを使用しました。メディア プレーヤーで開くことができる MMS/ASF ストリームとしてストリーミングされます。その後、メディア プレーヤーを Web ページに埋め込むことができます。

あまり制御する必要がない場合、またはコードを記述せずに VideoCapX を試してみたい場合は、U-Broadcastを試してください。彼らは裏で VideoCapX を使用しています。

于 2008-12-05T08:16:19.393 に答える
2

Web カメラからブラウザーに画像をストリーミングする別のオプションは、mjpeg を使用することです。これは、最近のほとんどのブラウザーがタグの一部としてサポートする一連の jpeg 画像です。C# で記述されたサンプル サーバーを次に示します。

https://www.codeproject.com/articles/371955/motion-jpeg-streaming-server

これは LAN 経由ではうまく機能しますが、mjpeg は他のビデオ コーデック (h264、VP8 など) ほど効率的ではないため、インターネット経由ではうまく機能しません。

于 2016-12-06T16:08:12.547 に答える
1

Web ブラウザー内からビデオを録画したい場合、唯一のオプションは Flash だと思います。私たちは同じことをしようとしています。私たちも主に .NET ハウスであり、.NET を使用して Webcam _from_within_the_browser_ をキャプチャする方法がわかりません。ここで言及されている他のすべてのソリューションは、デスクトップ アプリに満足している場合、おそらくうまく機能するでしょう。

于 2012-03-27T21:05:45.913 に答える