Kaffeine

From LinuxTVWiki
Revision as of 16:32, 24 February 2022 by Danitool (talk | contribs) (→‎Command control with qdbus)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Description

Kaffeine is a media player. What makes it different from the others is its excellent support of digital TV (DVB). Kaffeine has user-friendly interface, so that even first time users can start immediately playing their movies: from DVD (including DVD menus, titles, chapters, etc.), VCD, or a file.

Kaffeine version 2.0, launched in Jun, 2016, has its GUI written on the top of KDE Frameworks 5 and Qt5. For video/audio playback, it uses libVLC as backend, and it interfaces with Linux TV devices via libdvbv5.

It has a simple but intuitive interface (example live TV screenshot) and is easy to setup. Amongst its list of supported formats are CDDA, VCD, DVD, .... and, since versions >0.5, it also provides full DVB support.

The latest version is 2.0.3.

Supported features

  • Digital TV and Radio via Digital TV
  • Time Shifting
  • Recording -- including unattended recording
  • EPG, EPG-driven recording timers, OSD EPG now and next.
  • AC3
  • DVB subtitles
  • HDTV
  • Multi standards are supported:
    • Cable standards: DVB-C
    • Terrestrial standards: ATSC, ISDB-T, DVB-T, DVB-T2;
    • Satellital Standards: DVB-S, DVB-S2
  • Kaffeine can simultaneously play and record different channels within the same transponder.
  • Nicely handles mutiple frontends on a single device (for example a multi-standard card supporting DVB-C and DVB-T/T2 on the same frontend).
  • Channel scanning on multiple devices/frontends, and multiple satellites.
  • Channel favourites lists.
  • DiSEqC 1.x switches, DiSEqC 1.2 rotors and USALS.
  • Supports both Low and High level CI.
  • KDE application style, rather than set top box (like MythTV or VDR)

Setting up Kaffeine for live view (e. g. "over the air broadcasts")

(assumes you have correctly installed your DVB device)

A) Simply open up Kaffeine

Kaffeine initial screen

B) choose "Digital TV" in the Start Menu

Digital TV screen

PS.: if it is the first time you're using, the channel tab will be empty and the main screen will be black.

C) hit "Configure Television" option icon

Configure Television screen

D) Click on the appropriate "Device" tab ... if you only have one DVB device installed, it should be "Device 1"

Configure ATSC device screen

E) Choose "Source" or whatever is appropriate for your usage (e.g. "us-ATSC-center-frequencies-8VSB" for over-air broadcasts in the U.S.; ....)

F) Close window, go back to Kaffeine TV window and click "Channels" option icon

Scan channels screen

G) In "Channels" window, make sure the "Source" is set correctly (i.e. to "ATSC" in this example), then hit "Start Scan" button -- the scan will take a couple of minutes or so

Scan channels screen after scan

H) Once the scan is complete, highlight all channels found in the right-hand box "Scan Results" (or all that you would like to save) then click "Add Selected" and those channels will then appear in the left-hand box called "Channels"

Scan channels screen with channel added

I) Hit "Ok" to get out of "Channels" window and you will return to Kaffeine "Digital TV" window with your selected channels appearing in the left margin column.

j) Double click on a channel to select -- and now hopefully you are watching !

Command line options

--tempfile
The files/URLs opened by the application will be deleted after use
-f --fullscreen
Start in full screen mode
--audiocd
Play Audio CD
--videocd
Play Video CD
--dvd
Play DVD
--dumpdvb
Dump dvb data (debug option)
--channel name / number
Play TV channel
--tv channel
(deprecated option)
--lastchannel
Play last tuned TV channel
file
Files or URLs to play

Command control with qdbus

Kaffeine can be controlled with qdbus commands. These commands can be triggered with an IR remote, e.g: using LIRC.

Some, but not all qdbus commands:

qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.ToggleMuted
mute, unmmute
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.DecreaseVolume
decrease volume
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.IncreaseVolume
increase volume
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.Next
play next channel
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.Prev
play previous channel
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.ToggleFullScreen
toggle full screen
qdbus org.kde.kaffeine /Television org.freedesktop.MediaPlayer.ToggleInstantRecord
it records the current TV stream
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.Play
play
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.Stop
stop
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.LongSkipForward
Forward
qdbus org.kde.kaffeine /Player org.freedesktop.MediaPlayer.LongSkipBackward
Backward
qdbus org.kde.kaffeine /Television org.freedesktop.MediaPlayer.PlayLastChannel
Play previous channel, it toggles actual and last channel
qdbus org.kde.kaffeine /Television org.freedesktop.MediaPlayer.ToggleOsd
Toggle OSD
qdbus org.kde.kaffeine /Television org.freedesktop.MediaPlayer.PlayChannel 1
Change to the TV channel number 1
qdbus org.kde.kaffeine /Television org.freedesktop.MediaPlayer.DigitPressed 1
Press the key 1, it waits a bit for another key to select the channel

Installing Kaffeine

Prerequisites

The following tools are needed to build Kaffeine:

  • GNU c++
  • GNU make
  • cmake >= 2.8
  • cmake ECM (extra-cmake-modules)

The following development headers are needed (recommended versions):

  • Qt >= 5.4
  • KF5 >= 5.11
  • libX11
  • libXss
  • libqt-sql-sqlite
  • libvlc
  • libdvbv5

If you also want language translations you also need:

  • gettext

If you also want the Kaffeine Handbook, you also need:

  • KF5DocTools

Debian and Ubuntu

The needed packages for Debian/Ubuntu should be installed with:

apt-get install kdelibs5-dev libvlc-dev libxss-dev vlc \
       libkf5coreaddons-dev libkf5i18n-dev libqt5x11extras5-dev \
       libkf5solid-dev libkf5widgetsaddons-dev kio-dev \
       qt5-default libdvbv5-dev \
       cmake extra-cmake-modules make g++ gettext

And, to build the optional Kaffeine Handbook documentation:

apt-get install kdoctools-dev

PS.: The above was tested with Debian SID and Ubuntu Xenial (16.04). Other versions may have different requirements.

Fedora

On Fedora, you need a repository that provides VLC.

For stable fedora releases, you could use the rpmfusion repository. See http://rpmfusion.org/Configuration/ for instructions about how to set it up.

For Fedora rawhide and beta releases, you could use, instead the Unitedrpms repository: https://unitedrpms.github.io/. Please read at https://github.com/UnitedRPMs/unitedrpms.github.io/blob/master/README.md for instructions about how to set up.

Once the repository with VLC is set, install the needed packages with:

dnf install  kf5-kcoreaddons-devel extra-cmake-modules libXScrnSaver-devel \
     qt5-qtx11extras-devel \
     kf5-solid-devel kf5-kio-devel \
     kf5-kdbusaddons-devel kf5-ki18n-devel vlc-devel gettext-devel

And, to build the Kaffeine Handbook documentation:

dnf install kf5-kdoctools-devel

PS.: The above was tested with Fedora 23 and Fedora 24. Other versions may have different requirements.

openSUSE

If you run openSUSE Tumbleweed, you can find an up-to-date package with the latest state of git in the KDE:Unstable:Extra repository.

zypper ar obs://KDE:Unstable:Extra KDE_Unstable_Extra # add repository
zypper in -r KDE_Unstable_Extra kaffeine

If you are using openSUSE Leap or openSUSE 13.2, you will need to compile from sources instead. You need to be using at least OpenSUSE version 13.2, in order to have KF5 and Qt 5.5 at their repositories.

The first step is to install the needed dependencies:

zypper install extra-cmake-modules vlc-devel make gcc gcc-g++ cmake \
   libqt5-qtbase-devel libqt5-qtx11extras-devel \
   kdbusaddons-devel solid-devel kio-devel ki18n-devel

If you're running OpenSUSE version 13.2, you'll need to compile the libdvbv5 by hand, as it is not provided there. OpenSUSE Leap (version 42.1) seem to have it already packaged as libdvbv5-devel.

Before compiling libdvbv5, some packages are needed:

zypper install autoconf automake libjpeg-devel

Compiling libdvbv5 (as normal user):

wget https://linuxtv.org/downloads/v4l-utils/v4l-utils-1.10.0.tar.bz2
tar xvf v4l-utils-1.10.0.tar.bz2
cd v4l-utils
./bootstrap.sh && ./configure && make

Installing the library (as root):

make install

And, to build the optional Kaffeine Handbook documentation:

zypper install kdoctools-devel

PS.: The above was tested with openSUSE 13.2. Other versions may have different requirements.

Gentoo

