Erweiterte Einstellungen
Was jetzt aber vorkommen kann, ist, dass ein Sender ziemlich kräftig ruckelt. Das Liegt meist daran, dass der Empfang nicht so gut ist. „Feintuning“ am Empfang ist bei DVB-T unnötig, da es eben, wie der Name schon sagt, Digital ist: Entweder man hat Empfang, oder man hat keinen.
Was allerdings geht, ist, mit der Antenne herumzuprobieren. Machmal reicht es auch schon, die Antenne um 90 Grad zu neigen. Falls nicht: Andere Antenne ausprobieren. Kleinere diesbezügliche Probleme lassen sich zudem recht einfach mittels MPlayer selbst beheben, indem man einfach den Cache verwendet.
mplayer dvb://ZDF -cache 30720 -cache-min 5
… sorgt dafür, dass MPlayer einen 30720 Kilobyte (30 Megabyte) großen Cache verwendet, aus dem es den Stream abspielt. „-cache-min“ bestimmt dabei, zu wie viel Prozent der Cache mindestens gefüllt sein muss, bevor MPlayer mit dem Abspielen startet. Je nach verwendetem „-cache“-Wert und dem Mindest-Prozentsatz, sowie der vom Sender verwendeten Datenrate dauert es einige Sekunden bis hin zu einigen Minuten, bis der Stream startet.
Fernsehbilder werden aus zwei Halbbildern zusammengesetzt, daher kann es bei DVB-T am Computer vorkommen, dass man diese beiden Halbbilder auch sieht. Was man da benötigt, nennt sich Deinterlacing, und beschreibt nichts weiter, als eine Technik, die beiden Halbbilder „zusammenzuführen“. Auch hierzu bietet MPlayer diverse Optionen.
Der Deinterlacing-Filter von MPlayer wird mittels Videofilter aktiviert und verwendet. Mittels „mplayer -pphelp“ gibt es eine sehr ausführliche Liste diesbezüglich, wer weitere Informationen möchte ;) Alle anderen können auf die MPlayer-Eigenen Filterkombinationen-Kürzel zurückgreifen, die da wären …
- fa, für eine schnelle Filterkombination
- de, für eine Standardkombination an Filtern
- und ac für eine hochqualitative Filterkombination
Ein Beispiel-Aufruf von ZDF mit gutem Filter, 10 Megabyte Cache, der zu 50 Prozent gefüllt sein muss, sieht also so aus
mplayer dvb://ZDF -fv pp=ac -cache 10240 -cache-min 50
Je nach Filterkombination wird die CPU entsprechend Stark belastet und eventuell der Lüfter auf touren gebracht. Auch das kann man Vermeiden, wenn man tatsächlich nur Fernsehen will. Einfach „nice“ verwenden. Der Linux-Befehl sorgt dafür, dass das angegebene Programm mit einer anderen Priorität läuft, wobei 19 der Maximalwert ist. Je höher der Wert, um so weniger Priorität bekommt das Programm.
Der ZDF-Aufruf sieht nun also so aus:
nice 19 mplayer dvb://ZDF -fv pp=ac -cache 10240 -cache-min 50
Nun verfügt nicht jeder über einen Hochleistungsrechner (auch wenn dieser für MPlayer nicht nötig ist, so kann es doch sein, dass die Ressourcen hart ausgenutzt werden), und MPlayer könnte beim Fernsehen – in der Shell – Fehlermeldungen ausgeben, dass die Hardware zu schwach sei. Dies kann durch die Verwendung eines ressourcenschonenderen Ausgabecodec meist verhindert werden.
Wenn wir zum Beispiel ffmpeg zur Ausgabe verwenden müssen, müssen wir dem Aufruf „-vfm ffmpeg“ hinzufügen. „-vfm“ definiert eine Prioritätsliste für Ausgabecodecs. Weitere Hinweise zur Verwendung gibt die Manpage von MPlayer. Unser Aufruf sieht nun also so aus:
nice 19 mplayer dvb://ZDF -fv pp=ac -vfm ffmpeg -cache 10240 -cache-min 50
Wenn ihr gerne und viel Screenshots aus dem laufenden Programm macht – was ja durchaus ein interessantes Hobby sein kann *g* – müsst ihr MPlayer das natürlich auch mitteilen, also nicht euer Hobby, sondern, dass ihr Screenshots machen wollt, dazu bedarf es eines weiteren Videofilters, namentlich „screenshot“, der dem MPlayer-Aufruf hinzugefügt werden muss.
nice 19 mplayer dvb://ZDF -fv pp=ac -vfm ffmpeg -fv screenshot -cache 10240 -cache-min 50
Nun kann mittels eingestellter Screenshot-Taste (Standardmäßig ist dies das S) ein Screenshot angefertigt werden, welcher dann in dem Verzeichnis abgelegt wird, in dem du warst, als du MPlayer gestartet hast. Der Screenshot wird im PNG-Format abgelegt und kann (sollte *g*) nach dem Erstellen später noch bearbeitet werden (deinterlacing, etc).
Ein weiteres Problem kann der Bildschirmschoner werden, welcher irgendwann starten sollte, wenn eingestellt. Natürlich ärgerlich, wenn man fernsieht und plötzlich – nun ja – nicht mehr … Aber auch hier ginbt es eine Option für MPlayer, welche dem Aufruf hinzugefügt werden muss.
nice 19 mplayer dvb://ZDF -fv pp=ac -vfm ffmpeg -fv screenshot -cache 10240 -cache-min 50 -stop-xscreensaver
Dieser Aufruf, bei dem ich es an dieser Stelle mal belassen möchte (dieses Parameter-Spiel kann ja noch eine ganze weile lang weitergeführt werden, ob MPLayers schier unerschöpflichen Konfigurationsumfangs) macht nun Folgendes:
- Prozesspriorität auf 19 setzen
- mplayer starten
- DVB-T-Stream von ZDF aufrufen
- Video-Filter pp mit dem Wert ac verweden
- Ausgabecodec ffmpeg verwenden
- Video-Filter „screenshot“ verwenden
- Cache auf 10240 Kilobyte (10 Megabyte) setzen
- warten, bis der Cache zu 50 Prozent gefüllt ist
- Den Bildschirmschoner zur Laufzeit deaktivieren
… womit so ziemlich alles relevante Abgedeckt ist, was mir bisher beim Fernsehen mitMPlayer aufgefallen ist.


