Что такое приемник Wi-Fi
Обновлено: 21.11.2024
MiracleCast — реализация Wi-Fi-дисплея/Miracast
Проект MiracleCast предоставляет программное обеспечение для подключения внешних мониторов к вашей системе через Wi-Fi. Он совместим со спецификацией Wifi-Display, также известной как Miracast. MiracleCast реализует как Display-Source, так и Display-Sink сторону.
С другой стороны, Display-Sink позволяет вам самостоятельно создавать внешние дисплеи с поддержкой Wi-Fi. Вы можете использовать его на встроенных устройствах или даже на полноценных настольных компьютерах, чтобы другие системы могли использовать ваше устройство в качестве внешнего дисплея.
Для проектов MiracleCast необходимо установить следующее программное обеспечение:
systemd: демон управления системой. Он используется для управления устройствами (udev), управления dbus (sd-bus) и управления услугами. Systemd >= 221 будет работать из коробки. Для более ранних версий systemd должен быть скомпилирован с параметром --enable-kdbus, даже если kdbus не используется, а используются только независимые экспериментальные библиотеки sd. обязательно: >=systemd-213
glib: служебная библиотека. Используется текущей реализацией DHCP. Будет удален, как только sd-dns получит возможности DHCP-сервера. обязательно: ~=glib2-2.38 (может работать со старыми версиями, не проверено..)
gstreamer: MiracleCast полагается на gstreamer для отображения выходных данных. Вы можете проверить, установлено ли все необходимое, запустив res/test-viewer.sh
wpa_supplicant: MiracleCast порождает wpa_supplicant с пользовательской конфигурацией.
Устройство P2P Wi-Fi Несмотря на широкое распространение в наши дни, некоторые устройства несовместимы с Wi-Fi Direct (ранее известным как Wi-Fi P2P). Проверьте свои с помощью res/test-hardware-capabilities.sh
check: Набор тестов для программ на C. Используется для дополнительных тестов кодовой базы MiracleCast. необязательно: ~=check-0.9.11 (может работать с более ранними версиями, не проверено..)
скопируйте политику dbus res/org.freedesktop.miracle.conf в /etc/dbus-1/system.d/
Сборка и установка
Чтобы скомпилировать MiracleCast, вы можете выбрать один из следующих вариантов:
Подробнее о создании вики
Автоматический выбор интерфейса с помощью udev
Если вы хотите выбрать интерфейс для запуска Miracast, добавьте правило udev со сценарием res/write-udev-rule.sh и настройте Miracast с помощью
Вы также можете выбрать интерфейс с параметром --interface для чудо-wifid.
Версии Linux и общие инструкции по компиляции
Проверьте версию systemd с помощью:
Если у вас 221 или выше, в вашем systemd включен kdbus.
Если у вас меньше 221, для установки systemd с dbus был создан альтернативный репозиторий
Видите, были изменения интерфейса в systemd 219, если у вас ниже этой версии, используйте ветку systemd-219 для компиляции Miracast
См. конкретные инструкции по этому репозиторию
Использовать существующий пакет AUR. Не забудьте включить зависимость kdus от systemd-git, если у вас меньше 221 systemd.
Вы можете выполнить установку с помощью yaourt
Если вы чувствуете себя достаточно уверенно (поскольку systemd является точкой входа для ОС), извлеките инструкции из Arch Linux AUR PKGBUILD:
Как использовать его в качестве приемника
выключить wpa_supplicant и NetworkManager
запустить демон Wi-Fi
запустить управление приемником (ваша сетевая карта будет обнаружена. здесь 3)
запустить WiFi Display по ссылке:
Сопряжение вашей машины с другим устройством miracast (зеркалирование)
Увидеть свое экранное устройство на этом компьютере
Шаги по использованию его в качестве однорангового
Повторите шаги 1 и 2 из раздела "Использовать как приемник"
запустить управление Wi-Fi
Включить видимость для других устройств
Найдите их с помощью сканирования
Кроме списка или показа информации с коллегой, здесь пока нет ничего полезного. Вопросы и ответы см. в разделе Использование в качестве партнера
Обратный канал пользовательского ввода (UIBC) — это необязательная функция WFD, которая при реализации облегчает передачу пользовательских входных данных в пользовательский интерфейс, присутствующий в приемнике WFD, в источник WFD.
Чтобы использовать его, просто добавьте --uibc при запуске чудо-sinkctl. Реализованы одиночные события мыши и ключевые события.
Это программное обеспечение распространяется по лицензии GNU-LGPL. Дополнительную информацию см. в разделе ./COPYING.
Если у вас есть какие-либо вопросы, не стесняйтесь обращаться к одному из сопровождающих.
О нас
Подключайте внешние мониторы к вашей системе с помощью спецификации Wi-Fi-Display, также известной как Miracast
Устройство, на котором запущено это приложение, будет приемником Miracast и может быть подключено другим устройством Android через "Cast Screen".
(Устройство Miracast Sink — это устройство, которое становится частью дисплея в Miracast.)
Использование:
1. Включите, если Wi-Fi отключен.
2. Запустите это приложение на устройстве, которое хотите отобразить.
3. проверьте имя устройства для этого приложения.
4. На другом устройстве Android запустите настройки подключения Miracast.
5. Подождите, пока не отобразится имя устройства, подтвержденное на шаге 3.
6. Начните соединение, когда коснетесь отображаемого имени устройства.
Когда соединение будет установлено, оно будет в состоянии зеркального отображения экрана.
Как отобразить настройки соединения Miracast:
Это другое в зависимости от устройства ниже приведены несколько примеров.
Настройки - (Беспроводные сети и сети) - Вывод мультимедиа
Настройки - (Беспроводные сети и сети) - (Дополнительно) - PlayTo
Настройки - (Подключиться и поделиться) - Дублирование экрана
Настройки - Display - Cast Screen (Wireless Display / Share Cast / ScreenMirroring и т. д.)
Известные проблемы:
1. HDCP не поддерживается.
По этой причине с некоторых устройств невозможно подключиться.
Или экран во время воспроизведения, такой как видеоконтент, может стать черным экраном.
2. UIBC поддерживает только одно касание.
Поскольку разработчик — японский язык, простите меня за то, что он не знает английского.
Он поддерживает несколько архитектур ЦП (ARMv5/ARMv7/x86)
Приемник WiFi-Display(miracast) 1.6 Обновить
ver 1.6
В пункт конфигурации добавлена регулировка яркости экрана и громкости звука.
небольшие исправления ошибок.
Беспроводные технологии быстро развиваются. Wi-Fi Alliance несколько лет назад представила Wi-Fi Direct, новую функцию, позволяющую подключать устройства с помощью одноранговой сети. С тех пор эта технология была разработана, и теперь появился Wi-Fi Display (WFD). Эта технология используется для реализации системы беспроводного скринкастинга Android. Эта система будет транслировать / отражать экран Android на другой экран, используя беспроводное соединение. Для установления сеанса WFD существует соответственно два процесса: установление соединения Wi-Fi Direct и процесс согласования.
Откройте для себя мировые исследования
- 20 миллионов участников
- 135 миллионов публикаций
- Более 700 тыс. исследовательских проектов
Wi-Fi Direct – это способ соединения людей, предлагающий более широкое подключение к авторизованным устройствам. В этом документе представлен прототип, который соединяет более двух дисплеев по беспроводной сети для создания хоста VGA путем интеграции интерфейса прикладной программы Miracast (API) с технологией прямого Wi-Fi. Это достижение поддерживает высококачественную потоковую передачу мультимедиа, аудио- и видеоконференции, текстовые сообщения, игры и многие другие приложения. Поведение предлагаемого прототипа измеряется путем оценки минимального количества подключенной группы устройств, а также ожидаемой пропускной способности в реальном сценарии.Экспериментальные результаты показывают замечательную общую производительность, измеряемую пропускной способностью, значимостью и применимостью предложенного прототипа.
Wi-Fi Direct – это новая технология, разработанная Wi-Fi Alliance и предназначенная для улучшения прямой связи между устройствами в сети Wi-Fi. Таким образом, учитывая широкую базу устройств с возможностями Wi-Fi и тот факт, что ее можно полностью реализовать программно поверх традиционных радиостанций Wi-Fi, ожидается, что эта технология окажет значительное влияние. В этой статье мы даем подробный обзор новых функций, определенных в Wi-Fi Direct, и представляем экспериментальную оценку, которая отображает ожидаемую производительность в реальных сценариях. В частности, наши результаты количественно определяют ожидаемые на практике задержки, когда устройства Wi-Fi Direct обнаруживают друг друга и устанавливают соединение, а также производительность новых протоколов энергосбережения. Насколько известно авторам, это первая современная статья, в которой представлен широкий обзор и экспериментальная оценка Wi-Fi Direct.
В этом меморандуме описывается RTP, транспортный протокол реального времени. RTP обеспечивает сквозные сетевые транспортные функции, подходящие для приложений, передающих данные в режиме реального времени, такие как аудио, видео или данные моделирования, по многоадресным или одноадресным сетевым службам. RTP не занимается резервированием ресурсов и не гарантирует качество обслуживания для услуг в реальном времени. Транспортировка данных дополняется протоколом управления (RTCP), позволяющим контролировать доставку данных способом, масштабируемым для больших многоадресных сетей, и обеспечивать минимальные функции управления и идентификации. RTP и RTCP спроектированы так, чтобы быть независимыми от нижележащих транспортных и сетевых уровней. Протокол поддерживает использование трансляторов и микшеров уровня RTP.
Динамическая и адаптивная привязка между вычислительными устройствами и дисплеями становится все более популярной, а технологии скринкастов обеспечивают такую привязку по беспроводным сетям. В этой статье мы разрабатываем и проводим первое подробное исследование производительности современных технологий скринкаста. В нашем подробном анализе рассматриваются несколько коммерческих и одна технология скринкастов с открытым исходным кодом, что приводит к нескольким выводам: (i) не существует единственной выигрышной технологии скринкастов, что указывает на возможности для дальнейшего совершенствования технологий скринкастов, (ii) аппаратные кодировщики видео значительно снижают нагрузку на ЦП. использование за счет немного более высокого использования графического процессора и сквозной задержки, и должно быть принято в будущих технологиях скринкастов, (iii) необходимы комплексные инструменты устойчивости к ошибкам, поскольку беспроводная связь уязвима для потери пакетов, (iv) новые видеокодеки разработанные для содержимого экрана, приводят к лучшему качеству восприятия (QoE) скринкаста, а (v) механизмы адаптации скорости имеют решающее значение для предотвращения ухудшения качества качества из-за сетевой динамики. Кроме того, наша методология измерения и платформа скринкастов с открытым исходным кодом позволяют исследователям и разработчикам количественно оценивать другие аспекты дизайна, что приведет к оптимизации технологий скринкастов.
Существуют ветки разработки gecko/gaia для поддержки Wi-Fi Display (в некоторой степени) в B2G:
Откройте вышеуказанные ветки и перейдите в «Настройки» --> «Wifi Direct», щелкните приемник, который вы хотите использовать, после чего вы будете отображать Wi-Fi!
Веб-IDL
Введение
Wifi Display (также известный как Miracast) — это стандарт трансляции экрана, определенный WiFi Alliance. С устройством с поддержкой Miracast, таким как смарт-телевизор или ключ Miracast, можно проецировать свой экран (обычно на телефоне) на телевизор или дисплей большего размера. Мы называем устройство для трансляции контента «исходным» устройством; тот, который отображает содержимое, называется «приемником».
Контент для удаленного отображения не обязательно должен быть идентичен локальному. Когда на двух экранах отображается одно и то же содержимое, это называется «зеркальным режимом». Зеркальный режим является наиболее распространенным вариантом использования, когда речь идет о дисплее Wi-Fi. На самом деле Wifi Display определяет не «что отображать», а «как отображать». Люди обычно предпочитают использовать Wifi Display для отображения:
- «Точный» зеркальный экран, что означает тот же контент, тот же размер и то же разрешение.
- «Модифицированный» зеркальный экран, представляющий собой в основном тот же контент, но с наложением или без какой-либо секретной информации. (Контент также может быть перерисован в другом измерении.)
- Расширение экрана. (Представьте расширенный рабочий стол в Windows.)
- Контент приложения. (Например, для гоночной игры главный экран на большом удаленном дисплее и мини-карта на локальном маленьком экране)
Wifi Display состоит из нескольких существующих технологий, включая Wifi Direct (или TDLS) в качестве канала связи, H.264/AAC в качестве требования к кодеку, RTSP в качестве протокола потоковой передачи и т. д. На следующем рисунке показан полный стек. :
Здесь мы информируем каждый уровень сверху вниз:
- Самый верхний уровень — это, безусловно, представление аудио/видео, которое требуется для кодирования в форматах LPCM/AAC и H.264 соответственно.
- MPEG2-TS — это контейнерный формат, используемый для кадрирования закодированного аудио/видео.
- Данные MPEG2-TS будут передаваться пакетом RTP и отправляться клиенту вместе с RTCP. RTP в сочетании с RTCP обычно называется RTSP.
- TCP/UDP/IP — это уровень ниже RTSP для передачи данных.
- Для установления связи между устройством-приемником и устройством-источником требуется Wifi Direct/TDLS. (Даже несмотря на то, что весь стек наверху может находиться по сетевому каналу, созданному любым методом.)
Архитектура
Обзор
Сценарий Wifi Display – это не один шаг, а последовательность действий, таких как включение Wifi Direct, получение устройства-приемника, затем установка подключения и рендеринг любого контента для удаленного отображения (обычно зеркального отображения вашего экрана). Мы разделяем функцию Wifi Display на 3 основных этапа:
Этап 1. Установление прямого подключения к Wi-Fi
На этом этапе пользователю будет предложено выбрать удаленное устройство для отображения Wi-Fi, поскольку вокруг вас может быть несколько доступных устройств. С точки зрения пользователя это можно рассматривать как обычное установление соединения Wifi Direct. Это означает, что пользователю может потребоваться ввести пин-код или нажать кнопку для сопряжения целевого однорангового устройства. Во внутреннем Wifi Direct в списке должны отображаться только одноранговые устройства, поддерживающие приемник Wifi Display. Как только соединение установлено, все волшебство происходит за кулисами без вмешательства пользователя.
Этап 2. Настройка сеанса отображения Wi-Fi
После установления подключения Wifi Direct исходное устройство откроет сервер RTSP и будет ожидать подключения только одного разрешенного принимающего устройства. Затем приемник и исходное устройство обмениваются информацией и возможностями по протоколу RTSP. После завершения рукопожатия настраивается сеанс Wifi Display.
В текущей реализации мы напрямую используем вызов связывателя к медиасерверу для прослушивания устройства-приемника. После подключения устройства-приемника и настройки сеанса медиасервер перезвонит с помощью IGraphicBufferProducer. Этот IGraphicBufferProducer будет использоваться для создания объекта Surface и сохранен в GonkDisplay для последующего использования (см. mVirtualDisplaySurface в прямоугольнике «GonkDisplay»).
Этап 3: рендеринг виртуального дисплея и конвейер потоковой передачи RTSP
На этапе 2 мы планируем инициировать сеанс RTSP Wifi Display и получить IGraphicBufferProducer. Основная цель на этом этапе — «поиграть» с IGraphicBufferProducer, который мы получили ранее. То, что мы рисуем в IGraphicBufferProducer, будет отправлено в потоковый конвейер RTSP и отображено удаленно. Существуют разные стратегии для разных вариантов использования для рендеринга производителя буфера. Например, в случае «зеркального режима» мы можем выбрать рендеринг результата компоновщика производителю буфера сразу или послойно. Различные подходы будут обсуждаться в следующих разделах.
Прямой Wi-Fi
Потоковая передача по протоколу RTSP
Медиакодек
Графика
Графика может играть наиболее важную роль в Wi-Fi Display. Нам нужно удвоить загрузку процессора, графического процессора или аппаратного компоновщика, несмотря ни на что, поскольку нам приходится иметь дело с фактически дополнительным экраном! Другой режим отображения приведет к другому подходу. Возьмем, к примеру, «точный зеркальный режим». Для точного зеркального режима обычно есть два подхода: самый интуитивный — копировать каждый результат композиции непосредственно в буфер дисплея. Этот подход эффективно снижает усилия по обходу всего дерева слоев (ЦП) и позволяет избежать двойного выполнения сложным рендерингом ГП. Второй возможный подход состоит в том, чтобы дважды пройти по дереву слоев и отправить команды GL с разными GLSurface. Недостатком этого способа, очевидно, является многократное повторение одного и того же. Однако, поскольку большая часть команды GL является асинхронной, нам не нужно ждать, пока не будет получен текущий результат композиции, прежде чем мы сможем обработать буфер удаленного дисплея. В настоящее время мы реализуем многоуровневое решение, которое будет показано позже.
Помимо зеркального режима, удаленный дисплей также можно использовать для отображения совершенно другого контента с экрана раковины. В этом случае нам, скорее всего, придется поддерживать двухуровневые деревья.Подходы, которые мы упоминали ранее, рассматривают только однослойное дерево. Это большая тема, когда количество слоев дерева растет.
Подход 1 (на основе композиции)
Концепция этого подхода довольно проста: вместо повторного рендеринга одних и тех же (почти) вещей мы просто рендерим один раз и копируем результат композиции в буфер виртуального дисплея. Это можно сделать наивно, дождавшись результата композиции графического процессора и копирования памяти в место назначения. Судя по результатам раннего эксперимента, наивная реализация этого подхода определенно не работает. Ранний эксперимент выдает команду glReadPixel для каждого кадра, и частота кадров становится около 15 даже без запуска Wifi Display. Чтобы отшлифовать наивную реализацию, нам нужно 1) копировать буфер как можно ближе к тому моменту, когда исходный код готов, и 2) использовать GPU для копирования. Это все еще расследуется.
Подход 2 (на основе слоев)
При подходе, основанном на слоях, дерево слоев будет проходиться дважды с матрицей разностного преобразования и запрашиваться графическим процессором для рисования на разных EGLSurface соответственно. Мы реализуем этот подход, как показано на следующем рисунке: в каждом цикле обработки кадров CPU/GPU выполняется запуск «основного дисплея», за которым следует запуск «виртуального дисплея». Потребителем графического процессора в запуске «виртуального дисплея» является кодировщик, а не HWComposer/FrameBuffer. Кроме этого, большинство операций в двух прогонах идентичны.
Мы тестировали на Flame v188 и Nexus 4 KK. Статистика показывает, что на Nexus 4 FPS все еще может достигать 60, но меньше 20 на Flame. После профилирования каждого этапа обработки кадра мы обнаружили, что eglSwapBuffer занимает слишком много времени при запуске виртуального дисплея. Это может быть связано с плохим питанием кодека на пламени. Возьмем в качестве примера Кадр 2. Даже если кадр 2 будет завершен до следующей запланированной задачи Render(), нам все равно может потребоваться дождаться, пока кодировщик использует кадр и заблокирует поток компоновщика.
Чтобы смягчить проблему блокировки, может помочь параллинг двух последовательных запусков рендеринга/подкачки. Однако это вызовет проблемы с синхронизацией и потоковой передачей, и у нас пока нет времени на их изучение.
Читайте также:
- Распиновка переключателя Suzuki Years 2
- Администратор настраивает пароль для консольного порта коммутатора, в котором администратор будет проходить
- Какая команда отображает статистику по всем интерфейсам, настроенным на маршрутизаторе
- Как открыть порты на роутере zte f670
- Как выбрать Wi-Fi роутер для дома 2020, чтобы обеспечить хороший сигнал