This page is about ktv, an analog tv viewer which uses mplayer and is written in c++ with the Qt4 framework.

It is released under the GPLv2 license.


Despite the availability of many tv viewers (kdetv, motv, me tv, tvtime, xawtv, mythtv, and more which can be found here), they did not succeed to convince me. Either, it didn't work after an upgrade, either it just didn't work, was to archaic, did not work the way I wanted it too, did not record succesfully, etc.

The combination mplayer+mencoder, though, seemed to work fine. Unfortunately, no favorable GUI did seem to exist, which is why I started developing a frontend for mplayer used to watch and record analog tv.

Current status


ktv can do the things I want it too:

  • watch tv, switch channels;
  • scan for channels;
  • record to file. The file being recorded will then be played. While the stream is being recorded, you can seek in it, thus providing simple time-shifting capabilities;
  • schedule recordings, with various methods to specify the start and stop condition;
  • tv guide, which fetches its data from XMLTV's grabbers and other small things, like muting audio, switching to full screen, modifying hue, saturation, contrast and brightness.

Some other usefull stuff: - import channels from a xawtv or tvtime configuration file; - GUI for setting some mplayer variables; - some preset mplayer configurations for certain video cards (if ktv only runs with some obscure or not so obscure parameters, don't forget to send me the video card type and the additional arguments - I'll include it, and other people will be very thankful!); - press J to quickly jump to another channel, or press a channel number 0-9 on the numerical keyboard to switch channels.



ktv requires the following components:

  • Qt4
  • amixer (to modify audio volume, and mute/unmute)
  • mplayer+mencoder
  • build stuff, like c++, make, qmake

What the future holds


Currently, ktv does most of what I want equal or better than the other players, and I'm not actively using it anymore, so unless there are blatant errors or very interesting requests, there won't be much work from me anymore.

ktv is currently only tested on my system (which has a Pinnacle PCTV Studio/Rave card), and might or might not work on your system. If the latter, drop me a line with a detailed description (your TV card, what important packages you have installed, an error log, ideally a backtrace), and I'll try to fix it (or you fix it, and I'll import the patch ).

Screenie weenies




ktv is kept in a git repository writable only by me.

There is no direct write access to this repository, but you can send patches and then I'll import them :)

Some AQs


Q: I am trying to import guide data. Being in place X, I can't find any reliable source for guide data. So, I'm using [program Y] which seems to be able to convert to a xmltv file. Any idea how I would be able to import this information into your program?

A: all guide data is stored on a per day basis in a file ~/.ktv/guide/YYYY-MM-DD.xml. So, if you have a cronjob running each day, storing next days guide data in the corresponding file, you should be fine. Instead of storing all days separately, you can also store the whole guide in ~/.ktv/guide/YYYY-MM-DD.xml, and update its filename upon changing of the day.

Q: I am getting compilation errors.

A: this is very probably due to an older version of Qt that is being used. My system usually contains the latest stable version. So either try upgrading Qt, or send me a message which includes your system details, and the compiler log. Others

Bugs and feature requests can be sent to me at the contacts page, however, note ktv is not actively developed anymore.

Alternatively, if you have any remarks, questions, or maybe feature requests, or want to contribute code, drop a comment at this page, or mail me using the contact page!

Add a comment

Name (required)
Email (optional, not shown)
Comment (max 1000 characters)

First three digits of PI: (anti spam)