Jaka powinna być szybkość przesyłu by oglądać z kamerki na żywo ?

0

Witam.
Mam pytanie do Was odnoścnie szybkości łącza. Dla przykładu są takie serwisy jak fotka tv czy serwisy o charakterze erotycznym gdzie panienki sie rozbieraja itd. Chciałem spytać czy telekomunikacja ma jakąs senswona oferte odnosnie łącza by np móc nadawać sobie jakiś programik na żywo dla powidzmy 30 osób. Tylko nie wiem czy do takiego problemu to jest jakaś specjalna nazwa usługi czy mam zadzwonić i wyjaśnić im to że chodzi o jakiś program nadawany na żywo w sieci.

Jeszcze dodatkowo powiem, że jak jest np strona oferująca serwer shoutcast do nadawania(muzy,radia) przez winampa i oni oferuja za jakas kwote np 25 slotów ktore mozna uzyc do podlaczenia sie. To moze takie coś jest wlasnie w telewizji ? wtedy wystarczylo by dośc szybkie lacze np 2 megabity na wyjsciu by nadawac do serwera, a od nich juz by szlo odpowiednio szybko do okreslonej ilosci ludzi.

Jak ugryźć ten temat ?

1

Sensowna jakość zaczyna się od 600kb/s. Razy 35 osób to jest 21mb/s, do tego jakiś wolny narzut i 25mb/s spokojnie wyciągniesz. Takie łącze w Polsce nie jest takie ;).
Ceny streamingu wideo w Polsce masz np. na tej stronie: http://video.nadaje.com/flash-video-streaming.html. Są te darmowe, które są głównie używane do transmisji sportu, ale jakość tego jest na ogół żałosna.
Ciekawą opcją są aplikacje pozwalające na streaming wideo p2p, np. SopCast. Działa to sensownie przy przepustowościach do 1mb/s i ładnie się skaluje.
Możesz też wykupić własny serwer dedykowany za granicą, Niemcy, Francja, Holandia, Wielka Brytania. Ceny znośne, ale musisz sprawdzić kto ci zaoferuje taką przepustowość.

Jeżeli nie potrzebujesz profesjonalnego rozwiązania to ja bym najpierw sprawdził SopCast.

0

Jeżeli byśmy przesyłali nieskompresowane to by było tak:

Załóżmy sobie jakąś rozdzielczość: 320x240 = 76800px
Załóżmy jakąś głębie kolorów: 16b = 2B => 2x76800 = 153600B
Załóżmy jakiś framerate: 50interlaced => 25x153600 = 3840000B
Przyjmijmy jakiś narzut: 25% => 1.25 x 3840000 = 4800000B
Przyjmijmy liczbę klientów: 32 => 32 x 4800000 = 153600000B
Wynik: 153600000B = 150000KB = 146,5MB = 1171,9 Mb

Oczywiście obraz będzie skompresowany, więc trzeba samemu
odpowiednio zmodyfikować kroki 1-2. Jak je wyznaczyć? Można
dla przykładu nagrać przy pomocy jakiegoś kodeka pewną liczbę
ramek testowych, sprawdzić ile to zajmuje i podzielić przez liczbę
tych ramek.

Nawet można się pokusić o przesyłanie czegoś takiego za pomocą
JPEGów, ale to miałoby mniejszą kompresje niż video.


Opolski Portal Programistyczny
http://programowanie.opole.pl

0

Przyjmijmy liczbę klientów: 32 => 32 x 4800000 = 153600000B
Wynik: 153600000B = 150000KB = 146,5MB = 1171,9 Mb

Ale po co komu takie obliczenia? Chcesz streamować nieskompresowane klatki? Takiej przepustowości nie osiągają nawet współczesne dyski (no, może najszybsze ssd zbliżają się do takich wartości), nie mówiąc już o sieci (WAN, a nie LAN).

Można
dla przykładu nagrać przy pomocy jakiegoś kodeka pewną liczbę
ramek testowych, sprawdzić ile to zajmuje i podzielić przez liczbę
tych ramek.

I będziesz liczyć ramki przy nagrywaniu?

Potrzebna przepustowość łącza na jednego klienta jest od razu znana - nic tu nie trzeba mierzyć. Przykład: materiał wideo o bitrate 1000 kb/s - do przekazu potrzeba łącza o takiej przepustowości/1 klienta + narzut. Nie ma różnicy, czy jest to plik odczytywany sekwencyjnie z dysku (to de facto też strumień, tyle że odczytywany z dysku i dekodowany), czy strumień przesyłany przez sieć - zmienia się tylko medium, a nie przesyłane dane.

