Installation on Ubuntu Bionic Beaver and Ubuntu Xenial

Quick installation instructions of UV4L for Ubuntu Bionic Beaver 18.04 and Ubuntu Xenial 16.04 ( amd64)

The following instructions are valid for the following platforms:

  • Ubuntu Bionic Beaver 18.04 (amd 64-bit)
  • Ubuntu Xenial 16.04 (amd 64-bit)

Add the following line to the file /etc/apt/sources.list:

deb [arch=amd64] xenial main

Open a terminal, type the following commands and reboot:

$ wget -q -O - | sudo apt-key add -

$ sudo apt-get update

$ sudo apt-get install uv4l uv4l-uvc uv4l-mjpegstream uv4l-dummy uv4l-xscreen uv4l-server uv4l-webrtc uv4l-x11-renderer uv4l-demos

Not all the packages in the above list are mandatory. Depending on what you want to do, you can choose just one driver between the uv4l-uvc uv4l-mjpegstream, uv4l-dummy uv4l-xscreen. uv4l-server, uv4l-webrtc, uv4l-x11-renderer are optional, but uv4l-webrtc depends on uv4l-server and uv4l-x11-renderer depends on uv4l-webrtc (and gets installed by default when you install uv4l-webrtc).

You can confirm that the installation went well by using the xscreen driver (which captures a specified portion of the screen) with the following command:

$ uv4l --framerate 15 -f --auto-video_nr --driver xscreen --xorigin 0 --yorigin 0 --width 640 --height 480

which should output something like:

<notice> [core] Trying to loading driver 'xscreen' from built-in drivers...
<notice> [core] Loading driver 'xscreen' from external plug-in's...
<notice> [driver] Opening display: 
<notice> [driver] Display open, screen 0: 1366x768, depth: 24, bpp: 32, big endian: false
<notice> [driver] Specified capturing rectangle: (xorigin 0, yorigin 0, width 640, height 480)
<notice> [core] Device detected!
<notice> [core] Trying to load the the Streaming Server plug-in...
<notice> [server] HTTP/HTTPS Streaming & WebRTC Signalling Server v1.1.108 built on Jan 20 2018
<warning> [server] SSL is not enabled for the Streaming Server. Using unsecure HTTP.
<notice> [core] Streaming Server loaded!
<notice> [core] Registering device node /dev/video0
<notice> [server] Web Streaming Server listening on port 8080

At this point the Streaming Server should be listening at port 8080. Open the browser and start a WebRTC session on localhost to confirm that you can get the video stream: http://localhost:8080/stream/webrtc .