README.md 1.63 KB
Newer Older
1
This is an experimental implementation of Wi-Fi Display (aka Miracast).
Benjamin Berg's avatar
Benjamin Berg committed
2

Benjamin Berg's avatar
Benjamin Berg committed
3
4
5
The application will stream the selected monitor if the mutter screencast
portal is available. If it is unavailable, a fallback to X11 based frame
grabbing will happen. As such, it should work fine in almost all setups.
Benjamin Berg's avatar
Benjamin Berg committed
6

7
8
9
To get audio streaming, you need to change the audio output in pulseaudio
to use the created "Network-Displays" sink.

Benjamin Berg's avatar
Benjamin Berg committed
10
11
To use it, you will need:
 * openh264 or x264
Benjamin Berg's avatar
Benjamin Berg committed
12
 * For audio supporting using AAC one of fdkaacenc, faac or avenc_aac
Alberto Fanjul's avatar
Alberto Fanjul committed
13
 * NetworkManager version > 1.15.2
Benjamin Berg's avatar
Benjamin Berg committed
14

Gil Forcada Codinachs's avatar
Gil Forcada Codinachs committed
15
16
Build
=====
17

Gil Forcada Codinachs's avatar
Gil Forcada Codinachs committed
18
19
20
21
22
23
To build it locally:

- clone the repository
- install `meson`
- run `meson build` on the cloned repository
- run `meson install` on the `build` folder created by meson
24

25
26
27
28
29
30
31
32
33
34
35
Devices
=======

The following devices have been tested:
 * Measy "Miracast Receiver" Model A2W
   - Announces itself as EZMirror/EZCast
   - Only supports uncompressed audio (LPCM) which is not supported yet
 * LG WebOS TV
 * MontoView (Software Revision 2.18.02)
 * MiraScreen

36
37
38
Testing
=======

39
For testing purposes you can run with NETWORK_DISPLAYS_DUMMY=1 set. In that case, a dummy
40
41
42
43
sink will be provided that allows connecting on localhost using any RTSP capable
client to test WFD streaming.

You can connect to rtsp://localhost:7236/wfd1.0 then.
44
45
46
47
48
49
50
51

Debugging
=========

Appropriate video/audio encoders will be selected automatically. You can
modify the choice by setting the NETWORK_DISPLAYS_H264_ENC and NETWORK_DISPLAYS_AAC_ENC
environment variables and specifying the gstreamer element to use (if
supported and detected). run with G_MESSAGES_DEBUG=all to see the selection
52
at work during connection establishment.