https://github.com/albfan/miraclecast Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} albfan / miraclecast Public * Notifications * Fork 373 * Star 2.9k Connect external monitors to your system via Wifi-Display specification also known as Miracast License Unknown and 3 other licenses found Licenses found Unknown COPYING GPL-2.0 LICENSE_gdhcp LGPL-2.1 LICENSE_htable LGPL-2.1 LICENSE_lgpl 2.9k stars 373 forks Star Notifications * Code * Issues 85 * Pull requests 2 * Actions * Projects 1 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights albfan/miraclecast This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 11 branches 1 tag Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/a] Use Git or checkout with SVN using the web URL. [gh repo clone albfan] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @Taz03 @albfan Taz03 and albfan fixed error message ... a36e9bd Nov 28, 2022 fixed error message a36e9bd Git stats * 322 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .semaphore Use new semaphore 2.0 CI Nov 13, 2020 cmake fix cmake compilation Apr 11, 2015 m4 split monolithic Makefile.am to follow autotools standards Mar 8, 2015 res Use default rstp port Nov 14, 2022 src fixed error message Nov 28, 2022 test Clean cmake files Oct 29, 2022 .gitignore Add meson build system Apr 14, 2017 .travis.yml Use travis as CI Nov 13, 2020 CMakeLists.txt Add ENABLE_SYSTEMD config to meson and autotools Oct 16, 2022 COPYING Correct spelling mistakes Apr 12, 2022 LICENSE_gdhcp Initial MiracleCast Implementation Feb 9, 2014 LICENSE_htable Initial MiracleCast Implementation Feb 9, 2014 LICENSE_lgpl Change license to LGPL Mar 19, 2014 Makefile.am Adding code coverage Apr 18, 2017 NEWS Initial MiracleCast Implementation Feb 9, 2014 README.md Change kdus to kdbus Oct 16, 2022 autogen.sh Avoid automatic make commands on autotools Oct 27, 2021 autotools.Dockerfile Use travis as CI Nov 13, 2020 cmake.Dockerfile fix cmake CI Oct 29, 2022 common.am relay on PATH to find executables Jul 2, 2016 config.h.cmake Option to use elogind instead of whole systemd Oct 16, 2022 configure.ac Add ENABLE_SYSTEMD config to meson and autotools Oct 16, 2022 meson.Dockerfile Use travis as CI Nov 13, 2020 meson.build log messages with time in human readable way Oct 29, 2022 meson_options.txt Add ENABLE_SYSTEMD config to meson and autotools Oct 16, 2022 test.supp test: add valgrind memory checks Mar 28, 2014 View code [ ] MiracleCast - Wifi-Display/Miracast Implementation Requirements Build and install Automatic interface selection with udev Linux Flavours and general compilation instructions Ubuntu Arch linux Other flavours Documentation Steps to use it as sink Steps to use it as peer UIBC Autocompletion License Credits Additional urls README.md MiracleCast - Wifi-Display/Miracast Implementation Join the chat at https://gitter.im/albfan/miraclecast Semaphore CI Build Status Travis CI Build Status Coverage Status The MiracleCast project provides software to connect external monitors to your system via Wi-Fi. It is compatible to the Wifi-Display specification also known as Miracast. MiracleCast implements the Display-Source as well as Display-Sink side. The Display-Source side allows you to connect external displays to your system and stream local content to the device. A lot of effort is put into making this as easy as connecting external displays via HDMI. Note: This is not implemented yet. Please see #4. On the other hand, the Display-Sink side allows you to create wifi-capable external displays yourself. You can use it on your embedded devices or even on full desktops to allow other systems to use your device as external display. Requirements The MiracleCast projects requires the following software to be installed: * systemd: A system management daemon. It is used for device-management (udev), dbus management (sd-bus) and service management. Systemd >= 221 will work out of the box. For earlier versions systemd must be compiled with --enable-kdbus, even though kdbus isn't used, but only the independent, experimental sd-libraries. required: >=systemd-213 * glib: A utility library. Used by the current DHCP implementation. Will be removed once sd-dns gains DHCP-server capabilities. required: ~=glib2-2.38 (might work with older releases, untested..) * gstreamer: MiracleCast rely on gstreamer to show cast its output. You can test if all needed is installed launching res/ test-viewer.sh * wpa_supplicant: MiracleCast spawns wpa_supplicant with a custom config. * P2P Wi-Fi device Although widespread these days, there are some devices not compatible with Wi-Fi Direct (prior know as Wi-Fi P2P). Test yours with res/test-hardware-capabilities.sh * check: Test-suite for C programs. Used for optional tests of the MiracleCast code base. optional: ~=check-0.9.11 (might work with older releases, untested..) * copy the dbus policy res/org.freedesktop.miracle.conf to /etc/ dbus-1/system.d/ Build and install To compile MiracleCast, you can choose from: * autotools * cmake * meson See more info on wiki Building Automatic interface selection with udev If you want to select the interface to start miraclecast with, add a udev rule with the script res/write-udev-rule.sh and configure miraclecast with $ ../configure --enable-rely-udev You can also choose the interface with --interface option for miracle-wifid. Linux Flavours and general compilation instructions Ubuntu Check your systemd version with: $ systemctl --version If you are on 221 or above your systemd has kdbus enabled. If you are below 221, an alternative repo was created to install systemd with dbus https://github.com/albfan/systemd-ubuntu-with-dbus See there was interface changes on systemd 219, if you are below that version, use branch systemd-219 to compile miraclecast See specific instructions on that repo Arch linux Use existing AUR package. Remember to enable kdbus to systemd-git dependency if you are below 221 systemd. $ export _systemd_git_kdbus=--enable-kdbus You can achieve installation using yaourt Other flavours If you feel confidence enough (since systemd is the entrypoint for an OS) extract instructions from arch linux AUR PKGBUILD: * systemd-kdbus * miraclecast Documentation Steps to use it as sink 1. shutdown wpa_supplicant and NetworkManager $ systemctl stop NetworkManager.service $ systemctl stop wpa_supplicant.service 2. launch wifi daemon $ sudo miracle-wifid & 3. launch sink control (your network card will be detected. here 3) $ sudo miracle-sinkctl [ADD] Link: 3 4. run WiFi Display on link: > run 3 5. Pair your machine with other miracast device (mirroring) 6. See your screen device on this machine Steps to use it as peer 1. Repeat steps 1 and 2 from "use as sink" 2. launch wifi control $ sudo miracle-wifictl 3. Enable visibility for other devices 4. Locate them using scanning > p2p-scan 5. Apart from list, or show info with peer there's nothing useful here by now. For a Q&D see Using as peer UIBC The User Input Back Channel (UIBC) is an optional WFD feature that when implemented facilitates communication of user inputs to a User Interface, present at the WFD Sink, to the WFD Source. To use it just add --uibc on miracle-sinkctl startup. Single mouse events and key events are implemented. Autocompletion Source res/miraclecast-completion for autocompletion License This software is licensed under the terms of the GNU-LGPL license. Please see ./COPYING for further information. Credits This software is originally maintained by: David Herrmann dh.herrmann@gmail.com This fork is maintained by: Alberto Fanjul albertofanjul@gmail.com If you have any questions, do not hesitate to contact one of the maintainers. Additional urls * Website: http://www.freedesktop.org/wiki/Software/miracle * Original repo: git://people.freedesktop.org/~dvdhrm/miracle * Fork repo: https://github.com/albfan/miraclecast * Technical spec: https://www.wi-fi.org/file/ wi-fi-display-technical-specification-v11 (free registration required) About Connect external monitors to your system via Wifi-Display specification also known as Miracast Resources Readme License Unknown and 3 other licenses found Licenses found Unknown COPYING GPL-2.0 LICENSE_gdhcp LGPL-2.1 LICENSE_htable LGPL-2.1 LICENSE_lgpl Stars 2.9k stars Watchers 124 watching Forks 373 forks Releases 1 tags Packages 0 No packages published Contributors 26 * @albfan * @dvdhrm * @derekdai * @al42and * @mcp292 * @antonioyip * @thopiekar * @phomes * @EdwardBetts * @corny * @akhuettel + 15 contributors Languages * C 91.9% * Shell 2.8% * CMake 1.6% * Python 1.2% * M4 0.9% * Meson 0.8% * Other 0.8% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.