VDR mit DVB-T2 unter Debian

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (MPV)
K (zu VA-API im Wiki verlinkt)
 
Zeile 235: Zeile 235:
 
</pre>
 
</pre>
  
Welche Modi der Grafikchip per VA-API ohne Belastung der CPU ausgeben kann, erfährt man über vainfo. Das sieht ungefähr wie folgt aus:
+
Welche Modi der Grafikchip per [[VAAPI]] ohne Belastung der CPU ausgeben kann, erfährt man über vainfo. Das sieht ungefähr wie folgt aus:
 
<pre>
 
<pre>
 
vainfo
 
vainfo

Aktuelle Version vom 5. Oktober 2017, 21:13 Uhr

Inhaltsverzeichnis

[Bearbeiten] Überblick

Siehe auch VDR_mit_DVB-T2_zu_Fuss

DVB-T2 HD benötigt recht neue Systemkomponenten an Hard- und Software. Die USB- oder PCIe-Empfänger benötigen aktuelle Kernel, ebenso die für HEVC/ H.265 Decodierung notwendigen Grafikchips. Die Programmversionen von Debian Version 9 Stretch wurde vor dem Regelbetrieb von DVB-T2 HD festgelegt. Daher haben die notwendigen Pakete später in Debian Einzug gehalten und gelten aus Sicht von Debian als unstable bzw. testing (das muss nichts schlechtes bedeuten, gerade im Vergleich zu anderen Distributionen/ Betriebssystemen). Durch das Paketmanagement ist dies leicht zu installieren. Man braucht nur die Pakete dem APT zur Verfügung stellen.


[Bearbeiten] Quelle der Pakete für APT

Entweder hat man bereits die passende Debianversion (Buster, Sid) im Einsatz oder fügt die Paketliste hinzu (buster, sid, testing, unstable, experimental).

Bitte hierzu folgenden Artikel lesen: Dont Break Debian

Es ist zu prüfen, ob die Pakete entsprechend Prozessorarchitektur und Debianversion vorhanden sind: Debianpaketsuche

In meinem Fall ist Stretch im Einsatz und VDR ist in Sid in der passenden Version vorhanden.

/etc/apt/sources.list

deb http://ftp.de.debian.org/debian/ stretch main non-free
deb http://ftp.de.debian.org/debian/ buster main non-free
deb http://ftp.de.debian.org/debian/ sid main non-free

[Bearbeiten] Apt-Pinning

Um bei Stretch zu bleiben jedoch bei Bedarf auf aktuellere Komponenten zugreifen zu können, kann man die Vorlieben seinen Wünschen entsprechend wichten.

/etc/apt/preferences

Package: *
Pin: release n=stretch
Pin-Priority: 500

Package: *
Pin: release n=buster
Pin-Priority: 10

Package: *
Pin: release n=sid
Pin-Priority: 10

[Bearbeiten] Adapter für den DVB-T2 Empfang

Eine Sammlung von DVB-T2-fähigen USB Devices findet sich in https://www.linuxtv.org/wiki/index.php/DVB-T2_USB_Devices.

Ich habe erfolgreich in Betrieb genommen:

Hauppauge’s WinTV-soloHD

August DVB-T210

[Bearbeiten] Kernel aktualisieren

Die Geräte werden von aktuellen Kerneln unterstützt. Gern kann man den aktualisieren.

apt-cache search linux-image-4.1

apt install linux-image-4.12.0-1-amd64

[Bearbeiten] Firmware

Der Kernel bringt die Treiber für die Geräte mit. Idealerweise benötigt man keine Firmware. Oft ist die Firmware noch nachzuinstallieren. Welche geladen wurde oder fehlt steht im Journal.

journalctl | grep -i Firmware
…oder…
dmesg |grep -i Firmware

Eventuell findet man die fehlende Firmware in einem Debianpaket https://packages.debian.org/search?keywords=firmware-misc-nonfree . Dann installiert man dieses.

apt install firmware-misc-nonfree -t sid

Ansonsten lädt man sich die Firmware und kopiert diese ins Verzeichnis /lib/firmware https://github.com/OpenELEC/dvb-firmware/tree/master/firmware

Weitere Infos findet man u.a.:

* https://wiki.debian.org/Firmware
* https://www.linuxtv.org/wiki/index.php/Firmware

Übrigens ist Firmware in der Regel Closed Source und mit Vorsicht zu begegnen.

[Bearbeiten] VDR-Version mit HEVC-Support

VDR unterstützt HEVC seit Version 2.3.2. Mit Version 2.3.8 hat DVB-T2 HD mit HEVC in Debian Einzug gehalten. Großen Dank an den Maintainer Tobias Grimm!


[Bearbeiten] VDR-Version > 2.3. suchen

apt policy vdr

  Versionstabelle:
     2.3.8-1 10
         10 http://ftp.de.debian.org/debian sid/main amd64 Packages
     2.2.0-6+b1 500
        500 http://ftp.de.debian.org/debian stretch/main amd64 Packages
         10 http://ftp.de.debian.org/debian buster/main amd64 Packages

[Bearbeiten] VDR installieren

apt install vdr -t sid

