2015-01-23 12 views
7

Sto cercando un modo per aggiungere una sovrapposizione a un gioco in esecuzione Windows, come OBS (un'applicazione di gioco in streaming, utilizzata per Twitch).Condivisione schermo in tempo reale all'app Java (localhost)

ho pensato di usare la classe Robot di prendere 25/30 screenshot ogni secondi e visualizzarli, ma non sono sicuro che sia la soluzione giusta ..

Quindi la mia domanda è la seguente: Come posso screenshare un'applicazione in esecuzione su un'applicazione Java (localhost, stesso computer), per aggiungere una sovrapposizione di fronte ad essa?

EDIT: Ho provato ad utilizzare VLC Streaming, ma che rende il computer davvero lag (i7/8Gb) ... ho provato con FFMpeg troppo, utilizzando screen-capture-recorder e gdigrab, il computer non era lag, ma il video scende come 5/10 FPS in tempo reale.
In FFMpeg, ho usato il seguente comando: ffplay -f dshow -f gdigrab -i title="<NAME>" -framerate 30.

mi piacerebbe avere un 25/30 FPS con un computer da gioco (i7/8Gb) ..

+0

Quando si dice 'stream', quale oggetto Java di livello basso si sta riferendo come risultato? Un InputStream costantemente alimentato in cui è possibile leggere i dati del frame di un altro thread/programma? – higuaro

+0

Non mi interessa davvero il tipo di oggetto Java. Deve solo essere visualizzabile in un 'JPanel' :). L'app è il client e il server può essere un software di terze parti (come VLC) o integrato direttamente nell'app. – Val

risposta

2

Una volta ho sviluppato SimRat (Una semplice applicazione di condivisione dello schermo come Teamviewer) utilizzando Robot & Corba. Potresti essere in grado di ottenere un'idea di base guardando il codice. Questo non è il modo migliore per implementare la condivisione dello schermo. Java RMI sarebbe utile per te.

+0

Ho provato alcuni metodi, e gli screenshot che usano la classe 'Robot' sembra il più veloce nel mio caso .. Quindi accetterò questa risposta! Grazie :) – Val

+0

Sei il benvenuto. Sono contento che sia stato utile :) –

+0

sì ... anche io uso openairplay, è uno degli schermi di condivisione tecnica ... ma mi chiedo come lo streaming audio diventerà disponibile .... – gumuruh

3

Prova java-screen-recorder, si tratta di un semplice catturatore schermo e convertitore. Non consuma molto la CPU e la gpu. Soluzione basata su java.awt.Robot e cattura ripetuta dello schermo.

+0

Non sono sicuro che questo strumento consenta all'utente di eseguire lo streaming in tempo reale (non voglio registrare lo schermo su un file e guardarlo in seguito, ma lo streaming) .. – Val

+0

Ci sono un sacco di open source oltre Internet! puoi andare oltre e collegare lo screen-recoder con f.e. [Xuggler Streaming] (http://www.xuggle.com/xuggler) – ancalled

+1

Se pensi che dovrebbe funzionare, puoi fornire un esempio di codice sorgente che dovrebbe essere eseguito a 25/30FPS per lo streaming di un'app? – Val