VDR mit DVI/VGA
(→Closed Source nvidia-Treiber) |
|||
Zeile 104: | Zeile 104: | ||
Normalerweise muss man umständlich Modelines berechnen und unter ''Section Monitor'' einfügen, bei den Closed-Source-Treibern entfällt dieses nervige Prozedere jedoch. Es reicht die Angabe von Modes im Formate $HOEHEx$BREITE_$HZ": | Normalerweise muss man umständlich Modelines berechnen und unter ''Section Monitor'' einfügen, bei den Closed-Source-Treibern entfällt dieses nervige Prozedere jedoch. Es reicht die Angabe von Modes im Formate $HOEHEx$BREITE_$HZ": | ||
<b>Beispielauszug aus /etc/X11/xorg.conf</b> | <b>Beispielauszug aus /etc/X11/xorg.conf</b> | ||
− | <pre>Section "Screen" | + | <pre><small>Section "Screen" |
− | + | [...] | |
− | + | ||
− | + | ||
DefaultDepth 24 | DefaultDepth 24 | ||
Option "NoLogo" "True" # Wollen wir immer das Logo sehen? Nicht wirklich... | Option "NoLogo" "True" # Wollen wir immer das Logo sehen? Nicht wirklich... | ||
Zeile 114: | Zeile 112: | ||
Modes "1368x768_60" # 1368x768 bei 60 Hz | Modes "1368x768_60" # 1368x768 bei 60 Hz | ||
EndSubSection | EndSubSection | ||
− | EndSection</pre> | + | EndSection</small></pre> |
+ | Bitte beachten, dass der nvidia-Treiber nur Werte akzeptiert die durch 8 teilbar (wie 1360 oder 1368). | ||
+ | 1366 wie mit den nvidia-Treibern unter Windows geht zur Zeit noch nicht, ist aber angeblich für zukünftige Treiberversionen in der Planung. | ||
=== 50 Hz Problematik === | === 50 Hz Problematik === | ||
Mehr Information samt einer Gerädatenbank findet man unter [http://wiki.htpc-news.de/wiki/index.php?title=Fernseher] | Mehr Information samt einer Gerädatenbank findet man unter [http://wiki.htpc-news.de/wiki/index.php?title=Fernseher] | ||
+ | <b>Achtung:</b> nur wenn man sich sicher ist, dass das Display auch 50 Hz kann sollte man dies ausprobieren! | ||
Nur der CS-Treiber ist momentan in der Lage 50 Hz fähige Displays auch mit 50 Hz anzusteuern. | Nur der CS-Treiber ist momentan in der Lage 50 Hz fähige Displays auch mit 50 Hz anzusteuern. | ||
− | < | + | Dazu muss in der xorg.conf etwas ändern und hinzufügen |
+ | <pre><small> | ||
+ | Section "Monitor" | ||
+ | [...] | ||
+ | HorizSync 31.5 - 91.1 # exemplarisch, auf Herstellerangabe des Displays ändern! | ||
+ | VertRefresh 50.0 - 75.0 # exemplarisch, auf Herstellerangabe des Displays ändern! | ||
+ | Option "ExactModeTimingsDVI" "True" | ||
+ | [...] | ||
+ | EndSection | ||
+ | |||
+ | Section "Screen" | ||
+ | [...] | ||
+ | Option "ModeValidation" "AllowNon60HzDFPModes, NoDFPNativeResolutionCheck" | ||
+ | [...] | ||
+ | EndSection</small></pre> | ||
+ | Danach sollte man über ''Modes "1368x768_50"'' auch in der Lage sein das Display mit 50 Hz zu betreiben. | ||
+ | |||
=== Schwarze Ränder mit trotz nativer X-Auflösung === | === Schwarze Ränder mit trotz nativer X-Auflösung === |
Version vom 17. Mai 2007, 19:40 Uhr
Bei Röhren-TVs erfolgt(e) die Bildausgabe zumeist über FBAS bzw. SCART. Diese Art der Übertragung ist bei modernen Ausgabegeräten mit DVI-Anschluss (LCD/Plasma/Beamer) jedoch nicht optimal. Dieser Artikel beschreibt die notwendigen Schritte um einen VDR über DVI betreiben. Als Softwarebasis dient dabei exemplarisch c't VDR 6, es sollte aber auch mit anderen Distribution auf ähnlich Weise machbar sein.
Nach einer erfolgreichen Grundinstallation von c't VDR 6 installiert man auf der Konsole als root folgende Software (entfällt bei einer Server/Client-Lösung auf dem Server):
apt-get install xorg xineliboutput-sxfe
Wenn man sich bei Auswahl des Grafikkartentreibers nicht sicher ist, gibt man vesa an, ansonsten den Treiber der dem Grafikchip entspricht (z.B. nv = nVidia Open Source Treiber). Bei der Auswahl der möglichen Bildschirmauflösungen ist zumeist die native Auflösung nicht auswählbar (z.B. 1366x768), deshalb sollte man dort zunächst nur konservative Modi wie 800x600 oder 1024x768 auswählen, mit Hilfe von neuen Modelines in der /etc/X11/xorg.conf lässt sich dies aber beheben:
Beispiel-Auszug aus xorg.conf
Section "Monitor" [...] modeline "800x600@60" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync modeline "1360x768@60" 80.69 1360 1400 1504 1688 768 768 770 796 modeline "1366x768@60" 80.73 1366 1408 1504 1688 768 768 770 796 EndSection Section "Screen" [...] SubSection "Display" depth 24 virtual 1366 768 modes "1366x768@60" "1360x768@60" "800x600@60" EndSubSection EndSection
Inhaltsverzeichnis |
Standalone-Lösung: ein VDR mit FF/Budget-Karte(n)
Nach der Eingabe von
xinit -e vdr-sxfe -f xvdr:tcp://localhost
sollte man am DVI-Eingang das gewohnte Fernsehbild haben.
Server/Client-Lösung: ein VDR mit FF/Budget-Karte(n) + Client(s)
Am Server muss der streamdev-client installiert & konfiguriert sein bzw. werden:
apt-get install vdr-plugin-streamdev-server
Wichtig ist dabei besonders die Freigabe der IP des Client in der streamdevhosts.conf.
Beispiel-Auszug in der setup.conf
streamdev-server.AllowSuspend = 1 streamdev-server.HTTPBindIP = 0.0.0.0 streamdev-server.HTTPServerPort = 3000 streamdev-server.HTTPStreamType = 1 streamdev-server.MaxClients = 5 streamdev-server.ServerPort = 2004 streamdev-server.StartHTTPServer = 1 streamdev-server.StartServer = 1 streamdev-server.SuspendMode = 1 streamdev-server.VTPBindIP = 0.0.0.0
Am Client muss wie oben beschrieben xorg und xineliboutput-sxfe installiert und konfiguriert werden. Ausserdem benötigt man den Streamdev-client:
apt-get install vdr-plugin-streamdev-client
Beispiel-Auszug aus der setup.conf
streamdev-client.RemoteIp = <IP-des-VDR-Servers> streamdev-client.RemotePort = 2004 streamdev-client.StartClient = 1 streamdev-client.StreamFilters = 1 streamdev-client.SyncEPG = 1
Auch die Installation des epgsync-Plugins ist empfehlenswert. Danach kopiert man die channels.conf des Servers ins gleiche Verzeichnis des Client und restartet mit
/etc/init.d/vdr restart
Nach der Eingabe von
xinit -e vdr-sxfe -f xvdr:tcp://localhost
sollte einem dann ebenfalls ein Fernsehbild zur Verfügung stehen.
TODO
- video-Verzeichnis mit Aufnahmen vom Server einbinden
Tipps
Deinterlacing mit Hilfe von TVTime
In den VDR-Plugin-Einstellungen von xineliboutput wählt man als Methode TVTime. Es empfehlen sich 2 verschiedene Filter: Greedy 2 Frame bestes Ergebnis, aber selbst auf schnellen Rechnern Ruckler bei abrupten Szenenwechseln Linear Interpolation ebenfalls sehr gutes Bild, aber weniger empfindlich bei Bildwechseln als Greedy 2 Frame Wenn es die CPU zulässt sollte man den Cheap Mode deaktivieren. Das Aktivieren der Judder Correction bringt zumeist nur Tonstörungen. Chroma Filter bringt ausser erhöhter CPU-Last in normaler Entfernung zum TV keine sichtbare Bildverbesserung. Das FFMpeg Processing ist normalerweise nur auf Sendern mit extrem niedriger Bitrate sinnvoll (Glättung der Klötzchen ähnlich dem Postprocessing in VLC).
Automatischer Start von xinit/vdr-sxfe
Quick & Dirty Lösung: Nach der Eingabe von crontab -e folgende Zeile einfügen
@reboot xinit -e vdr-sxfe -f xvdr:tcp://localhost
und die Datei abspeichern, danach startet die Ausgabe bei jedem Bootup. Wer eine elegantere Lösung zum gleichzeitigen Start von vdr und vdr-sxfe hat, bitte einpflegen.
Closed Source nvidia-Treiber
Es gibt zwei verschiedene Treiber: einmal die Open-Source-Variante nv und den Closed-Source-Treiber nvidia. Der CS-Treiber empfiehlt sich, wenn man das Display möglichst pixelgenau und/oder mit 50 Hz Bildwiederholfrequenz betrieben werden soll. Ausserdem erleichtern die CS-Variante die Einstellung der Auflösung ohne umständliche Berechnungen von Modelines.
Installation
Zunächst benötigen wir etwas Entwicklungssoftware zum Einbinden des Treibers:
apt-get install linux-headers-2.6-486 build-essential xorg-dev
Nun muss ein Binär-Paket von NVIDIA heruntergeladen werden. Diese findet man unter [1], dementsprechend sollte man den wget-Aufruf auf die jeweils aktuelle Version anpassen. Danach muss die Datei noch ausführbar gemacht werden bevor man sie aufruft:
wget ftp://download.nvidia.com/XFree86/Linux-x86/1.0-9755/NVIDIA-Linux-x86-1.0-9755-pkg1.run chmod +x NVIDIA-Linux-x86-1.0-9755-pkg1.run ./NVIDIA-Linux-x86-1.0-9755-pkg1.run
Die Modifikation der xorg.conf kann man getrost dem Installer überlassen.
Vereinfachtes Einstellen der Bildschirmauflösung
Normalerweise muss man umständlich Modelines berechnen und unter Section Monitor einfügen, bei den Closed-Source-Treibern entfällt dieses nervige Prozedere jedoch. Es reicht die Angabe von Modes im Formate $HOEHEx$BREITE_$HZ": Beispielauszug aus /etc/X11/xorg.conf
<small>Section "Screen" [...] DefaultDepth 24 Option "NoLogo" "True" # Wollen wir immer das Logo sehen? Nicht wirklich... SubSection "Display" Depth 24 Modes "1368x768_60" # 1368x768 bei 60 Hz EndSubSection EndSection</small>
Bitte beachten, dass der nvidia-Treiber nur Werte akzeptiert die durch 8 teilbar (wie 1360 oder 1368). 1366 wie mit den nvidia-Treibern unter Windows geht zur Zeit noch nicht, ist aber angeblich für zukünftige Treiberversionen in der Planung.
50 Hz Problematik
Mehr Information samt einer Gerädatenbank findet man unter [2] Achtung: nur wenn man sich sicher ist, dass das Display auch 50 Hz kann sollte man dies ausprobieren! Nur der CS-Treiber ist momentan in der Lage 50 Hz fähige Displays auch mit 50 Hz anzusteuern. Dazu muss in der xorg.conf etwas ändern und hinzufügen
<small> Section "Monitor" [...] HorizSync 31.5 - 91.1 # exemplarisch, auf Herstellerangabe des Displays ändern! VertRefresh 50.0 - 75.0 # exemplarisch, auf Herstellerangabe des Displays ändern! Option "ExactModeTimingsDVI" "True" [...] EndSection Section "Screen" [...] Option "ModeValidation" "AllowNon60HzDFPModes, NoDFPNativeResolutionCheck" [...] EndSection</small>
Danach sollte man über Modes "1368x768_50" auch in der Lage sein das Display mit 50 Hz zu betreiben.
Schwarze Ränder mit trotz nativer X-Auflösung
Im Gegensatz zum nv-Treiber hat der nvidia-Treiber im Zusammenspiel mit Xine offenbar Schwierigkeiten bei der Berechnung des richtigen Seitenverhältnisses auf 16:9/16:10. Hier hilft die Angabe von --aspect=16:9 oder --aspect=16:10:
xinit -e vdr-sxfe --aspect=16:9 -f xvdr:tcp://localhost
Die zusätzliche Angabe der Auflösung in Form von --width=$BREITE --height=$HÖHE kann ebenfalls hilfreich sein.