Logika działania programu streamującego obraz z kamerki

Logika działania programu streamującego obraz z kamerki
VE
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • Postów:1
0

Witam, mam zagwostkę odnośnie streamingu obrazu z kamerki internetowej przez internet. Chcę napisać coś podobnego do Skype.

W jaki sposób przesłać obraz video z kamerki przez internet? Czy ta logika jest ok?

  1. Pobieram obraz z kamerki klatka po klatce w postaci bitmap
  2. Wysyłam każdą klatkę z osobna z użyciem socketów do serwera, a serwer do innych klientów (W tym przypadku do innych rozmówców)
  3. Rozmówcy odbierają klatki i tworzy się efekt video z kamerki.

Czy da się przesłać obraz z kamerki przez internet w jakiś lepszy sposób?

AK
  • Rejestracja:ponad 7 lat
  • Ostatnio:8 miesięcy
  • Postów:3561
1

Wszystkie profesjonalne sposoby kompresują dane. Należy założyć, że każdą klatkę samą w sobie, ale na pewno klatkę PO klatce (różnice między klatkami itd). Naiwny algorytm będzie miał fatalną wydajność

Użyj któregoś ze standardów (nie podpowiem ci konkretnego - w necie znajdziesz wszystko)


Bo C to najlepszy język, każdy uczeń ci to powie
Patryk27
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Czy ta logika jest ok?

Zróbmy szybkie wyliczenie dla kamerki Full HD:

Kopiuj
24 [fps] * 1920*1080 * 3 [bajty na piksel] = 142 [megabajty na sekundę]

Ludzie mający dotęp do gigabitowego światłowodu są w stanie z niego maksymalnie wycisnąć 128 megabajtów na sekundę, stąd - jak już możesz przypuszczać - takie rozwiązanie nie ma prawa działać nawet w najbardziej optymalnych warunkach ;-)

Czy da się przesłać obraz z kamerki przez internet w jakiś lepszy sposób?

Obraz wysyłany kamerką musi być kompresowany i musi to następować już po stronie klienta.


edytowany 2x, ostatnio: Patryk27

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.