C't-VDR - Analoges 5.1 Boxensystem an einer Soundkarte

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Ziel dieser Anleitung ist es Audio, Stereo und AC3 über die Soundkarte zu hören.

Heute werden zumeist Filme in Dolby Digital 5.1 Format ausgestrahlt. Das übrige Programm ist im Dolby Digital 2.0 Format zu empfangen.

Wer sich über die verwendeten Tonverfahren informieren will und verstehen möchte warum manchmal Stereo auch DD ist findet hierentsprechende weiterführende Hinweise.

Das System das als Beispiel beschrieben wird besteht aus einem ASUS Board A7V600-x mit integrierte Soundkarte VIA 8237 und einer DVB-S Karte Version 1.3.

Installiert sind c't VDR4 vdrdevel inzwischen 1.3.37-2 Kernel 2.6.12-rc4-ct-2.

Es gibt im VDR-Portal zwei Beiträge die sich mir der Firmware und AC3 beschäftigen siehe hier

  1. HOWTO : AC3 mit Firmware, bitstreamout oder AC3overDVB
  2. AV7110 Firmware mit RICHTIGES LiveAC3

Anbei eine kurze Zusammenfassung für das updaten der Firmware:

Wie sehe ich welche Firmware Version ich jetzt installiert habe.

grep " app " /var/log/messages
Jan  6 11:18:42 vdr-dev kernel: dvb-ttpci: info @ card 1: firm f0240009, rtsl b0250018, vid 71010068, app 8000261d

Bei "app" wird als erstes ein "c0" oder "80" angezeigt. "c0" ist bei 4MB Karten und "80" ist 2MB, die letzten vier zahlen geben die Firmwareversion an hier 2621d.

Die neuste Version ist unter zu finden

Im großen ganzen beschränkt es sich darauf die alte datei dvb-ttpci-01.fw zu finden und durch die neue zu ersetzen.

cd /usr/lib/hotplug/firmware
mv dvb-ttpci-01.fw dvb-ttpci-01.fw.ORG
wget http://www.linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-2622
mv dvb-ttpci-01.fw-2622 dvb-ttpci-01.fw

Das klappt aber nur ohne weiteres wenn der Kernel den Treiber per hotplug nachlädt.

Das bei der beschriebenen Version c't VDR4 vdrdevel 1.3.37-2 Kernel 2.6.12-rc4-ct-2 der Fall ist

grep " app " /var/log/messages
Jan  6 12:37:36 vdr-dev kernel: dvb-ttpci: info @ card 1: firm f0240009, rtsl b0250018, vid 71010068, app 80002622

Der unter beschriebene AC3 Test kann allerdings erst nach allen Installationsschritte zum Schluss erfolgen.

AC3 Test

So jetzt muß man nur noch im VDR Setup unter "DVB" die Einstellung "Dolby Digital Ton benutzen" auf "Ja" setzen und dann kann getestet werden.

Wenn ihr jetzt auf Pro7 umschaltet ohne Dolby Digital an zu haben und dann mit "Menu", "Grün" auf DolbyDigital umschaltet dann sollte der Ton umgeschaltet werden ohne das das Bild dazwischen schwarz geschaltet wird. Sollte dies vorkommen dann nutzt ihr noch den Transfermode! Bitte noch mal kontrollieren das der Treiber der richtige ist und die Firmware ebenfalls. Wenn kein schwarz-schalten vorkam dann seid ihr am ziel.



Es sind vier Schritte notwendig um zum Ergebnis, das die Soundkarte den AC3 Ton wiedergibt, zu kommen:

  1. Treiber installieren, damit das System die Soundkarte erkennt und sie benutzt werden kann.
  2. Den AC3 Ton von der DVB-S Karte an die Soundkarte weiterreichen
  3. Den Stereo Ton, der direkt auf einer FF Karte dekodiert wird zur Soundkarte durchreichen.
  4. Plugin installieren damit beides über die Lautstärkeregler einstellbar ist.


Voraussetzungen:

  • Soundkarte die von den ALSA Treibern unterstützt wird, hier kann man nachschauen.
  • Kernel 2.6 ist wichtig da dort schon die ALSA Treiber integriert sind, auch die neuste Firmware für die DVB-S Karten. Wie man den Kernel 2.6 für c't VDR4 bekommt steht hier.
  • Schritt 1
apt-get install alsa

damit werden folgende Pakete installiert alsa-base alsa-utils

alsaconf
alsaconf









alsaconf ausführen dort wird mit einem Skript die vorhandene Soundkarte ermittelt und eingerichtet. Es sollte eine Soundkarte vorhanden sein die von den ALSA Treibern unterstützt wird (siehe oben Voraussetzungen).

Nachdem die Karte erkannt und eingerichtet wurde kann man folgende Tests durchführen:

cat /proc/asound/cards
0 [V8237 ]: VIA8237 - VIA 8237
VIA 8237 with AD1888 at 0xe000, irq 201

und

cat /proc/asound/devices
17: [0- 1]: digital audio playback
25: [0- 1]: digital audio capture
16: [0- 0]: digital audio playback
24: [0- 0]: digital audio capture
0: [0- 0]: ctl
33: : timer

