Скриншоты в реальном времени в Java-приложение (localhost)

Я ищу способ добавить наложение на работающий Windows игры, как OBS (потоковое приложение для игры, используемое для Twitch).

Я думал об использовании Robot класс, чтобы делать 25/30 скриншотов каждые секунды и отображать их, но я не уверен, что это правильное решение..

Итак, мой вопрос заключается в следующем: как я могу screenshare запущенное приложение для приложения Java (localhost, тот же компьютер), чтобы добавить накладку перед ним ?

редактировать: Я попытался использовать потоковую передачу VLC, но это делает компьютер действительно отстающим (i7/8Gb)... Я тоже пробовал с FFMpeg, используя screen-capture-recorder и gdigrab, компьютер не отставал, но видео падает, как 5/10 FPS в режиме реального времени.
В FFMpeg я использовал следующую команду:ffplay -f dshow -f gdigrab -i title="<NAME>" -framerate 30.

Я хотел бы иметь 25/30 FPS с игровым компьютером (i7/8Gb)..

2 ответов


Я еще раз SimRat (простое приложение для совместного использования экрана, такое как Teamviewer) с помощью Robot & Corba. Возможно, вы сможете получить базовую идею, глядя на код. Это не лучший способ реализовать совместное использование экрана. Java RMI будет полезен для вас.


попробовать java-screen-recorder, Это простой захват экрана и конвертер. Это не очень потребляет cpu/gpu. Решение на основе java.awt.Robot и повторный захват экрана.