Danke für die Ausführungen, die mir gut geholfen haben. Ich wäre auch weiterhin an Informationen zu diesem Thema interessiert. Z.B. habe ich mit mplayer Aufnahmeprobleme. Wenn ich den Stream als MPEG speichere, enthält die Datei am Ende Fehler, die sich beim späteren anschauen als kurze Sprünge bemerkbar machen. Demuxt man die mpeg-Datei mit ProjectX werden die Fehler auch angezeigt. Codiere ich während der Aufnahme gleich in x264, was ja erheblich CPU lastiger ist, kann ich diese Fehler nicht feststellen. Hier mal infohalber meine Codieroptionen, für eine „Livecodierung“ während der Aufnahme.
mencoder dvb://ARD -oac copy -ovc x264 -x264encopts threads=auto:bitrate=896:subq=3:me=hex:frameref=3:bframes=3 -vf scale=464:352 -o test.avi -frames $((25*60*95))
Das kann mein 3GHz P4 gerade noch „verschaffen“. Am Ende habe ich eine noch gut anschaubare Datei, die ich auch mal einem Freund uploaden kann.
Grüße!
Kommentar von Lazlo Erfurt am 5. Mai 2008 um 17:57 Uhr
Also, bei „-oac copy -ovc copy“ habe ich keine Probleme mit fehlerhaften Dateien.
Da ich sowieso nachträglich noch alles schneide, und dann erst Kodiere (wenn die Datei nach dem gucken nicht sowieso in /dev/null verschwindet – Ich benutze es hauptsächlich, um tägliche Sendungen „gesammelt“ am Wochenende am Stück durchgucken zu können), ist mir das auch weniger wichtig.
Die „Sprünge“ könnten vielleicht von Streamfehlern kommen, die durch nicht immer ganz optimalen Empfang entstehen.
Ich bekomme bei deiner Zeile übrigens
„-x264encopts is not an MEncoder option“
Kommentar von icewind am 5. Mai 2008 um 18:20 Uhr
Ja, dann war beim Kompilieren vom Mplayer x264 nicht installiert; kannst Du hier bekommen: ftp://ftp.videolan.org/pub/vid...snapshots/
x264 ist eine h264 Implementierung die frei verfügbar ist, allerdings aus Lizensgründen nur als Quellcode.
Kommentar von Lazlo Erfurt am 5. Mai 2008 um 20:14 Uhr
[…] Einstellungsmöglichkeiten von DVB-T mit MPlayer gibt es im icewind’s Blog von Dirk […]
Pingback von imhorst.net » Blog Archive » DVB-T mit MPlayer am 14. Mai 2008 um 22:35 Uhr
mencoder hat einen Parameter um die Laenge der Aufnahme von vornherein festzulegen.
Die Option
-endpos 5400
nimmt z.B. 90 Minuten Film auf.
Die Laenge der Aufnahme wurde hier in Sekunden angegeben. Geht aber auch anders. Wird ueblicherweise benutzt um bei einer zu kodierenden Datei den Endpunkt festzulegen, wenn man nicht die ganze Datei kodieren moechte.
Ich nehme an, aus diesem Grund findet das keiner.
— Auszug man mencoder —
-endpos
(siehe auch -ss und -sb)
Beende das Encodieren nach der angegeben Zeit oder Byteposition.
ANMERKUNG: Die Byteposition ist nicht exakt, da MEncoder nur an Bildgrenzen mit dem Encodieren aufhören kann.
BEISPIEL:
-endpos 56
Encodiere nur 56 Sekunden.
-endpos 01:10:00
Encodiere nur 1 Stunde 10 Minuten.
-endpos 100mb
Encodiere nur 100 MBytes.
Kommentar von hogo am 9. Oktober 2008 um 14:26 Uhr
Klasse, da muss man aber auch erstmal drauf kommen! *notier* Gut zu wissen, Danke :)
Kommentar von icewind am 9. Oktober 2008 um 19:30 Uhr