Format pliku video dobry do live streamingu

0

Witam,
poszukuję format plików video które z łatwością można dzielić na części.
Takie części które można bezpośrednio przesyłać do klienta (odbiorcy) tak żeby można było je "na żywo" oglądać - odtwarzać ("live streaming video").
Gdy plik AVI pokroję np. na paczki 32KiloBajtowe i prześlę do klienta nie będę wstanie tej części otworzyć i odtworzyć gdyż taka jest jego budowa.
Znalazłem format pliku MJPEG, gdzie każdy frame (każda ramka) jest oddzielnie kompresowana i zapisywana że tak powiem jedna po drugiej co ułatwia dzielenie pliku bezpośrednio od razu wysyłając te paczki (części do klienta), a o to tutaj chodzi żeby był to ten live streaming - na żywo. Jednak jak czytałem pojawia się tu jedna wada jeden problem, każda firma oprogramowania kompresuje te części (w teoretycznie tym samym formacie) - na swój własny sposób oraz mniej więcej
w założeniach mogę maksymalnie wysyłać filmy w rozdzielczość stosowanej w starych kamerkach IP np. 320x240px a patrząc że tu mam przesyłać całe filmy to jest to raczej nie fajne ograniczenie...
Maksymalna ilość danych jakie jestem wstanie na jedną sekundę przesłać to 30KB-60KB ze względu na ograniczenie tutejszych łącz internetowych.
Czy ktoś poradziłby jakiś inny format video, który się tutaj sprawdzi?
Pozdrawiam

0

Jak będą wyglądać odtwarzacze? To jest istotniejsze, bo jeżeli klienci będą łączyć się za pomocą weba i odtwarzać w playerach opartych o flasha to można pokombinować z FLV.

0

Witam,
ma to być live streaming video po sieci p2p także klient będzie serwerem, a w innym przypadku serwer klientem, ma być to aplikacja napisana w Javie

0

@Czakol, ale nie o to pytałem. Format pliku będzie miał drugorzędne znaczenie jeżeli klienci będą mieli różne playery. Po prostu nie będziesz mógł zapanować nad tym jak są odtwarzane filmy i nie będziesz wstanie limitować formatu danych.

0
Koziołek napisał(a)

@Czakol, ale nie o to pytałem. Format pliku będzie miał drugorzędne znaczenie jeżeli klienci będą mieli różne playery. Po prostu nie będziesz mógł zapanować nad tym jak są odtwarzane filmy i nie będziesz wstanie limitować formatu danych.

Nie będą mieć różnych playerów bo jak napisałem sam piszę całą aplikację że tak powiem ja decyduje jak film będzie odtwarzany i jaki jeden format pliku będzie obsługiwany. Właśnie poszukuje sposobu odtwarzania (np. jakaś wtyczka/biblioteka) i format pliku ten który ta dana wtyczka obsłuży i ten który w łatwy sposób będzie można dzielić na części tak żeby było poprawnie odtwarzane.
//Dla naświetlenia sprawy wymyślony przykład:
serwer i klient napisany będzie w Javie będzie odtwarzał filmy w formacie MJPEG wtyczką / bibliotekę Java Media Framework JMF//

0

Pomyśl o użyciu streamingu z JavaFX i wtedy masz (prawie)dowolny format danych. Nie jest to możne najbardziej przyjazne API, ale spełnia swoją rolę.
Jeżeli nie chcesz używać JavaFX to JMPEG zostaje. Tylko wtedy musisz dokładnie zadbać o ujednolicenie wszystkich kodeków itp. po stronie klienta.

0
Koziołek napisał(a)

Pomyśl o użyciu streamingu z JavaFX i wtedy masz (prawie)dowolny format danych. Nie jest to możne najbardziej przyjazne API, ale spełnia swoją rolę.
Jeżeli nie chcesz używać JavaFX to JMPEG zostaje. Tylko wtedy musisz dokładnie zadbać o ujednolicenie wszystkich kodeków itp. po stronie klienta.

Właśnie rozważam sprawę z kodekami, tak szukam przeglądam te formaty, prawdopodobnie przejdzie sprawa z kodekami (jednak tu ma w przyszłym tygodniu zadecydować profesor) jednak może jest format który można łatwo samemu rozkodować. Wczytywać paczkę klatek co jakiś znak, odtworzyć (wyrysować) na panelu, następnie pobrać kolejną część i tak do końca pliku video?
W założeniach ma to być odtwarzane na komputerach PC między użytkownikami (gdzie w założeniach jest że: "jeśli chcesz obejrzeć film zainstaluj kodeki") aczkolwiek w tedy powstaje problem o którym wspomniałeś wyżej nie te kodeki, i już po zabawie. Znalazłem na tą chwilę jedynie porta ffmpeg z C do javy nie wiem czy by się tu sprawdził, ale wygląda że ma w sobie wbudowaną obsługę "kodeków" i w tedy skupiłbym się na jednym wybranym formacie i sprawa byłaby załatwiona u każdego by to poprawnie działało. Mogę "zmusić" użytkownika do jednego wybranego formatu video gdyż obsługa wszystkich prawdopodobnie jest nie możliwa.
Biorę pod uwagę także kompresję filmów gdyż w założeniach by otworzyć film video zwykły 700MB (avi) 85minutowy potrzebuję przesyłać około 150KB/s, a mam możliwość maksymalnie przesyłać 60KB/s, prawdopodobnie ten sam film w formacie MJPEG będzie zajmować ponad 700MB i sprawa się jeszcze bardziej komplikuje.

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