um den ultimativen Test durchzuführen -- Rauschen an den Lautsprechern ausgeben,

cat /dev/urandom > /dev/dsp

dazu müssen die Lautsprecher angeschlossen sein. Dies kann von Board zu Board unterschiedlich sein, dazu bitte das zugehörige Manual zu Rate ziehen. Bei dem ASUS Board A7V600-x ist das so gelöst.

Connector     2-Speaker          4-Speaker                 6-Speaker
Light Blue    Line in             Line in                  Bass/Center
Lime          Line Out       Front Speaker Out          Front Speaker Out
Pink          Mic in         Rear Speaker Out           Rear Speaker Out 

das funktioniert im normal Fall nicht da die Karte auf Mute geschaltet ist, also alsamixer aufrufen

alsamixer
alsamixer








und den Master freischalten (m toggel, MM=Mute X=An) dann sollte ein Rauschen zu hören sein. Hier kann man auch mit dem ALSAmixer die einzelnen Lautsprecher testen einfach ein und aus schalten, Lautstärke hoch und runter. Jetzt haben wir den ersten Schritt getan die Soundkarte funktioniert jetzt müssen wir ihr beibringen den AC3 Ton von der DVB-S Karte zum hören zu bringen.

  • Schritt 2

Soll nicht nur für Aufzeichnungen sondern auch während des Livebildes der AC3-Stream dekodiert werden, muss der VDR mit dem AC3overDVB gepatcht werden.

Die Sourcen von ac3dec befinden sich in den ALSA-Tools.

tar xfj alsa-tools-1.0.x.tar.bz2
cd alsa-tools-1.0.x/ac3dec
./configure

Wenn man noch nicht die notwendigen Werkzeuge, für das Übersetzen installiert hat, findet man hier entsprechende Hilfe:


Für die Ausgabe von DD 2.0 auf dem 5.1-Kanalsystem ist noch folgender Patch ac3dec.diff.bz2 notwendig:

tar xvj ac3dec.diff.bz2
patch -p1 < ac3dec.diff

Jetzt noch die Sourcen übersetzen und das Binary kopieren.

make
cp ac3dec /usr/local/bin

so jetzt nur noch ac3dec in die Startsequenz des vdr einbinden, in runvdr oder runvdrdevel.

// Achtung, bei meiner ctvdr version,wird der Parameter in /etc/default/vdr übergeben

Suchen mit

which runvdrdevel oder which runvdr je nachdem welche vdr Version man benützt.

/usr/sbin/runvdrdevel 

öffnen der Datei mit einem beliebigen Editor und in der dritten Zeile folgenden Eintrag hinzufügen

-a '/usr/local/bin/ac3dec -6'

das sieht dann so aus

#!/bin/bash -p

OPTIONS="$*"
VDRCMD="/usr/bin/vdrdevel -a '/usr/local/bin/ac3dec -6' $OPTIONS"

Wichtig: Der Eintrag muss genau so erfolgen wenn ein Leerzeichen vergessen wird, gibt es keinen Ton, am besten kopieren

Wichtig ist auch, dass vdr der Gruppe Audio angehört.

addgroup vdr audio

Wenn ein neues Update des vdr oder vdrdevel eingespielt wird muss der Eintrag neu erstellt werden.

Bevor neu geboote wird sollten folgende Einstellungen durchgeführt werden:

Im OSD Menü (oder im DVB Menü) unter Einstellungen -- DVB DD Ton aufzeichnen und Replay DD auf ja zu setzen.

  • Schritt 3

Jetz muss nur noch der Stereo Ausgang der DVB-S Karte mit der Soundkarte verbunden werden dazu gibt es zwei Möglichkeiten

  1. Verbinden des Audio Ausgangs der DVB-S mit dem Linie In Eingang der Soundkarte.
  2. Verbinden des internen Audio Ausgangs der DVB-S Karte mit einem internen Audioeingang der Soundkarte z.B. CD in
Audio Ausgang DVB-S karte








Ich habe die zweite Möglichkeit gewählt da alle Ausgänge durch das 5:1 Boxensystem belegt sind.

  • Schritt 4

Bei Umschalten zwischen den Kanälen (zwischen Sendern die AC3 senden und solchen die nur Stereo senden) wird man folgende Probleme haben.

  1. Kanäle mit AC3 lassen sich nicht mit der Lautstärkereglung des VDR beeinflussen
  2. Unterschiedliche Lautstärke zwischen AC3 und Stereo je nach dem wie man den alsamixer eingestellt hat.

Dazu gibt es folgende Abhilfe, das Avolctl-plugin.

Diese Plugin legt die benötigten Kanäle des Alsamixers auf den VDR Lautstärkeregler, mit ein bisschen ausprobieren findet man die optimalen Einstellungen.

apt-get install vdrdevel-plugin-avolctl

So als letztes steht noch das abspielen von DVD auf dem Wunschzettel. Dies funktioniert mit den vorgestellten Einstellungen.

So jetzt allen einen schönen Hörgenuss!