Potrzebujemy klas zarowno po stronie wysylajacego jak i po stronie odbierajacego sluzacych do strumieniowego przesylania video (sam obraz)

I tak po stronie przesylajacego potrzebujemy klasy powiedzmy o nazwie „Wysylajacy” z konstruktorem w ktorym podajemy rozmiary video: szerokosci i wysokosci docelowego filmu, ilosci klatek na sekunde, outputstream strumieniowania oraz w konstruktorze winna być koniecznosc podania interfejsu posiadajacego metode BufferedImage getCapture(), która ta klasa może wywolywac kiedy chce chcac pobierac kolejne klatki filmu. Juz po naszej stonie zobowiazujemy się dostarczac ten obrazek zawsze takiej samej rozdzielczosci jak wczesniej zadeklarowana oraz wymaganego przez tworce biblioteki typu. Opisywana klasa, która trzeba napisac powinna chyba implementowac Runnable zeby moc ja wystartowac i zeby opisane wyzej odwolania do metody interfejsu getCapture() wywolywac cyklicznie

Klasa Odbiorcy powinna być inicjowana identycznie jak wysylajacego z tym, ze zamiast OutputStream podawane być powinno w konstruktorze InputStream do odbioru strumienia i odpowiedni interfejs podawany w konstruktorze winien nie – dostarczac obrazki ,a le je pobierac powiedzmy metoda receiveCapture(BufferedImage capture), która Pan wywolywalby zawsze po otrzymaniu kolejnej klatki.
Oczywiscie na opianych powyzej InputStream i OutputStreeam nie wykonujemy ani przed rozpoczeciem strumieniowania ani po nim zadnych operacji.

Celowo nie podaje kto będzie w tej komunikacji serwerem a kto klientem, ale jedynie podajemy strumienie InputStream i OutpuStream, bowiem docelowo dostarczyc chcemy dwie rozne architektury, w których w jednej wysylajacy laczy się z serwerem i natychmiast wysyla do niego dane, a w drugiej to odbierajacy laczy się ze serwerem i serwer natychmiast po podlaczeniu wysyla strumieniem obraz (jak latwo się domyslec przeslany od innego klienta).
Z tego co do tej pory przeczytalem to rozwiazaniem tego jest kompresja h.264, ale do tej pory ani za pomoca JMF ani Xuggle nie udalo mi się takiego rozwiaznia zaimplementowac. Wszystkie przyklady są na plikach pobieranych z dysku i w ogole nie zahaczaja o rtp.

Za dzialajacy kod placimy 0.2 BTC lub 4 tys PLN na konto. Pozwalamy sobie napisac zlecenie tutaj na watku java, bowiem rozwiaznie zachecamy umiescic tutaj w watku. Zaplacimy normalnie a może komus się przyda

Bartlomiej Wojciechowski [email protected]