2009-01-22 14 views
19

Pracuję dla firmy, w której rozwijamy obsługę czatów wideo w istniejącej aplikacji. Mam spojrzał na różnych rozwiązań tego jakRozwijanie aplikacji czatu wideo z transmisją wideo wysokiej jakości

  1. Korzystanie Zarządzane DirectShow do przechwytywania wideo i transmisji strumieniowej w C#
  2. niektóre próbki kodu w projekcie kodu gdzie zrobić zdjęcie i przekazać go za pośrednictwem sieci (Nazwałbym to raczej surowy rozwiązanie, ponieważ byłoby jeść dużo pasma.
  3. Kod algorytm kompresji od zera od zera i użyć go do kompresji-dekompresji wideo.

teraz wyzwaniem jest to, że staramy się osiągnąć transmisja wideo o bardzo wysokiej jakości i con Aplikacja tainer jest kodowana w C# .NET

Oto co zaproponowałem do tej pory. Logika sieci do strumieniowania danych jest napisana w języku C#, kompresja wideo do zapisania w VC++ i wywołanie tej biblioteki dll VC++ za pomocą pinvoke lub CLI, który jest możliwy.

Szukam kogoś bardziej doświadczonego niż mnie w tej dziedzinie, który może zasugerować mi, czy mam rację, czy też można to poprawić.

Ostatecznym celem jest strumieniowanie wideo wysokiej jakości. Kodek może być dowolny, jak h.2633, h.264 itp.

+0

https://www.twilio.com/docs/api/video –

Odpowiedz

22

Użyłem kilku sposobów na łatwe przesyłanie strumieniowego wideo/konferencji za pomocą .net, bez potrzeby korzystania z DirectShow. (OK, wykop trochę, ale nie głęboka :)

1) Używanie zwykłych komponentów Windows Media Encoder. Jest to udokumentowane próbkami w SDK Windows Media Encoder. Dobre dla streamingu w wysokiej rozdzielczości, ale opóźnienie jest zbyt duże dla czatu w czasie rzeczywistym (w najlepszym razie 0,5-2 sekundy). Modern Express Encoder SDK inna opcja.

2) Microsoft Research ConferenceXP http://cct.cs.washington.edu/ W pełni funkcjonalny interfejs konferencji, w tym strumieniowanie aplikacji. Są to zbyt niskie poziomy filtrów Windows Media i pakowane w kod zarządzany. Działa dobrze. Łatwo konfigurowalny. Wygląda na nieco opuszczoną.

3) Klient Microsoft RTC do wersji 1.3 - rdzeń programu Windows Messenger.

zalety: zarządzane próbki od Microsoft, dobre dokumenty, niezawodna wydajność, swobodnie redystrybucyjny, zgodny z Microsoft (dobry) stos SIP w zestawie. Główni dostawcy konferencji, tacy jak Emblaze VCON, opierali swoje rozwiązania na niej w niedalekiej przeszłości, ale nie wiem na pewno o tych dniach, ale wiem, że Tandberg otrzymał licencję Microsft na VC-1.

przeciw: wersja do 1.3 obsługuje tylko wideo h261-h263. nowoczesna wersja ze wsparciem kodeku VC-1 (h264) nie pozwala na bezpośrednie bezserwerowe połączenia ip-ip. To wymaga serwera Microsoft Live Communications. Nowsza wersja SDK nie obejmuje połączeń wideokonferencyjnych.

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

Daj nam znać, co platforma wybrałeś. Nawiasem mówiąc, użyłem nawet części rtp ConferenceXP z funkcjami RTC 1.3 voice/SIP, aby poprawić jakość wideo, więc masz tutaj szeroki wybór zarządzanych technologii. Kolejną rzeczą jest Live Meeting, na którym nie miałem jeszcze okazji dobrze się przyjrzeć.

+0

Czy ta informacja jest nadal poprawna? lub są lepsze biblioteki/sposoby tworzenia aplikacji do czatów wideo. –

10

