Silverlight - webcam, streaming

0

Cześć, zamarzyła mi się aplikacja Silverlight, za pomocą której będę mógł przesyłać obraz z kamerki do innych użytkowników.

Pobieranie obrazu i inne rzeczy już wykonałem.

Mam jednak problem jak rozwiązać streamowanie obrazu.

Mogę stworzyć małą sieć P2P, lecz boję się o firewalle i prędkość łączy użytkowników (wysyłających obraz oraz pobierających).

Myślałem i przeglądałem oferty hostingowe streamingów live, lecz koszty by mnie powaliły.

Myślałem też o postawieniu własnego serwera win server 2008 z usługą streamingową, lecz nie wiem jakie łącze sprostało by takiemu przesyłowi (ok 50 usr/ 10-15 klatek na sekundę)

Jak to się odbywa np. we flashowych aplikacjach ?
Proszę o pomoc i podsunięcie rozwiązań(jakie technologie i protokoły ewentualnie wykorzystać ?)

0

Wg mnie jedynym rozsądnym rozwiązaniem jest serwer + p2p.

Na serwerze trzymać konta użytkowników, kto jest aktualnie dostępny, statystyki, kto z kim "rozmawiał", kiedy, przez ile czasu był stream itd. Jeśli użytkownicy zdecydują się na skorzystanie ze streamtu ich połączenie przechodzi na p2p. Osobiście nie martwiłbym się o firewalle, ale bardziej o komputery w wewnętrznej sieci, z tymi zawsze jest kłopot przy komunikacji po ip.

0

We flashu działa to tak, że masz serwer streamingowy FMS albo Wowza i klient flasha łączy się do nich, publikuje strumień na serwerze, a inni klienci podłączają się do tego strumienia i wszystko propaguje serwer. Potrzebny transfer to wielkość obrazu strumieniowanego oraz liczby klatek, a także zmian jakie zachodzą na poszczególnych klatkach strumienia.
P2P da Ci możliwość wysyłania strumienia 1:1, a z tego co rozumiem chcesz coś przesyłać do grupy ludzi tak? Jeśli chcesz wideokonferencje dla 50 userów to chyba jedynym rozwiązaniem jest serwer multimedialny do strumieniowania i wysyłanie z kamerki do niego, a inni userzy pobierają strumień z serwera.

0

Dzięki za zainteresowanie.

Również myślałem, żeby stworzyć sieć p2p z serwerem na którym przechowywałbym stan połączeń.

Chciałem stworzyć sieć (na wzór drzewa)
root - wysyłający
najwyższe korzenie - odbierający i wysyłający niżej
najniższe - odbierający

Struktura byłaby tworzona podczas podłączania klientów (najszybsze łącza do góry, najgorsze na dół)

Dobre rozwiązanie?

Jak można obejść łączenie przez ip do wewnętrznej sieci ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1