web-dev-qa-db-ja.com

高品質のビデオストリーミングを備えたビデオチャットアプリケーションの開発

私は、既存のアプリケーションでビデオチャットサポートを開発している会社で働いています。私はこのためのさまざまな解決策を見てきました

  1. C#でのビデオキャプチャとストリーミングにManaged Direct Showを使用する
  2. イメージを取得してネットワーク経由で渡すコードプロジェクトのコードサンプル(帯域幅を大量に消費するため、粗雑なソリューションと呼んでいます)。
  3. 圧縮アルゴリズムを最初からコーディングし、それを使用してビデオを圧縮/解凍します。

ここでの課題は、非常に高品質のビデオストリーミングを実現することを目指しており、コンテナアプリケーションがC#.NETでコーディングされていることです。

これは私がこれまで提案してきたことです。データをストリーミングするネットワークロジックはC#で記述され、ビデオ圧縮はVC++で記述され、可能な限りpinvokeまたはいずれかのCLIを使用してこのVC++ dllを呼び出します。

私はこの分野で私が経験しているもう1人の経験者を探しています。この経験から、Iamが正常に機能するかどうか、またはこれを改善できるかどうかを提案できます。

最終的な目標は、高品質のビデオストリーミングです。コーデックは、h.2633、h.264など、どのようなものでもかまいません。

19
Sumit Ghosh

私はいくつかの方法を使用して、ダイレクトショーを掘り下げる必要なしに、.netでビデオストリーミング/会議を簡単に取得しました。 (わかりました、少し掘ってください、しかし深くはありません:)

1)単純なWindows Mediaエンコーダコンポーネントの使用。 Windows MediaエンコーダSDKのサンプルとともにドキュメント化されています。高解像度のストリーミングには適していますが、リアルタイムチャットには遅延が大きすぎます(最大で0.5〜2秒)。 Modern Express Encoder SDKは別のオプションです。

2)Microsoft Research ConferenceXP http://cct.cs.washington.edu/ アプリケーションストリーミングを含むフル機能の会議API。あまりにも低レベルのWindows Mediaがフィルターをコード化し、それらをマネージコードにラップしました。うまくいきます。簡単にカスタマイズできます。少し見捨てられたようです。

3)Microsoft RTCクライアントバージョン1.3まで-Windowsメッセンジャーのコア。

長所:Microsoftからのマネージサンプル、優れたドキュメント、信頼性の高いパフォーマンス、自由に再配布可能、Microsoft互換(優れた)SIPスタックが含まれています。EmblazeVCONなどの主要な会議ベンダーは、過去のいくつかのソリューションに基づいていました、この頃はよくわかりませんが、TandbergがMicrosftのVC-1のライセンスを取得していることは知っています。

短所:1.3までのバージョンはh261-h263ビデオのみをサポートします。 VC-1(h264)コーデックをサポートする最新バージョンは、サーバーレスの直接IP-IP接続を許可しません。 Microsoft Live Communicationsサーバーが必要です。新しいバージョンのSDKは、ビデオ会議の通話には対応していません。

http://msdn.Microsoft.com/en-us/library/ms775892(VS.85).aspx

選択したプラットフォームをお知らせください。ちなみに、私はConferenceXPビデオrtpパーツとRTC 1.3音声/ SIP機能を組み合わせてビデオ品質を向上させるために使用したので、ここで管理テクノロジの幅広い選択肢があります。もう1つはLive Meetingです。まだよく見る機会がありませんでした。

23

自分の手間を省き、VLCを使用してください。それのためのまともな.NETラッパーがあります( http://forum.videolan.org/viewtopic.php?f=32&t=52021&start=

IPTVネットワークにはC#とVLCを使用しています。 Windows上のOsprey-450ビデオキャプチャデバイスを介してDISHネットワークサテライトから入力を取り出しますXPサーバー。そこから、C#で記述した.NETサーバーコンポーネントがあり、舞台裏でVLCを使用します(vlc.exeインスタンスを制御するために.NETで個別のプロセスを開始します。)VLCプロセスは、ネットワークを介して信号をトランスコードおよびストリーミングします(.h264またはMPEG-4、両方を正常に実行しました)。

クライアント側には、埋め込みVLCビューアを使用してマルチキャスト信号を表示するC#WinFormアプリケーションがあります。このアプリケーションは、主にコマンドと制御用です。マルチキャスト信号が実際に使用されるのは、テレビに接続されたセットトップボックスがストリームをデコードして表示するときです。

独自のDirectXエンコーダーも作成する必要があると考えましたが、すべての問題に行く必要はありません。 VLCは非常にうまく機能し、非常に役立つのに十分なC#サポートがあります。実装について具体的な質問がある場合は、遠慮なくメールでお問い合わせください。

10
Chris Holmes

Ucentrik SDKを確認してください。このSDKを使用すると、ビデオ、オーディオ、チャット、リモートデスクトップ共有、制御、ビデオ録画などのリッチメディア機能をアプリケーションに統合できます。サポートされているビデオコーデックは、VP8(Google)、Theora、およびx.264です。さらに、リッチメディアトラフィックはHTTPプロトコル内にカプセル化され、通常のWebトラフィックを可能にするファイアウォールを通過できるようになります。このテクノロジーは完全に無料であり、SDKをダウンロードしてAPIキーを要求できるため、インフラストラクチャのセットアップに時間を費やすことなく評価できます。今後数か月以内に、サーバーコンポーネントをリリースし、インフラストラクチャをダウンロードしてホストすることができます。このテクノロジーは1対多の接続をサポートしているため、必要に応じてビデオ会議を作成できます。機能は高度にモジュール化されているため、同じSDKを使用して、ビデオ、オーディオ、デスクトップ共有、またはテクノロジーの組み合わせだけを統合できます。SDKは、www.ucentrik.comでリクエストしてください。さらに、ここにいくつかのビデオがあります: http://www.youtube.com/user/ucentrik

幸運を。

2
Francis

Ucentrikは、CTXテクノロジーを統合するオープンソースのコールセンターアプリケーションをリリースしました。このコールセンターアプリケーションは、ビデオ、オーディオ、デスクトップ/アプリケーション共有(制御付き)、CTX APIから利用可能なテキストチャット機能を実装します。このアプリケーションには、利用可能な、または特定のスキルセットを持つエージェントに通話をルーティングする機能を提供することを中心としたビジネスロジックも含まれています。プロジェクトは http://vcca.codeplex.com で入手できます-Ucentrik Webサイト(www.ucentrik.com)でリクエストできるUcentrik CTX SDKへのアクセスが必要です。 。幸運を。

0
user1193676