2015-01-23 19 views
7

Szukam sposobu na dodanie nakładki do działającej gry dla systemu Windows, na przykład OBS (aplikacja do strumieniowania gier, używana dla usługi Twitch).Udostępnianie ekranu w czasie rzeczywistym do aplikacji Java (localhost)

I choć o użyciu klasy Robot wziąć 25/30 screeny co sekund i wyświetlać je, ale nie jestem pewien, że to dobre rozwiązanie ..

Więc moje pytanie jest następujące: Jak mogę screenhare uruchomiona aplikacja do aplikacji Java (localhost, ten sam komputer), aby dodać przed nią nakładkę?

EDIT: Próbowałem za pomocą VLC na żywo, ale to sprawia, że ​​komputer naprawdę laggy (i7/8GB) ... Próbowałem z FFmpeg też, używając screen-capture-recorder i gdigrab, komputer nie był laggy, ale jak spadnie wideo 5/10 FPS w czasie rzeczywistym.
W FFMpeg użyłem następującego polecenia: ffplay -f dshow -f gdigrab -i title="<NAME>" -framerate 30.

chciałbym mieć 25/30 FPS z komputera do gier (i7/8GB) ..

+0

Kiedy mówisz 'stream', co dokładnie obiekt Java o niskim poziomie odsyłasz jako wynik? Ciągle zasilane 'InputStream', w którym można odczytać dane ramki z innego wątku/programu? – higuaro

+0

Nie obchodzi mnie typ obiektu Java. To musi być możliwe do wyświetlenia w 'JPanel' :). Aplikacja jest klientem, a serwer może być oprogramowaniem innej firmy (takim jak VLC) lub bezpośrednio zintegrowanym z aplikacją. – Val

Odpowiedz

2

Kiedyś opracowałem SimRat (prosty program do udostępniania ekranu, taki jak Teamviewer) za pomocą Robot & Corba. Być może uda ci się uzyskać podstawowy pomysł na kod. To nie jest najlepszy sposób na udostępnianie ekranu. Java RMI byłby dla Ciebie pomocny.

+0

Próbowałem niektórych metod, a zrzuty ekranu z klasy "Robot" wyglądają jak najszybsze w moim przypadku. Więc przyjmuję tę odpowiedź! Dzięki :) – Val

+0

Nie ma za co. Cieszę się, że to było pomocne :) –

+0

tak ... ja też za pomocą openairplay, jest jednym z ekranu dzielenia się muzyką ... ale zastanawiam się, w jaki sposób dostępne jest strumieniowanie dźwięku .... – gumuruh

3

Try java-screen-recorder, jest to prosty Capturer ekran i konwerter. Nie jest to zbyt duże zużycie procesora/gpu. Rozwiązanie oparte na java.awt.Robot i wielokrotnym przechwytywaniu ekranu.

+0

Nie jestem pewien, czy to narzędzie pozwala użytkownikowi na przesyłanie strumieniowe w czasie rzeczywistym (nie chcę nagrywać ekranu do pliku i oglądać go później, ale przesyłać strumieniowo) .. – Val

+0

Istnieje wiele otwartych źródeł Internet! możesz pójść dalej i podłączyć screen-recoder z f.e. [Xuggler Streaming] (http://www.xuggle.com/xuggler) – ancalled

+1

Jeśli uważasz, że powinno zadziałać, czy możesz podać przykład kodu źródłowego, który powinien działać z szybkością 25/30FPS, aby przesyłać strumieniowo aplikację? – Val