Google’s Chromecast is one of the most popular audio and video streaming devices out there. The small device plugs into an HDMI port and is controlled by a computer or mobile device. Casting is as simple as tapping a button in supported apps. But Chromecast isn’t your only option for this sort of functionality – you can do something similar with the Raspberry Pi.
In this tutorial, I’m going to show you how you can use your Raspberry Pi as a Chromecast alternative. It’s worth a mention that this will make your Raspberry Pi be exactly that: an alternative to, not a carbon copy of, Google’s device. This alternative doesn’t support Google’s Cast button, but it does support streaming YouTube videos as well as local audio, images, and videos from your smart device to your TV. Here’s how to use your Raspberry Pi as a Chromecast alternative.
How to use your Raspberry Pi as a Chromecast alternative
For this project, we’ll need to have a couple of programs installed on the Raspberry Pi (OMXPlayer and OpenMax image viewer for the Raspberry Pi) and one installed on the device you want to cast from (Raspicast). The audio and video content that you stream from your smart device to your Raspberry Pi and your TV will be played using OMXPlayer, and the image content will be displayed using OpenMax image viewer for the Raspberry Pi.
Raspbian comes with OMXPlayer already installed, so that’s the operating system we’ll use in this tutorial (if you don’t yet have Raspbian installed, The Pi can help). We will have to install a couple of libraries and a program called OpenMax image viewer for the Raspberry Pi.
Step 1: Check for updates
It’s always wise to start with checking for the latest Raspbian updates by running these commands in Terminal:
sudo apt-get update sudo apt-get upgrade
Step 2: Enable SSH
In order for this project to work, we have to have SSH enabled on the Raspberry Pi. There are a couple of ways to enable SSH: using the GUI or Terminal. We’ll cover both below.
Using the GUI
Navigate to Preferences > Raspberry Pi Configuration and click Interfaces. While there, select SSH: Enabled.
Run the following command in Terminal:
Then navigate to Advanced Options and select SSH. You’re asked whether you’d like the SSH server to be enabled. Select Yes. After that, you can exit the config.
Step 3: Clone the OpenMax image viewer for the Raspberry Pi repository
We want to use our Chromecast alternative to cast images, so we’ll need to have OpenMax image viewer for the Raspberry Pi installed. The program’s repository resides on GitHub. Let’s clone the repository to our Raspberry Pi. Open Terminal and run the following command:
git clone https://github.com/HaarigerHarald/omxiv
Alright, let’s move on.
Step 4: Install the necessary packages
Cloning the image viewer’s repository isn’t enough: we still have to build and install the program. In order to build the image viewer, we’ll need to have some additional packages installed. Here is the command that we have to run next:
sudo apt-get install libjpeg8-dev libpng12-dev
These packages (libjpeg8-dev and libpng-12-dev) contain the development headers needed to build programs that use the libjpeg and libpng libraries. Libjpeg and libpng are C libraries for handling JPEG and PNG images, respectively.
Step 5: Build and install
We’re now ready for building and installing the OpenMax image viewer. These short commands are all we need:
cd omxiv make ilclient make sudo make install
Now that we the image viewer installed, we won’t be needing the Pi for a short while.
Step 6: Download and install Raspicast
On your Android device, launch the Google Play Store and search for Raspicast. Raspicast is the app that lets us stream content from our smart devices to our Raspberry Pis and our TVs. After you’ve installed Raspicast, you’ll need to modify some settings.
Raspicast needs to know your Raspberry Pi’s IP address and credentials in order to work properly. Hop back onto your Pi and run this command in Terminal:
The command will return your Raspberry Pi’s private IP address. Write that down and continue with Raspicast’s settings dialog. If you haven’t changed your credentials, your username is pi and your password is raspberry.
Once you’re ready with the settings, Raspicast should be able to connect to your Pi, and you should be able to stream content from your mobile device to the big screen. Just tap Cast on Raspicast’s home screen and choose the content that you want to be casted. If you want to cast YouTube videos, you can do so within the YouTube app: choose a video, tap the share button, and select Raspicast from the list of choices.
Great articule! Thanks a lot!
Just to help others like me: ‘make ilclient’ wouldn’t work for me until I worked out that I should move into the omxiv directory first with ‘cd omxiv’.
Thanks for pointing out!
Nice post, thank you…
I don’t have a Raspberry Pi handy to try this, but I will get one.
1. If you using full Raspbian, doesn’t it boot to the GUI desktop by default? I seem to remember OMXPlayer requires a true command line interface to work.
2. Does this work with Raspbian Lite instead of full Raspbian?
3. Has this been tested with Raspbian Stretch?
4. Is fbi installed by default in Raspbian/Raspbian Lite and if yes, can it be used instead of having to download and compile the OpenMax image viewer plus dependencies?
5. Is there an alternative to Raspicast but for the desktop? A cross platform browser plug-in hopefully? And NO, Chrome is NOT an option. Google spies on us enough already!
Thanks for the instructions – I’m all up and running!
However one correction:
Step 5 – you need to be in the omxiv directory (created by the git command on Step 3) before you can issue the make command. So between Step 4 and 5 type “cd omxiv” and continue with the rest of the instructions.
Thanks. It is working for me
My images are showing up fine but if I try to play sound or play a video I just get a black screen on my TV.
I have the same problem!
I have Raspberry Pi Model B+ (without in-built Wi-Fi). Please suggest compatible Wi-Fi device to make my Raspberry Pi Model B+ as screen casting device. Thanks.
This will work with Raspberry 3 Model B+:
Just to let you know…
I wanted to use this to have a Raspberry Pi based digital photo frame plus the option to cast. Basically these features:
1. Being able to cast from Google Photos (kind of work but the sharing is a little clunky and can’t be put on slideshow mode).
2. Have the Pi boot up on photo slide show automatically (obtaining the media from Google Photos directly).
Has anyone done anything similar with this or any other tool?
Nice! Works smooth. Tested on RPi 2.
Thanks for this nice tutorial! 🙂
Is it possible with Raspicast to share the screen? I mean, to do complete screen cast?
Paljon kitoksia! Very well done. Running on RPi3 with Stretch sending from Honor 6X. Any way to send from an iPhone (wife) as well? With “Google Mome” – or the “AllCast” app?
Does it work on Raspbian Lite? Thanks!
Get Raspicast for Apple!
How to cast camera? Can you please help me with that. It could be a phone camera or Pi’s camera module.
I always get ater the “pi@raspberrypi:~/omxiv $ make”
The following error:
soft_image.c:33:21: fatal error: jpeglib.h: No such file or directory
which prevents the “sudo make install” step.
How can we use the custom command to change the volume?