[Bearbeiten] Kanalliste

Die Kanalliste ist wichtig, damit das Funksignal seinen Weg in den Computer findet.

[Bearbeiten] VDR anhalten

Ein laufender VDR kann schreibend auf die Kanalliste zugreifen, deshalb ist er anzuhalten. Nach vollendeten Anpassungen das Starten nicht vergessen!

service vdr stop
…bzw. …
service vdr start


[Bearbeiten] Kanalliste anpassen

Die channels.conf entsprechend Standort/ Sender vom Wiki nach /var/lib/vdr/channels.conf einfügen/ anpassen. Dabei kann man die Programme gleich sortieren und natürlich verschlüsselte oder obsolete Programme löschen. Für einige Standorte findet man hier im Wiki bereits aktuelle Kanallisten für DVB-T2 HD.

Channels.conf DVBT-De-Berlin-Brandenburg

Channels.conf DVBT-DE-Hessen-Rhein-Main-Gebiet

Channels.conf DVBT-DE-Sachsen-Leipzig

Channels.conf DVBT-DE-Sachsen-Anhalt-Halle

Channels.conf DVBT-DE-Sachsen-Anhalt-Wittenberg

[Bearbeiten] Kanalliste erstellen

Wenn für Region keine passende channels.conf vorhanden ist, hat man mehrere Möglichkeiten.

1. Ein Blick in eine vorhandene Datei aus benachbarten Sendern oder von gleicher Frequenz kann als Vorlage dienen. Beim Bündel der Programme vom ZDF sind nur die Frequenzen anzupassen (siehe Wikipedia DVB-T2-HD Sender und Frequenzliste), weil die anderen Werte für die DVB-T2 Sender gleich bleiben und somit für die gesamte BRD passen.

2. Es empfehlen sich 2 Programme:

- dvbv5-scan

- w-scan

[Bearbeiten] dvbv5-scan

Das Programm ist Teil eines Paketes, welches man bei Bedarf installiert.

apt install dvb-tools -t sid

dvbv5-scan benötigt eine Datei mit den zu durchsuchenden Frequenzen. Man kann eine von http://vdr-wiki.de/wiki/index.php/Initial-tuning-data#initial-tuning-data_f.C3.BCr_DVB-T nehmen und die Frequenzen entsprechend Wikipedia DVB-T2-HD Sender und Frequenzliste anpassen.

Das Programm kann eine channels.conf für VDR erstellen (leider ohne passende Transport-ID womit EPG-Informationen gesammelt werden könnten).

dvbv5-scan -O vdr -I channel initial-tuning-data -F -o /var/lib/vdr/channels.conf

[Bearbeiten] w-scan

Das Programm ist ab der Version von 2017 auf DVB-T2 HD vorbereitet. Somit sucht, findet und installiert man bei Bedarf die passende Version.

apt policy w-scan
  Versionstabelle:
     20170107-1 100
         10 http://ftp.de.debian.org/debian buster/main amd64 Packages
         10 http://ftp.de.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status
     20161022-1 500
        500 http://ftp.de.debian.org/debian stretch/main amd64 Packages

apt install w-scan -t sid

Wenn W_scan nach über 5 Minuten noch Schleifen dreht, kann man den Suchlauf mit Strg+C abbrechen.

[Bearbeiten] Transport-ID nachtragen

Sollten die EPG-Informationen fehlen (siehe dvbv5-scan), dann fehlt die Transport-ID / NID oder jene ist falsch (w_scan). In der channels.conf sind die vorletzte Spalte bzw. die davor (in der BRD ist die Original Network ID / ONID immer 8468) anzupassen. Wenn man die Consolenausgabe nach w_scan in eine Textdatei einfügt, kann man darin bequem nach den Angaben suchen.

grep transport_stream_id console.txt
        QAM_AUTO f = 498000 kHz I999B8C999D999T999G999Y999P0 (0:0:0) : updating transport_stream_id: -> (0:0:15106)
        QAM_AUTO f = 514000 kHz I999B8C999D999T999G999Y999P0 (0:0:0) : updating transport_stream_id: -> (0:0:16481)
        QAM_AUTO f = 530000 kHz I999B8C999D999T999G999Y999P0 (0:0:0) : updating transport_stream_id: -> (0:0:16433)
        QAM_AUTO f = 610000 kHz I999B8C999D999T999G999Y999P0 (0:0:0) : updating transport_stream_id: -> (0:0:14850)
        QAM_AUTO f = 586000 kHz I999B8C999D0T32G16Y0P0 (8468:12352:16392) : updating transport_stream_id: -> (8468:12352:14850)
        QAM_AUTO f = 650000 kHz I999B8C999D0T32G16Y0P0 (8468:12352:16436) : updating transport_stream_id: -> (8468:12352:16385)
        QAM_AUTO f = 650000 kHz I999B8C999D0T32G16Y0P0 (8468:12352:16436) : updating transport_stream_id: -> (8468:12352:16385)

Die letzte Zahl ist entsprechend der Frequenz in die vorletzte Spalte einzutragen.

[Bearbeiten] VDR Plugins

