Беспроводной дисплей в Linux (Miracast)


Хочется транслировать рабочий стол на экран большого Smart TV, или нужно подключиться к беспроводному монитору? Всё это с легкостью делается нажатием пару кнопок в системах Windows, или, например Android. А как дело обстоит в ОС Linux?

Для подключения, например ноутбука к телевизору по беспроводной сети используют современные технологии. Одна из технологий, которая даёт возможность провести такую трансляцию, называется Miracast («Миракаст»).

Miracast использует технологию Wi-Fi Direct для установления прямого беспроводного соединения между устройствами-источниками и устройствами-приёмниками. Устройство-источник кодирует аудио- и видеоданные и отправляет их по каналу Wi-Fi Direct на устройство-приёмник, которое затем декодирует и отображает контент.

Долгое время в системах семейства Linux, вопрос подключения Smart TV в качестве беспроводного дисплея топтался на месте. Конечно, делались подвижки в этом направлении, но всё это былот не стабильно и сложно в настройках для обычного пользователя. Но сегодня разработан и продолжает развиваться проект Gnome Network Displays, позволяющий применять технологию Miracast в операционных системах linux. GNOME Network Displays — приложение, которое реализует функциональность Wi-Fi Display (Miracast) для передачи контента рабочего стола на совместимые устройства.

Интересно отметить, что хотя данный проект разрабатывается для среды Gnome, он прекрасно работает и в других средах (KDE Plasma, Cinnamon, Mate и др.), а так же поддерживает и различные графические протоколы (X11, Wayland), с небольшой лишь разницей в функционале программы.

Итак, как реализовать это в linux?

Конечно, во многих дистрибутивах использующих Gnome можно установить готовый пакет прямо из репозитория набрав, например, в терминале:

 

sudo apt update

sudo apt install gnome-network-displays

 

Но в других дистрибутивах, в репозиториях нет этого пакета. Как быть?

Предлагаю установить gnome-network-displays из изходников, которые опубликованы на gitlab.gnome.org.

 

Для этого сначала скачаем исходный код с gitlab.gnome.org, набрав в терминале:

 

git clone https://gitlab.gnome.org/GNOME/gnome-network-displays.git

Затем необходимо перейти в директорию с исходниками:

 

cd gnome-network-displays

 

Чтобы собрать утилиту из исходников нам понадобится установить некоторые зависимости:

 

В системах на основе Ubuntu:

 

sudo apt install libgstrtspserver-1.0-dev libgstreamer-plugins-base1.0-dev libavahi-client-dev libavahi-gobject-dev libgtk-3-dev libnm-dev libpulse-dev libprotobuf-c-dev libjson-glib-dev libsoup-3.0-dev libportal-gtk4-dev libgtk-4-dev libadwaita-1-dev

 

В Fedora:

 

sudo dnf build-dep gnome-network-displays

 

Далее, необходимо установить meson.

Meson — кроссплатформенная консольная утилита, автоматизирующая процесс сборки программного обеспечения из исходного кода. 

В системах на основе Ubuntu:

 

sudo apt install meson

 

В Fedora:

 

sudo dnf install meson

 

Далее производим сборку:

 

meson build

 

Переходим в папку сборки:

 

cd build

 

Устанавливаем утилиту:

 

meson install

 

Вот и всё, утилита gnome-network-manager установлена и готова к работе.

Запустить её можно либо через меню приложений, либо в терминале командой:

 

gnome-network-manager

 

После запуска программы мы увидим следующее окно, в зависимости от графического сервера и используемой среды:

 

Plasma X11:

 

Plasma Wayland:

 

 

Gnome:

 

 

Если при трансляции на беспроводной монитор или Smart TV не воспроизводится звук, то необходимо в настройках используемой среды  переключить воспроизведение звука через GNOME Network Displays.

 

 

Вот и всё, ноутбук подключен к беспроводному дисплею.

 

 



Вернуться назад