Arbeitserleichterung beim Fernsehen
Wie gesehen, ist der Aufruf von MPlayer einerseits recht kurz, schließlich genügt es im Idealfall einfach, nur den Stream zu übergeben, andererseits kann der Aufruf recht umfangreich werden, wenn man weitere Optionen einstellen möchte. Um nicht jedes Mal immer alles Einzugeben, habe ich mir ein Shellscript gebastelt, das Folgendes macht:
- alle Instanzen von MPlayer und gMPlayer beenden, damit es beim Starten des Streams keine Fehlermelung gibt, falls schon eine andere MPlayer-Instanz auf die Hardware zugreift
- Dem Script werden zwei Parameter übergeben, einmal der Sendername und einmal das Verzeichnis, in dem Screenshots abgelegt werden sollen
- Es wird abgefragt, welcher Deinterlacing-Filter verwendet werden soll
- MPlayer wird mit den gemachten Angaben, sowie im Script definierten, immer gleichen Angaben gestartet
Es wird „Zenity“ benötigt, welches allerdings bei jeder Gnome-Installation dabei sein sollte. Für KDE und Andere muss das Script eventuell umgeschrieben werden. Der Aufruf funktioniert beispielsweise so:
./fernsehen ZDF "/home/user/Bilder/Screenshots"
Nun wird MPlayer mit den oben im letzten Beispiel angegebenen Optionen gestartet, wobei der Deinterlacing-Filter entsprechend der Angabe im Abfragedialog gesetzt wird. Im Abschnitt …
# Set Values nicevalue="19" # lower number, more CPU power, 19 is okay, and max cachevalue="30720" #kBytes, 30720 kilobytes = 30 megabytes cacheminvalue="4"; # in percent, 99 is max
… können für jeden Aufruf gleiche Optionen entsprechend angepasst werden.
Das Script kann man sich natürlich Ideal in einen Starter packen, und so mit einem einfachen Doppelklick MPlayer mit dem gewünschten DVB-T-Stream starten.
[Desktop Entry] Version=1.0 Encoding=UTF-8 Type=Application Icon=/home/user/Bilder/Logos/zdf.png Terminal=false Exec=/bin/bash /home/user/fernsehen "ZDF" "/home/user/Bilder/Screenshots" Name=ZDF
… als „ZDF.desktop“ speichern, und fertig. Dies kann man natürlich auch mit allen weiteren Sendern machen. Zugegeben, das ist ein mal etwas Handarbeit, aber danach hat man eine wunderbare auswahlmethode. Wenn „Name=“ leergelassen wird, wird nichts angezeigt. Auch praktisch, da die Logos ja meist für sich selbst sprechen.
Zugegeben, zappen ist damit etwas schwieriger (MPLayer-Shortcuts sind unter anderem K und L) und langsamer (der Cache wird jedes mal, wenn man „umschaltet“ bis zum im Aufruf angegebenen Wert aufgefüllt), aber es funktioniert einwandfrei und extrem konfigurierbar.
Download des Scripts: fernsehen



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!
Comment 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“
Comment 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.
Comment 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.
Comment von hogo am 9. Oktober 2008 um 14:26 Uhr
Klasse, da muss man aber auch erstmal drauf kommen! *notier* Gut zu wissen, Danke :)
Comment von icewind am 9. Oktober 2008 um 19:30 Uhr