Me TV – it's TV for me computer
A GTK+ client for watching and recording DVB.
NB This is a rewrite of Me TV for GTK+3 and GStreamer using the Rust programming language and the gtk-rs and gstreamer-rs bindings.
Me TV is a digital television (DVB – digital video broadcast) viewer based on GTK+3 and GStreamer.
Me TV Home Page on Launchpad remains the home page for Me TV versions 1.x and 2.x. This GitHub repository is for development and release of version 3.x – to gain access to the variety of CI resources, and the like, which work with Git (especially GitHub, but also GitLab and BitBucket) but not with Bazaar and Launchpad. So, if you have questions, bug reports, issues, etc. on Me TV versions 1.x and 2.x, please go to the Me TV Home Page on Launchpad.
Anything to do with Me TV 3 such as repository forking, bug reports, pull requests, etc. should happen here on GitHub.
It is assumed you have GTK+3 3.18.0 or later and GStreamer 1.12.0 or later already installed.
For building Me TV you need the development packages installed, not just the library packages. So on Debian the libgtk-3-dev and the libgstreamer1.0-dev packages.
You need to either take a clone of this repository, or download a release tarball. You will then need to build the executable. This being a Rust program all build is handled using Cargo. Rust and Cargo may be packaged for your operating system, but most people use Rustup to install Rust and Cargo so as to stay up to date with both. Once you have Rust and Cargo installed, by whatever means, then in the directory of the Me TV project, typing the command:
will create a debug build, add the
--release option to the command line to get a release build.
Of course there is always the option of typing:
to build and also run the program if the build is successful. Again the
--release option is available on
this command line – but see below about creating the channels configuration file, which must happen before
you can watch television using Me TV.
If you want to install, then as an example:
cargo install --root=$HOME/Built
which will install the executable to $HOME/Built/bin.
Setting up for watching DVB
In order for GStreamer to work at run time, you have to have many of the plugins installed. There are base, good, bad, and ugly plugin packages. Currently the DVB plugin is in the bad package – it started there for historical reasons, and although it is not now bad, it is good, it has never migrated to the good package. So to run Me TV on Debian you need the packages gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, and gstreamer1.0-plugins-bad. On Debian the GStreamer GTK and OpenGL plugins have been separated out, so you will also need to install gstreamer1.0-gtk3 and gstreamer1.0-gl.
Before being able to watch a television channel using Me TV, you must have a channels file for the transmitter you are getting DVB signal from. This channels file is $HOME/.config/gstreamer-1.0/dvb-channels.conf. It is assumed this file is in DVBv5 format, DVBv3 format files will cause an error.
A way of creating this file from a running Me TV is available using the menu on the application window, currently it requires the executable dvbv5-scan be installed. On Debian Sid this is in package dvb-tools, whereas on Fedora Rawhide it is in the package v4l-utils – for some reason Debian splits out the DVB tools from the V4L utils, whereas Fedora keeps them all together. To create the channels file you will not only need dvbv5-scan installed but also the transmitter data files. These are in the package dvb-scan-tables on both Debian and Fedora. However Debian installs them to /usr/share/dvb/dvb-t/ whereas Fedora installs them to /usr/share/dvbv5/dvb-t/.
To have the channels file available before executing Me TV you can run dvbv5-scan manually. For example:
dvbv5-scan --output=~/.config/gstreamer-1.0/dvb-channels.conf /usr/share/dvb/dvb-t/uk-CrystalPalace
on a Debian system (remember Fedora puts the transmitter files in a slightly different place) will do the right thing of you live in the Crystal Palace transmitter region in the UK. I suspect people will want to scan on their local transmitter, in which case you should replace the uk-CrystalPalace with the name appropriate for the location you are when you run Me TV.
If you do not have dvb5-scan installed then best advice is to install it, preferably using the Linux distribution package management. If that is not possible then dvbscan or w_scan can be used to create the needed file, but it must be in DVBv5 format, not DVBv3 format.
Using Me TV
When started the initial screen of Me TV shows the frontends available or a message if none are connected. It should show any new ones as they are connected – and remove ones as they are removed. Each frontend button is a toggle button for the associated display for that frontend. Clicking on a frontend button will start a new frame, tune the frontend to the channel that is shown, and start playing the channel. Channels can be changed and there is a full screen capability.
Hopefully the UI is intuitive and gives a good UX. If not please feel free to submit an issue.
Me TV has, to date, only been tested for DVB-T and DVB-T2, none of the other formats (DVB-C, DVB-S, DVB-S2, ATSC) have been tested. They should work, but…