In this example we will see how to configure the Raspberry Pi to serve a customizable web app which allows the Raspberry Pi to share its screen and speakers (“what you hear”) to the PC browser. Additionally, thanks to a virtual keyboard running on the Raspberry Pi, it will be possible to emulate the keypresses captured and sent from within the web page in the browser.
It can be used to fully play RetroPie games in the browser as shown in this DEMO.
WebRTC data channels can be used for an infinite number of useful things. They are ideal for sharing data between two peers in a secure and efficient way. In a past demo we showed how they could be used to control a robot in real-time. In this demo we will see how to use a WebRTC data channel to transfer a file from a browser to a Raspberry Pi. The demo can also work as a simple remote media player.
The UV4L packages for Ubuntu Bionic Beaver and Ubuntu Xenial (x86-64bit) have been updated and a new x11-renderer module has been added!
See the quick installation instructions.
webrtcH4cKS has recently posted a very interesting article about a computer vision project that makes use of UV4L for real-time streaming of video and data over WebRTC from a Raspberry Pi Zero connected to a AIY Vision board. The board embeds a Vision Processing Unit (VPU) chip that runs Tensor Flow image processing graphs super efficiently.
The article is divided in two parts:
The UV4L packages for Ubuntu Xenial 16.04 (x86-64bit) have been updated! See the quick installation instructions.
The Video4Linux2 uv4l-raspicam driver for Raspberry Pi has been extended to support the TC358743 HDMI to MIPI converter chip. This chipset is often found in the B101 capture boards made by Auvidea.
Any resolution, color space or hardware codec (like MJPEG, H264, YUVs, etc…, with or without preview) will work. All the UV4L components on the top of this driver will work as usual.
The Raspberry Pi 3 is supported by this new release of the raspicam driver, while support for other Raspberry Pi models can be activated upon request.
Upgrade the driver or read these instructions to know how to install it. Remember that the TC358743 in the driver has to be enabled via the –tc358743=yes option (e.g. in the configuration file) to use it.
The UV4L WebRTC extension is finally available for the following models as well: Raspberry Pi 1, Raspberry Pi Zero and Raspberry Pi Zero W (Wireless).
For the installation instructions click here.
Remember that these models have less CPU power than the Raspberry Pi 2 and 3 counterparts, so please consider experimenting with “modest” resolutions first.
Users of other Rpi models, however, are also suggested to upgrade the UV4L packages to the most recent release as includes general improvements and new options, especially for the Streaming Server module and the raspicam driver (e.g. it’s now possible to disable image processing blocks in the ISP).
An unique embedded 3D immersive telepresence over the web solution based on the UV4L framework with the following features is now ready:
- optionally two-way, encrypted live data-audio-video in HD or greater resolution at full frame rate between two participants (or even more)
- FPV in a 180° x 180° panorama
- 3D Stereo image (optional)
- real-time head tracking, working out-of-the-box with any smartphone (no special software required, e.g. plugin-free browser) inside a VR headset like Google cardboards or easily adaptable to dedicate hardware like Oculus or OSVR
- software based on standard technology
- over Internet (cloud) or LAN
- peer-to-peer or video rooms with multiple participants
- does not necessarily require any third-party server infrastructure…
- …but can be optionally easily made as on-demand service when put in the cloud
- easy NAT traversal
- audio-video on-the-fly recording & play back on the browser client or recording on server side for further post-processing
- adaptive bitrate streaming to available bandwidth
- very low CPU usage
- single board, low cost
The VideoConference DEMO OS has been updated to include, by default, the recent raspidisp module addition to the UV4L suite, which allows your (potentially headless) Raspberry Pi to be mirrored and controlled from within any browser on your PC or SmartPhone. Another new interesting possibility coming out from this new module is that you can now broadcast your Rpi screen to other people over the web.