All Projects → derekdai → miraclecast

derekdai / miraclecast

Licence: 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
Connect external monitors to your system via Wifi-Display specification also known as Miracast

Projects that are alternatives of or similar to miraclecast

Lunar
Intelligent adaptive brightness for your external monitors
Stars: ✭ 2,712 (+15852.94%)
Mutual labels:  display
WiFi-Direct-File-Transfer-App
WiFi Direct File Transfer is a experimental app that will allow sharing of data between Android devices running Android 4.0 or higher using a WiFi direct connection without the use of a WiFi access point. This will enable data transfer between devices without relying on any existing network infrastructure
Stars: ✭ 88 (+417.65%)
Mutual labels:  wifi-direct
BetterDummy
Unlock your displays on your Mac! Smooth scaling, HiDPI unlock, XDR/HDR extra brightness upscale, DDC, brightness and dimming, dummy displays, PIP and lots more!
Stars: ✭ 9,601 (+56376.47%)
Mutual labels:  display
Heliosdisplaymanagement
An open source display profile management program for Windows with support for NVIDIA Surround
Stars: ✭ 181 (+964.71%)
Mutual labels:  display
Wifi-Connect
A library project to connect two devices using Wifi-Direct
Stars: ✭ 94 (+452.94%)
Mutual labels:  wifi-direct
Walkie-Talkie
An Android app to enable infrastructure-less communication using WIFI-Direct.
Stars: ✭ 47 (+176.47%)
Mutual labels:  wifi-direct
Tableprint
Pretty console printing 📋 of tabular data in python 🐍
Stars: ✭ 153 (+800%)
Mutual labels:  display
xpub
POSIX Shell script to get user's display environment variables of any TTY from anywhere.
Stars: ✭ 36 (+111.76%)
Mutual labels:  display
WifiP2P
通过 Android 设备的 Wifi Direct,实现 Android 手机之间传输任意文件
Stars: ✭ 710 (+4076.47%)
Mutual labels:  wifi-direct
Sprat-type
Display typeface
Stars: ✭ 58 (+241.18%)
Mutual labels:  display
Rpi Backlight
🔆 A Python module for controlling power and brightness of the official Raspberry Pi 7" touch display
Stars: ✭ 190 (+1017.65%)
Mutual labels:  display
Core Layout
Flexbox & CSS-style Layout in Swift.
Stars: ✭ 215 (+1164.71%)
Mutual labels:  display
ayanda
Android Library to discover nearby devices Offline
Stars: ✭ 38 (+123.53%)
Mutual labels:  wifi-direct
Lcd Image Converter
Tool to create bitmaps and fonts for embedded applications, v.2
Stars: ✭ 176 (+935.29%)
Mutual labels:  display
direct-net-share
share internet via Wifi direct on Android
Stars: ✭ 36 (+111.76%)
Mutual labels:  wifi-direct
M365 dashboard
Xiaomi M365 Display V0.2
Stars: ✭ 168 (+888.24%)
Mutual labels:  display
UnityWifiDirect
adding wifi direct to Unity3d
Stars: ✭ 28 (+64.71%)
Mutual labels:  wifi-direct
lantern
[Android Library] Handling device flash as torch for Android.
Stars: ✭ 81 (+376.47%)
Mutual labels:  display
device-epd
E-Paper Display Device
Stars: ✭ 26 (+52.94%)
Mutual labels:  display
react-native-wifi-p2p
Library that provide access for working with wi-fi direct (p2p) module in android.
Stars: ✭ 104 (+511.76%)
Mutual labels:  wifi-direct

MiracleCast - Wifi-Display/Miracast Implementation

Join the chat at https://gitter.im/albfan/miraclecast Build 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.

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..)

  • readline**: A library which is used to provide command line interface to control wifid, sink, etc..

  • 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..)

  • gstreamer: MiracleCast rely on gstreamer to show cast its output. You can test if all needed is installed launching res/test-viewer.sh.

  • gstreamer plugins: here are the gstreamer plugins you need in order to run sinkctl or dispctl

    • gstreamer-plugins-base
    • gstreamer-plugins-good
    • gstreamer-plugins-bad
    • gstreamer-plugins-ugly
    • gstreamer-plugins-vaapi
    • gstreamer-plugins-libav
  • 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

  • copy the dbus policy res/org.freedesktop.miracle.conf to /etc/dbus-1/system.d/

Install

To compile MiracleCast, you can choose from autotools or cmake:

Autotools:

$ ./autogen.sh
$ mkdir build
$ cd build
$ ../configure --prefix=/usr/local #avoid --prefix for a standard install

Cmake:

$ mkdir build
$ cd build
$ cmake ..

Compile

$ make

Test

$ make check #only with autotools by now

Install

$ sudo make install

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 kdus 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:

Documentation

Steps to use it as sink:

  1. shutdown wpa_supplicant and NetworkManager

    $ sudo kill -9 $(ps -ef | grep wpa_supplican[t] | awk '{print $2}')
    # now you can use `res/kill-wpa.sh`
    
    >Remember to save your config to use with `res/normal-wifi.sh`
    >it will be easily located with `ps -ef | grep wpa_supplicant` on `-c` option.
    
  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 <mac> 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 [email protected]

This fork is maintained by: Alberto Fanjul [email protected]

If you have any questions, do not hesitate to contact one of the maintainers.

Additional urls

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].