C't-VDR - Analoges 5.1 Boxensystem an einer Soundkarte
Aus VDR Wiki
Ziel ist es das Kompletten 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
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:
- Treiber installieren, damit das System die Soundkarte erkennt und sie benutzt werden kann.
- Den AC3 Ton von der DVB-S Karte an die Soundkarte weiterreichen
- Den Stereo Ton, der direkt auf einer FF Karte decodiert wird zur Soundkarte durchreichen.
- 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 ausführen dort wird mit einem Script 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 Board 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
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 ensprechende Hilfe:
- Debian_-_mit_2.6.9er_/_2.6.10er_Kernel_für_VDR_aufsetzen#Grundinstallation Debian
- c't-VDR-Projekt bei heise.de
Für die Ausgabe von DD 2.0 auf dem 5.1-Kanalsystem ist noch folgender Patchnotwendig:
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
- Verbinden des Audio Ausgangs der DVB-S mit dem Linie In Eingang der Soundkarte.
- Verbinden des internen Audio Ausgangs der DVB-S Karte mit einem internen Audioeingang der Soundkarte z.B. CD in
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 sollchen die nur Stereo senden) wird man folgende Probleme haben.
- Kanäle mit AC3 lassen sich nicht mit der Lautstärkereglung des VDR beeinflussen
- 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 bischen 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!