2009-10-08 9 views

Odpowiedz

6

Skype jest o wiele bardziej skomplikowany, ponieważ jest to Peer to Peer, co oznacza, że ​​Twój strumień może podróżować przez kilka innych klientów Skype, działających jako kilka serwerów. Skype nie ma do tego ogromnego centralnego systemu. Skype zawsze śledzi wiele miejsc, do których może dostarczyć swój strumień, więc jeśli jedno z tych miejsc zniknie (klient Skype zniknie), to będzie kontynuowało wysyłanie przez inny serwer/klienta skype. Odbywa się to tak skutecznie, że nie zauważasz przerwy.

+0

dzięki za to. Czy Skype działa jednocześnie na serwerze/kliencie? ciekawy. Gdybym miał zrobić program do strumieniowania wideo, taki jak skype, używając serwera centralnego (w ten sposób strumienie mogłyby przejść z clientA -> server -> clientB), czy byłoby to wolne? To jest trochę głębsze niż pierwotne pytanie, więc nie wahaj się zignorować, jeśli nie znasz odpowiedzi. – sqram

+2

Zazwyczaj znacznie lepiej jest mieć centralny serwer zamiast używać metody Skype. Głównym powodem, dla którego Skype stosuje metody Peer to Peer, jest to, że firma nie musi konfigurować serwerów, a zatem ma mniej kosztów. Założę centralny serwer, tak jak Ty sugerujesz. Ułatwia nawiązywanie połączeń. –

5

W zasadzie tak się udało.

1) kodować wideo/audio za pomocą najlepszej kompresji, jaką można uzyskać. Idź stratną kompresję i mnóstwo aliasingu, aby wyrzucić fragmenty wideo i audio, których nie można wykorzystać. Podobnie jak usuwanie szumu tła, 2) zapakuj wideo/audio do pakietów i umieść na nich sygnaturę czasową. Pakiety są zwykle datagramami.

3) Wyślij pakiety bezpośrednio do miejsca docelowego. Użyj najbardziej odpowiedniej trasy. Nie musisz wysyłać wszystkich pakietów w ten sam sposób. Jeśli to możliwe, korzystaj z wielu tras. Sieci P2P często korzystają z wielu tras do tego samego miejsca docelowego, 4) ponownie je kodują w miejscu docelowym. Jeśli pakiet jest za stary, wyrzuć go. Jeśli pakiety zostaną utracone, nie przejmuj się tym, ponieważ jest za późno.

5) dołącz wideo i wypełnij brakujące klatki najlepiej jak potrafisz.

+0

dzięki. brzmi skomplikowanie, ale dam z siebie wszystko. – sqram

+0

Dobre i jasne wyjaśnienie. Trochę spóźniłem się do gry BTW. Ale teraz mam zadanie przesyłania strumieniowego wideo od klientów Android na stronę internetową. Jak mogę to osiągnąć? Czy ta sama technologia jest dostępna dzisiaj? Czy możesz w jakiś sposób mnie prowadzić? Nie wiem nawet, czy to przeszkadza, ale mój zasięg ogranicza się do java i .net. – Krishna