Uratuj się i skorzystaj z VLC. Istnieje kilka przyzwoitych owijaczy .NET (http://forum.videolan.org/viewtopic.php?f=32&t=52021&start=30)

Używamy C# i VLC dla sieci IPTV. Pobieramy dane wejściowe z satelitów sieci DISH za pomocą urządzeń przechwytujących wideo Osprey-450 na serwerze Windows XP. Stamtąd mamy składnik serwera .NET, który napisaliśmy w C#, który używa VLC za kulisami (uruchamianie oddzielnych procesów w .NET do kontroli instancji vlc.exe). Procesy VLC transkodować i przesyłać sygnały przez sieć (.h264 lub MPEG-4, z powodzeniem wykonaliśmy obie).

Po stronie klienta mamy aplikację WinForm C#, która używa wbudowanej przeglądarki VLC do wyświetlania sygnałów multiemisji. Ta aplikacja jest przeznaczona głównie do sterowania &. Rzeczywiste użycie sygnałów multiemisji ma miejsce, gdy nasze dekodery podłączone do dekodera naszego telewizora i wyświetlają strumienie.

Pomyśleliśmy, że będziemy musieli napisać nasze własne kodery DirectX, ale nie zadawaj sobie trudu. VLC działa naprawdę dobrze i ma wystarczającą ilość wsparcia C#, aby był bardzo przydatny. Jeśli masz konkretne pytania dotyczące implementacji, napisz do mnie e-mail.

+0

jaka była jakość wideo, którą uzyskałeś? Czy było wyjątkowo dobrze? –

+0

Tak. Dzięki temu systemowi uzyskujemy bardzo dobrą jakość obrazu. To był jeden z priorytetów, kiedy wręczono mi to zadanie. Kodowanie .h264 wygląda naprawdę ładnie, ale wymaga dużej mocy obliczeniowej. Używamy kodowania MPEG-4 dla naszego systemu IPTV i wygląda dobrze. –

+1

Masz rację w swoim przypadku użycia. Jednak z mojego doświadczenia wynika, że ​​VLC ma dość duże opóźnienie, które sprawia, że ​​nie można go używać do czatów wideo. – DerMike

2

Powinieneś sprawdzić SDK Ucentrika. Ten pakiet SDK umożliwia integrację funkcjonalności multimedialnych, takich jak wideo, audio, czat, współdzielenie pulpitu zdalnego i sterowanie oraz rejestrowanie wideo w aplikacjach. Obsługiwane są następujące kodeki wideo: VP8 (Google), Theora i x.264. Ponadto ruch multimedialny jest hermetyzowany w ramach protokołu HTTP, aby umożliwić mu przechodzenie przez zapory sieciowe, które umożliwiają normalny ruch internetowy. Ta technologia jest całkowicie darmowa i możesz pobrać SDK i poprosić o klucz API, aby móc ocenić bez inwestowania w czasie konfigurację infrastruktury. W ciągu kilku następnych miesięcy udostępniamy komponent serwera, dzięki któremu można pobierać i hostować infrastrukturę samodzielnie lub przez klienta. Technologia obsługuje połączenia 1-do-wielu, co oznacza, że ​​możesz tworzyć wideokonferencje, jeśli chcesz. Funkcje są bardzo modularne, dzięki czemu można zintegrować tylko wideo, audio lub pulpit lub połączenie technologii przy użyciu tego samego zestawu SDK ... Powinieneś poprosić o SDK dostępny tutaj: www.ucentrik.com. Dodatkowo jest tu kilka filmów: http://www.youtube.com/user/ucentrik

powodzenia.

0

Ucentrik właśnie wydała aplikację typu open-call, która integruje technologię CTX. Ta aplikacja call-center implementuje wideo, audio, współdzielenie pulpitu/aplikacji (z kontrolą), funkcję czatu tekstowego dostępną z interfejsu API CTX. Aplikacja zawiera również pewną logikę biznesową, szczególnie w zakresie zapewniania możliwości kierowania wywołań do agenta, który jest dostępny lub ma określony zestaw umiejętności. Projekt jest dostępny pod numerem telefonu http://vcca.codeplex.com - należy pamiętać, że będziesz potrzebować dostępu do pakietu SDK Ucentrik CTX, który jest dostępny na żądanie na stronie Ucentrik (www.ucentrik.com). Powodzenia.