How to Install GNOME Network Displays with Ubuntu 19.10

In this crazy "wired world", we're increasingly seeking ways to connect things wirelessly. Displaying audio visual content to a conference room display or living room television is certainly no exception. After all, HDMI cables are so 2002! :)

GNOME Network Displays allows you to do just that under Linux. It utilizes an open wireless display standard known as Miracast. Miracast allows two devices to establish a direct, peer-to-peer (P2P) connection using Wi-Fi Direct without the need for an intermediary Wireless Access Point (WAP).

When two devices connect with each other in this manner, one is considered the "source" (the transmitter), and the other is considered the "sink" (the display receiving and rendering the audio visual content).

Building and compiling the source code is easy, it just requires a few scattered dependencies. I developed this installation procedure by trail and error. I have tested it multiple times and it works for me. It is assumed that you're starting with a fresh install of Ubuntu 19.10. As always, your mileage may vary.

Before you start, run sudo apt update and ensure that all packages are up to date. If any packages can be upgraded, do so before continuing.

  1. Install the ubuntu-restricted-extras package:

  2. $ sudo apt install ubuntu-restricted-extras

    NOTE: Amongst other things, this package installs Microsoft's TrueType core fonts which require you to acknowledge an End-User License Agreement (EULA). The text interface is a throwback to the MS-DOS days. Use the Tab and Enter keys to navigate the required inputs.

  3. Install pip, the Python package installer:

  4. $ sudo apt install python3-pip

  5. Use pip to install meson and ninja. These tools are needed to build GNOME Network Displays:

  6. $ sudo pip3 install meson ninja

  7. Next, install a host of dependencies needed to build OpenH264 and GNOME Network Displays:

  8. $ sudo apt install gettext appstream-util cmake libgtk-3-dev
    $ sudo apt install libnm-dev libpulse-dev nasm git
    $ sudo apt install gstreamer1.0-plugins-bad
    $ sudo apt install libgstreamer-plugins-base1.0-dev
    $ sudo apt install libgstrtspserver-1.0-dev

  9. Finally, download the source code and compile it:

  10. $ mkdir $HOME/src
    $ cd $HOME/src
    $ git clone https://github.com/cisco/openh264
    $ cd openh264
    $ make
    $ sudo make install
    $ cd ..
    $ git clone https://github.com/benzea/gnome-network-displays
    $ cd gnome-network-displays
    $ meson build
    $ cd build
    $ ninja
    $ sudo meson install

  11. Execute the new GNOME Network Displays binary located in /usr/local/bin.

  12. $ pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY NETWORK_DISPLAYS_H264_ENC=openh264enc /usr/local/bin/gnome-network-displays &


Any idenified video sinks will be listed in the Network Displays window. The various warnings displayed in the terminal window can be ignored.

NOTE: Once an audio stream is started (e.g. playing a YouTube video), audio sinks can be selected using pactl(1). The use of pactl is outside the scope of this blog post.

Comments

  1. Play Online Casino for Free Today - thtopbet.com
    Play Online Casino for Free planet win 365 Today fun88 vin Play on all the games and offers for Free. Sign-up today to get the best offers at rb88 thtopbet.com.

    ReplyDelete
  2. What's the casino? | MJHub
    In the last three months, the casino 경기도 출장안마 has gone live with nearly 100 동해 출장안마 games that have 영주 출장안마 been released for online gambling. They 익산 출장안마 offer slots, roulette, 여주 출장안마

    ReplyDelete
  3. The best games and jackpots for online slots - DrMCD
    Play all the free slot machines from the best providers, such 보령 출장마사지 as 이천 출장샵 NetEnt, 의정부 출장샵 NetEnt, Evolution Gaming 경상남도 출장샵 and many more for 세종특별자치 출장샵 free.

    ReplyDelete

Post a Comment