![Как лучше всего эмулировать экран/монитор в Linux, Windows или OSX?](https://rvso.com/image/1558021/%D0%9A%D0%B0%D0%BA%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D1%8D%D0%BC%D1%83%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%2F%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%20%D0%B2%20Linux%2C%20Windows%20%D0%B8%D0%BB%D0%B8%20OSX%3F.png)
Я работаю над проектом, в рамках которого создаю виртуальное устройство второго экрана, которое хочу отправить по сети на другое устройство рендеринга (другой компьютер, подключенный к какому-либо экрану). Что-то вроде реализации miracast в Windows.
Мне было интересно, как лучше всего эмулировать монитор или экран, подключенный через HDMI или VGA к вашему локальному компьютеру.
На каких языках мне следует это рассмотреть? Нужно ли мне писать собственные драйверы операционной системы для создаваемого мной виртуального устройства?
решение1
Открытые технологические стандарты для абстрагирования настоящих интерфейсов отображения через произвольные соединения (IE Miracast), похоже, все еще находятся в зачаточном состоянии и изобилуют проблемами (не)совместимости. С другой стороны, написание собственных драйверов и клиентов виртуального дисплея почти наверняка приведет к всевозможным проблемам с различными протоколами отображения, поставщиками оборудования и т. д.
Однако, единственноеважныйЧастью интерфейса дисплея являются видеоданные, и существуют всевозможные стандарты для их захвата и потоковой передачи.
Таким образом, самый простой способ добиться эффекта виртуализированного второго экрана — просто настроить ОС на его рендеринг (без подключения реального устройства отображения), а затем захватить и передать его с помощью обычного готового программного обеспечения для захвата и записи экрана, например OBS или даже Skype.
Если вас устраивает включение недорогого аппаратного компонента в окончательное решение, то самым простым способом заставить вашу локальную машину отображать этот виртуальный второй экран может быть использование физического ключа, например, следующего продукта:
Эмулятор дисплея CompuLab (fit-Headless)
(Таким образом, вы можете подключить его, настроить как любой монитор, а затем соединить два компьютера с помощью потока OBS, звонка Skype, сеанса удаленного рабочего стола или любого другого метода потоковой передачи видео, который вам больше всего подходит.)
Преимущество этого подхода также заключается в том, что настройка требуется только на уровне пользователя, и то только в широко поддерживаемых системах.
решение2
Наиболее близким решением вашей задачи является Spacedesk. https://www.spacedesk.net/ Они проделали большую работу, и это требует большого количества специфических знаний. В ответ на то, что вас здесь ждет: "На планете есть всего лишь несколько человек (включая нас, конечно), которые могут писать такие нестандартные драйверы WDDM, подделывающие виртуальные дисплеи, и поддерживать их на протяжении многих выпусков Windows и в течение длительного периода времени". (Марсель Рюдингер, Spacedesk/datronicsoft Inc.)
решение3
Похоже, приложение TeamViewer может стать вашим другом, оно бесплатное и кроссплатформенное. https://www.teamviewer.com/en/ это то, что вы имели ввиду ?