Witam. Mam zamiar napisać komunikator w Javie z rozbudowanym GUI, chciałbym dodać możliwość video czatu, ale nie mam pojęcia od czego zacząć... Macie jakieś pomysły?
Java Media Framework + TCP/IP wykazy API, tutoriale
A zacząć powinieneś od złapania obrazu kamerką i dźwięku mikrofonem :)
Potem skompresowania jednego i drugiego, a następnie wysłania. Z drugiej strony do odebrania, zdekompresowania i wyświetlenia oraz wyplucia na audio. I tak w kółko kilkadziesiąt razy na sekundę.
Przy czym jak obaj klienci muszą bezustannie nagrywać dźwięk w jednym strumieniu, a ty wycinać z niego ostatnią cząstkę odcinka czasu między ramkami video.
Jeżeli nie wyrabiałaby się wydajność, to pamiętaj, żeby zawsze jako pierwszy rwać obraz, a dźwięk tylko w ostateczności.
Zdegradowanie komunikacji audio-video do audio jest akceptowalne, a pozostawienie niemego obrazu lub takiego z rwącym się dźwiękiem jest nieakceptowalne.
Zanim jednak wyślesz pierwszą ramkę audio oraz ramkę video pamiętaj aby odczekać i puszczać je na drugą stronę dopiero z opóźnieniem od jednej do kilkunastu ramek. Nie może być za mała bo najmniejsze spowolnienie transmisji będzie rwać synchronizację, a i nie może być za duża bo wtedy zobaczysz śmieszny efekt rozmowy "Ziemia-Księżyc" jakie często można zobaczyć na wizji tvn-u kiedy używają łączy satelitarnych. Oczywiście dla użytkowników komunikatora, to nie będzie już śmieszne, tylko wkurzające. :)