MPlayer unterstützt Karten mit dem Siemens-DVB-Chipsatz von Herstellern wie Siemens, Technotrend, Galaxis oder Hauppauge. Die neuesten DVB-Treiber gibt's auf der Linux TV-Seite. Wenn du Transcodierung in Software machen willst, dann brauchst du eine CPU mit mindestens 1GHz.
configure
sollte automatisch deine DVB-Karte erkennen. Wenn
es das nicht tut, dann erzwinge DVB-Unterstützung mit
./configure --enable-dvb
Wenn die ost-Headerdateien nicht an ihrem normalen Platz liegen, dann gib explizit den Pfad zu ihnen an mit:
./configure --extra-cflags=DVB-Source-Verzeichnis
/ost/include
Dann compiliere und installiere wie sonst auch.
GEBRAUCH. Hardwaredecodierung von Streams, die MPEG-1/2 Video und/oder MPEG-Audio enthalten, geschieht mit diesem Kommando:
mplayer -ao mpegpes -vo mpegpes Datei.mpg|vob
Decodierung jeder Art Videostream verlangt Transcodierung zu MPEG-1, daher ist es langsam und den Ärger möglicherweise nicht wert, vor allem, wenn dein Computer langsam ist. Es kann folgenderweise gemacht werden:
mplayer -ao mpegpes -vo mpegpesDateieDatei.ext
mplayer -ao mpegpes -vo mpegpes -vf expandDateieDatei.ext
Beachte, dass DVB-Karten nur bestimmte Bildhöhen unterstützen:
288 und 576 für PAL und 240 und 480 für NTSC. Du
musst das Bild vorher skalieren, wenn
die Höhe nicht einer der oben erwähnten entspricht:
-vf scale=width:height
. DVB-Karten
unterstützen eine Vielzahl horizontaler Auflösungen wie z.B.
720, 704, 640, 512, 480, 352 etc. Sie machen Hardwareskalierung in horizontaler
Richtung, sodass du meist nicht in horizontaler Richtung skalieren musst.
Bei einem 512x384-MPEG4 (DivX) (Verhältnis 4:3) kannst du folgendes probieren:
mplayer -ao mpegpes -vo mpegpes -vf scale=512:576
Wenn du einen Breitwandfilm hast und du ihn nicht auf die volle
Höhe skalieren möchtest, dann kannst du den expand=w:h
-Filter
benutzen, um schwarze Balken hinzuzufügen.
Um ein 640x384-MPEG4 (DivX) anzuschauen:
mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 Datei.avi
Wenn deine CPU für 720x576-MPEG4 (DivX) zu langsam ist, dann skaliere herunter:
mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 Datei.avi
Wenn sich die Geschwindigkeit nicht verbessert, dann skaliere auch in vertikaler Richtung:
mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 Datei.avi
Für ein OSD und Untertitel kannst du das OSD-Feature des expand-
Filters benutzen. Anstelle von expand=w:h
oder
expand=w:h:x:y
benutzt du dafür
expand=w:h:x:y:1
(der fünfte Parameter :1
schaltet die OSD-Anzeige an). Eventuell willst du das Bild ein wenig nach
oben schieben, um unten mehr Platz für die Untertitel zu haben.
Vielleicht willst du auch die Untertitel hochschieben, wenn sie ansonsten
außerhalb des sichtbaren Bereiches des Fernsehers liegen. Das kannst du mit
-subpos <0-100>
erreichen, wobei
-subpos 80
meistens eine gute Wahl darstellt.
Um Filme mit weniger/mehr als 25 Frames pro Sekunde auf einem
PAL-Fernseher abzuspielen, oder wenn du eine langsame CPU hast,
verwende die Option -framedrop
.
Um das Höhen-/Breitenverhältnis des MPEG-4 (DivX) beizubehalten und trotzdem die optimalen Skalierungsparameter zu verweden (Hardwareskalierung in horizontaler Richtung und Softwareskalierung in vertikaler Richtung unter Beibehaltung des richtigen Höhen-/Breitenverhältnisses), benutze den neuen dvbscale-Filter:
for a 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
Digitales TV (DVB-Input-Modul). Du kannst deine DVB-Karte zum Ansehen digitalen TVs verwenden.
Du solltest die Programme scan und szap/tzap/czap/azap installiert haben; sie sind alle im Treiberpaket enthalten.
Überprüfe, ob die Treiber sauber mit dem Programm wie etwa dvbstream arbeiten (das ist die Basis des DVB-Input-Moduls).
Jetzt solltest du eine Datei ~/.mplayer/channels.conf
mit der von szap/tzap/czap/azap Syntax compilieren oder
es von scan für dich compilieren lassen.
Hast du mehr als einen Kartentyp (z.B. Satellit, Antenne, Kabel und ATSC),
kannst du deine Kanaldateien als
~/.mplayer/channels.conf.sat
,
~/.mplayer/channels.conf.ter
,
~/.mplayer/channels.conf.cbl
,
und ~/.mplayer/channels.conf.atsc
respektive
speichern, um MPlayer unbedingt darauf
hinzuweisen, eher diese Dateien zu verwenden als
~/.mplayer/channels.conf
,
und du musst angeben, welche Karte du verwendest.
Stelle sicher, dass du nur frei ausgestrahlte
Kanäle in deiner Datei channels.conf
hast, oder
MPlayer wird auf eine unverschlüsselte
Übertragung warten.
In deinen Audio- und Videofeldern kannst du eine erweiterte Syntax
anwenden:
...:pid[+pid]:...
(für ein Maximum von 6 pids bei
jedem); in diesem Fall wird MPlayer
alle gezeigten pids enbinden, plus pid 0 (welche das PAT enthält).
Binde ruhig in jede Spalte die PMT pid für den
korrespondierenden Kanal ein (falls du ihn kennst).
Du kannst auch 8192 angeben; dies wird alle pids auf dieser Frequenz wählen,
und du kannst dann zwischen ihnen mit TAB wechseln.
Das mag mehr Bandbreite benötigen, billige Karten übertragen jedoch
alle Kanäle zumindest bis zum Kernel, daher macht es für diese keinen
großen Unterschied.
Andere mögliche Anwendungen sind: televideo pid, zweiter Audio-Track, etc.
Wenn sich MPlayer regelmäßig über
Zu viele Audiopakete im Puffer
beschwert oder
wenn du eine zunehmende Desynchronisation zwischen Ton und Video feststellst,
versuche den MPEG-TS-Demuxer von libavformat zu verwenden, indem du
-demuxer lavf -lavfdopts probesize=128
der Kommandozeile hinzufügst.
Um den ersten der in deiner Liste vorhandenen Kanäle anzuzeigen, führe folgendes aus
mplayer dvb://
Willst du einen bestimmten Kanal wie z.B. R1 ansehen, führe dies aus
mplayer dvb://R1
Hast du mehr als eine Karte, musst du die Nummer der Karte, in der der Kanal zu sehen ist (z.B. 2), mit dieser Syntax angeben:
mplayer dvb://2@R1
Um Kanäle zu wechseln, drücke die Tasten h (nächster) und k (vorheriger) oder verwende das OSD-Menü.
Wenn deine ~/.mplayer/menu.conf
einen Eintrag
<dvbsel>
enthält, wie der in der Beispieldatei
etc/dvb-menu.conf
(die du zum Überschreiben der
~/.mplayer/menu.conf
nutzen kannst), wird das Hauptmenü
einen Untermenüeintrag anzeigen, der dir die Wahl des Kanal-Presets in deiner
channels.conf
erlaubt, womöglich gefolgt von einem
Menü mit der Liste der verfügbaren Karten, falls mehr als eine
von MPlayer genutzt werden kann.
Willst du ein Programm auf die Festplatte speichern, nimm
mplayer -dumpfile r1.ts -dumpstream dvb://R1
Willst du ihn statt dessen in einem anderen Format aufnehmen (ihn neu encodieren), kannst du einen Befehl wie diesen ausführen
mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1
Lies dir in der Manpage eine Liste von Optionen durch, die du an das DVB-Input-Modul übergeben kannst.
AUSBLICK. Wenn du Fragen hast oder an der Diskussion über zukünftige Features teilnehmen willst, dann melde dich bei unserer MPlayer-DVB Mailingliste an. Denk bitte daran, dass dort Englisch gesprochen wird.
Für die Zukunft kannst du mit der Möglichkeit, das OSD und die Untertitel mit den eingebauten Funktionen der DVB-Karten anzuzeigen, mit flüssigerer Wiedergabe von Filmen mit weniger/mehr als 25 Bildern pro Sekunde und mit Echtzeit-Transcodierung zwischen MPEG-2 und MPEG-4 (partielle Dekompression) rechnen.
MPlayer unterstützt hardwarebeschleunigte Wiedergabe mit der Creative DXR2-Karte.
Zuerst brauchst du einen richtig installierten DXR2-Treiber. Du kannst die Treiber und Installationshinweise im DXR2 Resource Center finden.
GEBRAUCH
-vo dxr2
Aktiviere TV-Ausgabe.
-vo dxr2:x11
oder -vo dxr2:xv
Aktiviere Overlay-Ausgabe unter X11.
-dxr2 <option1:option2:...>
Diese Option wird zur Kontrolle des DXR2-Treiber verwendet.
Der auf DXR2 genutzte Overlay-Chipset ist von sehr schlechter Qualität, die Standardeinstellungen sollten aber bei jedem funktionieren. Das OSD kann eventuell mit Overlay genutzt werden (nicht bei TV), indem es im colorkey eingetragen wird. Mit den Standardeinstellungen des colorkey bekommst du evtl. unterschiedliche Ergebnisse, gewöhnlich wirst du den colorkey rund um die Zeichen sehen oder einige anderen lustigen Effekte. Aber wenn du die colorkey-Einstellungen korrekt anpasst, solltest du in der Lage sein, akzeptable Resultate zu erzielen.
Lies bitte in der Manpage über die vorhandenen Optionen.
MPlayer unterstützt die hardwarebeschleunigte Wiedergabe mit den Karten Creative DXR3 und Sigma Designs Hollywood Plus. Beide Karten basieren auf dem em8300-MPEG-Decoderchip von Sigma Designs.
Als erstes brauchst du korrekt installierte DXR3/H+-Treiber, Version
0.12.0 oder neuer. Diese Treiber und weitere Installationsanweisungen findest
du auf der Seite
DXR3 & Hollywood Plus for Linux.
configure
sollte die Karte automatisch
finden. Die Compilierung sollte auch problemlos funktionieren.
GEBRAUCH
-vo dxr3:prebuf:sync:norm=x:device
overlay
aktiviert das Overlay anstelle des TV-Ausgangs.
Dafür brauchst du ein korrekt konfiguriertes Overlaysetup. Am einfachsten
konfigurierst du das Overlay mit dem Tool autocal
.
Starte danach MPlayer mit dxr3-Ausgabe und
ohne Overlay anzuschalten. Starte dxr3view
. Mit dxr3view
kannst du die Overlay-Einstellungen verändern und siehst die
Auswirkungen sofort. Eventuell wird dieses Feature irgendwann vom
MPlayer-GUI unterstützt. Wenn du das Overlay richtig
eingestellt hast, brauchst du dxr3view nicht mehr laufen zu lassen.
prebuf
schaltet Prebuffering ein. Das ist ein Feature des
em8300-Chips, das es ihm ermöglicht, mehr als nur ein Bild
gleichzeitig zu speichern. Das bedeutet, dass MPlayer
in diesem Modus versucht, den Puffer ständig mit Daten gefüllt zu halten.
Wenn du einen langsamen Rechner hast, dann wird MPlayer
wahrscheinlich die meiste Zeit über knapp oder genau 100% der CPU-Zeit belegen.
Das ist vor allem dann der Fall, wenn du echte MPEG-Streams (z.B. DVDs, SVCDs etc.)
abspielst, da MPlayer nicht nach MPEG encodieren muss
und den Puffer sehr schnell wird füllen können.
Mit Prebuffering ist die Videowiedergabe viel weniger anfällig gegenüber anderen CPU-intensiven Programmen. Frames werden nur dann verworfen, wenn eine andere Anwendung für eine sehr lange Zeit die CPU belegt.
Wenn kein Prebuffering verwendet wird, dann ist der em8300 viel
anfälliger gegenüber CPU-Last. Somit wird dringend empfohlen,
MPlayers -framedrop
-Option zu verwenden, um die A/V-Sync
zu erhalten.
sync
aktiviert die neue sync-Methode. Dieses Feature ist
momentan noch experimentell. Bei dieser Methode beobachtet MPlayer
ständig die interne Uhr des em8300-Chips. Weicht diese von
MPlayers Uhr ab, so wird die des em8300-Chips zurückgesetzt,
sodass dieser alle Frames verwirft, die hinterherhängen.
norm=x
setzt den TV-Standard der DXR3-Karte, ohne dafür
externe Programme wie em8300setup zu benötigen.
Gültige Werte sind 5 = NTSC, 4 = PAL-60, 3 = PAL. Spezielle Standards
sind 2 (automatische Erkennung mit PAL/PAL-60) und 1 (automatische
Erkennung für PAL/NTSC), da sie den Standard in Abhängigkeit
der FPS des Films setzen. norm = 0 (Standard) ändert
den momentan eingestellten TV-Standard nicht.
= Gerätenummer wählt die zu
verwendene em8300-Karte, falls du mehrere davon hast.
device
Jede dieser Optionen kann auch weggelassen werden.
:prebuf:sync
scheint sehr gut zu funktionieren, wenn du DivX
abspielst. Es gab Berichte von Leuten, die Probleme mit prebuf
bei der Wiedergabe von MPEG1/2-Dateien hatten. Du
solltest es also zuerst ohne Optionen probieren. Wenn du Sync-Probleme
hast, dann probier :sync
aus.
-ao oss:/dev/em8300_ma-X
Audioausgabe, wobei X
die Gerätenummer ist
(0 bei nur einer Karte).
-af resample=xxxxx
Der em8300 kann keine Sampleraten niedriger als 44100Hz abspielen.
Wenn die Samplerate weniger als 44100Hz beträgt, dann wähle
44100Hz oder 48000Hz, je nachdem, welche davon besser passt. Beispiel:
Wenn der Film 22050Hz benutzt, dann wähle 44100Hz, da 44100 / 2 =
22050 ist. Bei 24000Hz nimmst du 48000Hz etc. Das funktioniert nicht mit
der digitalen Audioausgabe (-ac hwac3
).
-vf lavc
Wenn du Nicht-MPEG-Filme mit dem em8300 ansehen möchtest (z.B.
DivX oder RealVideo), dann musst du einen MPEG1-Videofilter wie
libavcodec
(lavc) verwenden.
Momentan gibt es keine
Möglichkeit, die Anzahl der Bilder pro Sekunde des em8300 zu setzen,
was bedeutet, dass sie fest bei 29.97 liegt. Aus diesem Grund solltest du
-vf lavc=
verwenden,
besonders dann, wenn du auch Prebuffering verwendest. Warum aber 25
und nicht 29.97? Tja, die Sache ist, dass das Bild bei 29.97 unruhig
wird. Wir wissen leider nicht, warum das so ist. Wenn du Werte zwischen
25 und 27 benutzt, dann wird das Bild stabil. Momentan können wir das
nur als gegeben hinnehmen.
quality
:25
-vf expand=-1:-1:-1:-1:1
Obwohl der DXR3-Treiber ein OSD über das MPEG1-/2-/4-Video projezieren kann, ist es qualitativ deutlich schlechter als MPlayers traditionelles OSD, und es hat diverse Probleme mit der Erneuerung der Anzeige. Der oben angegebene Befehl konvertiert das Video erst nach MPEG4 (das ist leider erforderlich) und wendet dann den expand-Filter an, der zwar das Bild nicht vergrößert (-1: = Standardwerte) aber dafür das normale OSD auf das Bild stanzt (die "1" am Ende).
-ac hwac3
Der em8300 unterstützt die Audiowiedergabe von AC3-Streams
(Surroundsound) über den digitalen Ausgang der Karte. Schau oben bei
der Option -ao oss
nach. Sie muss angegeben werden, um den
DXR3-Ausgang anstelle der Soundkarte anzugeben.