Um VDR mit Funktionen zu erweitern, installiert man zusätzliche Plugins.

Per Vnsi-server-plugin können auf Livedaten und Aufnahmen zugegriffen als auch gesteuert werden.

apt install vdr-plugin-vnsiserver -t sid

Durch das Streamdev-plugin steht eine einfache Weboberfläche, Playlisten, URL usw. zur Verfügung, um an Clients per Streaming die Daten weiter zu geben. Die Version von 2017 ist für o.g. VDR-Version notwendig, weil diese die Anpassungen für die aktuelle VDR-Version mit Unterstützung für DVB-T2 HD beinhaltet.

apt install vdr-plugin-streamdev-server -t sid

[Bearbeiten] VDR Streamclient

[Bearbeiten] Hardware

[Bearbeiten] Bild

Es empfiehlt sich, die Hardwarebeschleunigung des Grafikchips zu nutzen. Dadurch kommt man mit relativ einfacher, kostengünstiger, leiser, energiesparender Technik aus. Ansonsten ist zum Decodieren eine potente CPU nötig. HEVC#Hardware

Einige Grafikchips benötigen neben einem aktuellen Kernel noch zusätzlich Firmware.

apt install firmware-misc-nonfree -t sid (Intel Broxton/ Kabylake/ Skylake oder Nvidia)
apt install firmware-amd-graphics -t sid (AMD)

Welche Modi der Grafikchip per VAAPI ohne Belastung der CPU ausgeben kann, erfährt man über vainfo. Das sieht ungefähr wie folgt aus:

vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3
vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 1.7.3
vainfo: Supported profile and entrypoints
…
VAProfileHEVCMain : VAEntrypointVLD            <<<<--- HEVC sollte erwähnt sein
VAProfileHEVCMain : VAEntrypointEncSlice

[Bearbeiten] Ton

Ich habe beispielsweise Kodi auf einem Compute Stick STK1AW32SC basierend auf Cherry Trail SoC zur Ausgabe von Bild und Ton im Einsatz.

Da der Ton bei diesem Computer weder per USB oder PCI sondern nur per Low Power Engine (LPE) über High- Definition Multimedia Interface (HDMI) ausgegeben wird, benötigt man o.g. Kernel 4.12 und zusätzlich Firmware.

apt install firmware-intel-sound -t sid

Alle Fernsehprogramme der ARD senden den Ton im AAC-Format. Das ZDF hingegen in ATSC A/52b (entspricht Enhanced AC3 / EAC3 / Dolby Digital Plus/ DD+ / E-AC-3 / EC-3). Ausgewählte Sendungen werden mit digitalem Surround-Ton (5.1-Mehrkanalton) angeboten. Sollte der Ton gestört ausgegeben werden, dann kann man sich evtl. behelfen, indem man im Ton-Menü auf den Audiokanal mit der Bezeichnung "mis" bzw. "mul" (bei PHOENIX) bzw. "fra" (bei arte) ausweicht. Hier wird ein separater Stereo-Tonkanal für Audiodeskription (AD) angeboten. Gleichwohl ffmeg nicht notwendig sei, hat eine neue Version die Tonstörungen gelindert.

apt install ffmpeg -t sid

[Bearbeiten] ffplay

Mit dem Paket ffmpeg kommt gleich eine Wiedergabemöglichkeit über ffplay mit. Ohne Bildschirmtext den 3. Kanal kann wie folgt angezeigt werden (zum Beenden q oder ESC). Leider nutzt ffplay auf meinem System keine Beschleunigung der Grafikhardware.

ffplay -sn http://vdr:3000/3

[Bearbeiten] Kodi

Neben KODI ist noch die TV-Erweiterung für VDR zu installieren.

apt install kodi kodi-pvr-vdr-vnsi -t sid

Kodi ist aufgrund des Funktionsumfangs, der Hardwarebeschleunigung, der Erweiterbarkeit mein Favorit zur Wiedergabe.

[Bearbeiten] Gstreamer

Gstreamer bringt ein Konsolenwerkzeug zur Wiedergabe mit. Es nutzt auch die Hardwarebeschleunigung.

apt install gstreamer1.0
…
gst-launch-1.0 playbin uri=http://vdr:3000/1

[Bearbeiten] MPV

Als Alternative zum MPlayer kann MPV die Hardwarebeschleunigung nutzen.

apt install mpv
…
mpv -vo=vaapi -hwdec=vaapi http://vdr:3000/1

Für MPV gibt es auch grafische Oberflächen.

[Bearbeiten] VLC

Man kann auf die von VDR bereitgestellten Kanäle oder Aufnahmen zugreifen.

vlc http://vdr:3000/channels.m3u
vlc http://vdr:3000/recordings.m3u

VLC könnte an dem Gerät mit DVB-T2-Empfänger auch selbst die Programme wiedergeben.

vlc dvb-t2://frequency=498000000:bandwidth=8

VLC friert die Bildwiedergabe von DVB-T2 HD teilweise ein (Ton läuft weiter).

[Bearbeiten] Xine

Xine unterstützt ab Version 1.2.8 HEVC optimal.

apt policy libxine2
…
xine -V vaapi http://vdr:3000/1