Kaffeine is already packaged on Gentoo. Installing it is as simple as:

emerge kaffeine

Arch Linux

Kaffeine is already packaged on Arch Linux. Installing it is as simple as:

pacman -S kaffeine

Installing translations

This step is optional, and should be done only if you want to use Kaffeine on non-English setups.

The Kaffeine tarballs should already have the translations on it, but, if you're installing from the git tree, you'll need to run a script to get them: (cd .. && kaffeine/tools/update_l10n.sh)

How to build Kaffeine

Create an empty build directory and do the following steps:

# cmake <path/to/kaffeine/source/directory> <options>
# make
# make install

Useful options include:

  • -DCMAKE_BUILD_TYPE=<type> (Debug or Release)
  • -DCMAKE_INSTALL_PREFIX=<path> (installation prefix for Kaffeine, e.g. /usr)
  • -DBUILD_TOOLS=1 (also compile some tools needed by developers)

For further information look for generic KF5 / cmake instructions.

Remote Access and Kaffeine

Accessing Kaffeine remotely via X11/ssh/vnc can be a problem, as Qt5 will, by default, use hardware acceleration and DRI3.

There is a known bug, present on Fedora 23/24, and likely on other distros, at mesa-libGL/dri-drivers that cause it to wait forever when it is started from a X11 section. Such bug causes Kaffeine windows to not open:

A workaround is to start Kaffeine with:

LIBGL_DRI3_DISABLE=1 kaffeine

Another solution is to use a vnc server.

Still, libVLC will try to use hardware acceleration on the machine with Kaffeine, with obviously with won't work via the X11 protocol. For such scenarios, you may try to change the arguments passed to libVLC via the "Settings" --> "Configure Kaffeine" --> "libVLC", changing the libVLC arguments to:

--no-video-title-show -V xcb_glx

or:

--no-video-title-show -V xcb_xv

and re-start Kaffeine.

Homepage

https://www.kde.org/applications/multimedia/kaffeine/

Authors

KF5 port maintainer:

Maintainer:

Former maintainers:

  • Christoph Pfister
  • Christophe Thommeret
  • Jürgen Kofler

Files

Kaffeine uses the file scanfile.dvb with a list of known channels per locality and per Satellite (for DVB-S/S2).

The scanfile.dvb file is weekly updated when new patches are added to the Digital TV scan tables git tree.

When either new channels are added on some City, or when new Satellite beams are added, which are not available in Kaffeine, either use dvbv5-scan or w_scan to generate a new file (in the latter case, converted to the proper format using dvb-format-convert), and submit it to linux-media@vger.kernel.org, with the subject:

 [PATCH] dtv-scan-tables: some description

The new patch will be added to scanfile.dvb and the updated file will be available to be updated from the Internet in the Kaffeine application.

External Links

Kaffeine history

Kaffeine versions 0.x (KDE3 Version)

Originally, Kaffeine was written using KDE 3 and were maintained at SourceForge. Old versions of Kaffeine 0.x and 1.x are still available there.

The oldest available version there is Kaffeine 0.3.2, writen in 2003 by Jürgen Kofler. Later, Christophe Thommeret joined the efforts.

Kaffeine version 1.x (KDE4 Version

The latest Kaffeine release 0.x is a KDE3 application although it can be made to run under KDE4. Kaffeine versions 1.x are rewritten to use KDE4. On that time (April, 26 2009, with Kaffeine version 1.0-pre1), Kaffeine was migrated to kde.org, and it started being maintained by Christoph Pfister. On versions 1.3.x, the maintainership switched to Lasse Lindqvist.

The authors claimed that features in Phonon were required, although this was disputed by Aaron Seigo. See http://dot.kde.org/1166377123/1166385374/1166438293/ and http://hftom.free.fr/phpBB2/viewtopic.php?t=18.

KDE4 Version with OpenGL OSD

Some work had been done on a better on-screen display (OSD) using OpenGL. It was under development here http://websvn.kde.org/trunk/extragear/multimedia/kaffeinegl/. Such work sounded like some development testing to improve the interface rather than a full Kaffeine program.

Kaffeine version 2.0

In Jun, 2016, Mauro Carvalho Chehab annonced Kaffeine port to KF5 and started maintaining Kaffeine version 2.0, based on KF5/Qt5, libVLC and libdvbv5.