Это программа для стриминга экрана, использует UDP протокол для передачи фрагментов изображения. Главная её особенность - разбивает изображение на фрагменты и отправляет клиенту только те, что изменились.
В репозитории имеется 2 версии - pygame, cv2, это библиотеки, с помощью которых выводился собранный кадр на экран. Pygame версия совместима с android устройствами, но необходимо будет дописать логику для расширения кадра до размеров экрана.
mss==10.0.0
;numpy==2.2.2
;opencv-python==4.11.0.86
;pygame==2.6.1
;
- Работа с изображением 1.1 Запуск потока для захвата. 1.2 Захват и запись в импровизированный буфер. 1.3 Разбиваем на N**2 фрагментов.
- Серверная часть 2.1 Занимаем адрес. 2.2 Запоминаем пользователя, который отправит команду на подключение. 2.3 Из пунтка 1.3 отправляем только те фрагменты, которые не отправлялись ранее.
- Клиентская часть 3.1 Отправляем серверу команду на подключение. 3.2 Принимаем фрагмент с координатами и вставляем его в импровизированный буфер. 3.3 Отображаем кадр с буфера.
- Необходимо указать свой адрес в клиенте и сервере.
- В коде сервера есть подряд закомементированные строки, которые отвечают за отправку зелёных фрагментов, которые не изменились.
- При написании своего метода захвата с использованием класса Capture, необходимо передать в super().init() 2 аргумента - длина буфера счётчика кадра и размер фрагментации (!Важно! при делении вашего размера экрана на размер фрагментации, результат должен быть челочисленным).