Więc potrzebna przepustowość zależy tylko i wyłącznie od tego, jakie parametry ustawisz kodując strumień (ściślej - jaki bitrate).

0
protechnologia.pl napisał(a)

Nawet można się pokusić o przesyłanie czegoś takiego za pomocą
JPEGów, ale to miałoby mniejszą kompresje niż video.

muszę cię zadziwić ale miałoby taką samą kompresję "jak video" bo M-JPEG czyli właśnie zlepek jpegów to jeden z popularnie stosowanych kodeków do zapisu video (głównie przez aparaty cyfrowe i właśnie kamerki internetowe z wbudowaną funkcją streamingu, a to dzięki temu że do zakodowania video w tym formacie potrzeba relatywnie małej mocy obliczeniowej)
fakt że ten kodek nie jest zbyt wydajny, ale nie możesz pisać w ten sposób
mógłbyś napisać na przykład że M-JPEG ma mniejszą kompresję niż H.264, ale pisanie że coś ma "mniejszą kompresję niż video" jest... głupie

a bittorrent pracuje nad protokołem P2P-live dzięki czemu teoretycznie każdy będzie mógł nadawać do nieograniczonej liczby ludzi video o sensownej jakości na standardowym łączu internetowym (dzięki wykorzystaniu idei p2p)

0
unikalna_nazwa napisał(a)

mógłbyś napisać na przykład że M-JPEG ma mniejszą kompresję niż H.264, ale pisanie że coś ma "mniejszą kompresję niż video" jest... głupie
)

Zauważam, że na forum to nie można stosować, żadnego skrótu myślowego, bo od razu znajdzie się ktoś, kto rzuca się do gardła.

Każdy, kto choć trochę zna się na pisaniu algorytmów kompresji, a nie tylko na obsłudze aparatów cyfrowych wie, że klasyczny algorytm kompresji wideo opiera się na przesyłaniu różnic midzy poszczgólnymi ramkami i to dlatego otrzymuje się większy poziom kompresji niż w przypadku kodowania każdej klatki osobno. Więc to zddnie może się wydawać głupie tylko dla kogoś, kto go nie rozumie.


Opolski Portal Programistyczny
http://programowanie.opole.pl

0
protechnologia.pl napisał(a)

Bitrate to można sobie ustawić w profesjonalnym kodeku, a jak sam taki piszesz, to gdzie to sobie ustawisz?

Po pierwsze - w którym miejscu autor napisał, że chce stworzyć własny kodek?
Po drugie - jeśli piszesz swój kodek, to powinieneś wiedzieć co to jest bitrate i mieć w nim możliwość jego ustawiania lub chociaż zmieniania innych parametrów które mają wpływ na bitrate - inaczej taki kodek byłby bez sensu.

0
othello napisał(a)

Po drugie - jeśli piszesz swój kodek, to powinieneś wiedzieć co to jest bitrate i mieć w nim możliwość jego ustawiania lub chociaż zmieniania innych parametrów które mają wpływ na bitrate - inaczej taki kodek byłby bez sensu.

Bynajmniej. Jeżeli tworzych prosty kodek ad hoc, a do wyprodukowania kodeka możesz przeznaczyć np. 5 godzin roboczych to po jakiego grzyba Ci możliwość ustawiania jakichkolwiek parametrów. Eksperymentalnie dopierasz to i tamto i implementujesz.

Komercyjne aplikacje to nie zadanie domowe - wszystko sie przelicza na godziny robocze i koszta. Z tym bitratem to pojechałeś - to tak jakby mówić, że nie ma po co pisać komunikatora P2P jak nie można w nim ustawiac rozmiaru pakietu.


Opolski Portal Programistyczny
http://programowanie.opole.pl

0

Być może masz rację - tak podchodząc do sprawy. Tylko kto zaprząta sobie głowę implementacją własnego kodeka, gdy jest tyle darmowych gotowych, a nawet jeśli nie to koszt kodeka jest znikomą częścią budżetu projektu.

0

To już zależy od konkretnego przypadku. Spotkałem się z czymś takim, że klient koniecznie chciał, żeby wszystko było autorskie... Innym razem kodek był zleceniem samym w sobie, ale trzeba było ciąć koszta, z powodu niskiego budżetu.


Opolski Portal Programistyczny
http://programowanie.opole.pl

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