Tvheadend is a Linux program that turns your Raspberry Pi into an IPTV server to stream your TV signal. It will use your USB TV tuner signal to capture video and EPG data which you can use to enjoy live OTA TV on your devices. Tvheadend lets you record your favorite shows too as a personal DVR (or PVR) so you won't miss a show. This sort of IPTV solution on a low powered device like a Raspberry Pi is very impressive. You could even use a Raspberry Pi to serve the streams and another Raspberry Pi 2 (or B series) to receive the stream and play it back anywhere in your house.
If you are trying to figure out which hardware would work best for you, consider reading the Pi benchmarks.
|Raspberry Pi 3|
|Raspberry Pi 2|
|Banana Pi Pro|
Configure PCTV tripleStick 292e Tvheadend on Raspberry Pi
I used Minibian because it has the necessary kernel modules to work with dvb tuners. Regular Raspbian or Ubuntu/Lubuntu for ARMv7 devices should work as well.
Install tripleStick 292e on Raspberry Pi
You should not need to install the latest non-free firmware but it shouldn't hurt either
sudo apt-get install firmware-linux-nonfree -y
I found the drivers for the pctv 292e tuner firmware here which grabs them from the OpenELEC repository.
wget https://raw.github.com/OpenELEC/dvb-firmware/master/firmware/dvb-demod-si2168-02.fw sudo mv dvb-demod-si2168-02.fw /lib/firmware/dvb-demod-si2168-02.fw wget https://raw.github.com/OpenELEC/dvb-firmware/master/firmware/dvb-demod-si2168-b40-01.fw sudo mv dvb-demod-si2168-b40-01.fw /lib/firmware/dvb-demod-si2168-b40-01.fw
Install Tvheadend on Raspberry Pi
Now add the Tvheadend repo's key, the repo itself, update packages and install Tvheadend
sudo apt-get install apt-transport-https sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 echo "deb https://dl.bintray.com/tvheadend/deb jessie release" | sudo tee -a /etc/apt/sources.list.d/tvheadend sudo apt-get update sudo apt-get install tvheadend -y
During the Tvheadend installation you will be prompted for an admin username and password, choose a strong password and I advise using a non-obvious username (i.e. not admin or Administrator).
Configure Tvheadend on Raspberry Pi
The Tvheadend web interface is on port 9981 so browse to http://ip.address:9981 to start configuring Tvheadend on the Raspberry Pi.
Click Configuration, then the DVB Inputs tab and choose your USB TV adapter under TV Adapters
It will pop up in the middle, check Enable and then Save
In the left pane click Add DVB Network by location
When the scanning is done you should also check Skip initial scan so that TVheadend doesn't scan all the frequencies when it restarts
You will see this pop up, intially I browsed by my current country of residence but no channels were found, thanks to this post I saw that it is better (yet slower) to scan the entire range.
Under the –Generic– area, choose auto_Default and click Add DVB network.
This channel frequency scanning will take a long time
When Tvheadend is finally done scanning you can see how many channels which it calls Services in the right pane
The button Map DVB services to channels will be enabled now, click it
Now to see the services it tvheadend and your pctv tuner have found.
Under Configuration click the Channel / EPG tab and then click Channels
Tvheadend recording on the Raspberry Pi is possible. Under Configuration -> Recording
At 720p a 45 minute show took up 2.5 GB of space
To actually record a show go into the Electronic Program Guide where you will see an overview of all the content for the channels
You can filter by channel and search for titles here, very useful.
If you left click on a title you will get a pop up asking you to record the channel. Clicking record program will record this one instance of the show while clicking Autorec will record recurring instances of the show.
In VLC you can open this address which points to your Raspberry Pi running Tvheadend and it will open a channel list
Separate guides will be made for using your new USB tuner IPTV Raspberry Pi solution in Kodi (XBMC), OSMC and Raspbmc.