Mplayer-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Links)
 
(161 dazwischenliegende Versionen von 87 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
 +
 
==Beschreibung==
 
==Beschreibung==
Das MPlayer Plugin ist eine Aufrufhülle für den VDR, mit dem er den MPlayer einbinden kann. Daher muss ausser diesem Plugin auch noch ein spezieller MPlayer installiert werden, der seine Ausgaben über den Videoausgang der Full-Featured DVB-Karte ausgeben kann.
+
'''Autor:''' Stefan Huelswitt
  
Das MPlayer Plugin ruft das Skript mplayer.sh auf, welches hier [http://batleth.sapienti-sat.org/projects/VDR/ hier] beschrieben ist. So können Filme aller Formate von Festplatte, CD oder auch DVD gelesen werden und auf dem Fernseher dargestellt werden. Im Slave-Modus des MPlayer Plugins wird die MPlayer Wiedergabe mit der Fernbedienung des VDR gesteuert.
+
Plugin ist eine Aufrufhülle für VDR, mit dem der MPlayer (''der seine Ausgaben über den Videoausgang der Full-Featured DVB-Karte ausgeben kann'') eingebunden wird.
 +
 
 +
Das Plugin ruft das Skript '''mplayer.sh''' auf, welches [http://batleth.sapienti-sat.org/projects/VDR/ hier] beschrieben ist. Die dem Plugin beiliegende mplayer.sh ist nur ein Beispiel und funktioniert mit vielen Dateien '''nicht'''.
 +
 
 +
So können Filme aller Formate (welche der MPlayer beherrscht) von Festplatte, CD sowie DVD gelesen werden und auf dem Ausgabegerät (Fernseher / Monitor ... etc.) dargestellt werden.  
 +
 
 +
Die MPlayer Wiedergabe kann mit einer [[Fernbedienung]] oder [[Tastatur]] gesteuert werden.
 +
 
 +
Erfolgt die Ausgabe des VDR mit dem [[Xineliboutput-plugin]] ist dieses Plugin eventuell nicht nötig, da Bilder und Medien von xineliboutput direkt wiedergegeben werden können. Dies ist insbesondere für Nutzer von Budgetkarten relevant.
 +
 
 +
<!-- ===Status=== -->
 +
 
 +
==Bilder==
 +
{|
 +
|[[Bild:mplayer-plugin-00.jpg|thumb|none|''Einstellungen'']]
 +
|[[Bild:mplayer-plugin-01.jpg|thumb|none|''Divx'']]
 +
|[[Bild:mplayer-plugin-02.jpg|thumb|none|''Divx'']]
 +
|}
 +
 
 +
==Bedienung==
 +
===[[SVDRP]] Befehle===
 +
{| class="wikitable"
 +
|-
 +
!Parameter
 +
!Beschreibung
 +
|-
 +
| PLAY <filename> || Löst das Abspielen der Datei 'filename' aus.
 +
|-
 +
| TEST <filename> || Testet ob das Abspielen der Datei 'filename' möglich ist.
 +
|}
  
 
==Hardwareanforderungen==
 
==Hardwareanforderungen==
Je nach abzuspielendem Format braucht man unterschiedliche Prozessorleistung (siehe Hardware=>[[Prozessor]]). Da i.d.R. der im VDR eingebundene MPlayer über ein [[Ausgabegeräte|Ausgabegerät]] (z.B. ff-DVB-Karte) die FIlme abspielt müssen diese ins [[MPEG2]]-Format codiert werden. Für flüssige DivX-Wiedergabe sind somit um die 1GHz nötig, andere Formate lassen sich jedoch auch schon mit weit langsameren Prozessoren abspielen (z.B. Celeron 433).
+
Je nach abzuspielendem Format braucht man unterschiedliche Prozessorleistung (siehe Hardware=>[[Prozessor]]). Da in der Regel der im VDR eingebundene MPlayer über ein [[Ausgabegeräte|Ausgabegerät]] (z. B. [[Full-featured-DVB-Karte]]) die Filme abspielt, müssen diese ins [[MPEG|MPEG1]]-Format codiert werden. Für flüssige [[MPEG|DivX]]-Wiedergabe sind somit um die 1 GHz nötig. Andere Formate lassen sich jedoch auch schon mit weit langsameren Prozessoren abspielen (z. B. Celeron 433).
  
 
==Softwareanforderungen==
 
==Softwareanforderungen==
MPlayer, diverse [[codec]], lame, ffmpeg, scripts
+
* {{wikipedia|MPlayer}}
 +
* diverse {{wikipedia|codec}}
 +
* {{wikipedia|LAME}}
 +
* {{wikipedia|FFmpeg}}
 +
* {{wikipedia|xvid}}
 +
* scripts (''mplayer.sh'')
  
 
==Installation==
 
==Installation==
<pre>cd $SOURCEDIR
+
===Optionen===
tar xvzf divx4linux-20020418.tgz
+
{| class="wikitable"
cd divx4linux-20020418
+
|-
sh install.sh
+
| bgcolor=#efefef | WITHOUT_MP3=1
cd -
+
| Übersetzen ohne MP3-Plugin
 +
|-
 +
| bgcolor=#efefef | WITHOUT_MPLAYER=1
 +
| Übersetzen ohne MPlayer-Plugin
 +
|-
 +
| bgcolor=#efefef | WITHOUT_LIBSNDFILE=1
 +
| Übersetzen ohne Libsndfile
 +
|-
 +
| bgcolor=#efefef | WITHOUT_LIBVORBISFILE=1
 +
| Übersetzen ohne libvorbisfile
 +
|-
 +
| bgcolor=#efefef | WITH_OSS_OUTPUT=1
 +
| Übersetzen mit "OSS sound Ausgabe". Laut HISTORY kann das DSP device mit angegeben werden: -D [NUM] somit -D 1
 +
|}
  
tar jxvf xvidcore-1.0.1.tar.bz2
+
<!-- ===Patches=== -->
cd xvidcore-1.0.1/build/generic
+
===[[Arch-Linux]]===
./configure --prefix=/usr/local
+
pacman -S libid3tag libmad libsndfile libvorbis mplayer
make
+
make install
+
ldconfig
+
cd -
+
  
tar xvzf lame-3.93.1.tar.gz
+
===[[Crux]]===
cd lame-3.93.1
+
prt-get depinst libid3tag libmad libsndfile libvorbis mplayer
./configure --prefix=/usr/local
+
make
+
make install
+
cd -
+
  
tar xvzf ffmpeg-0.4.8.tar.gz
+
===[[Debian]]===
ln -s ffmpeg-0.4.8 ffmpeg
+
apt-get install libvorbis-dev libmad0-dev libsndfile1-dev libogg-dev libid3tag0-dev mplayer
cd ffmpeg
+
./configure --prefix=/usr/local --enable-shared
+
make
+
make install
+
ldconfig
+
cd -
+
  
tar jxvf all-20040706.tar.bz2
+
===[[Gentoo]]===
mkdir -p /usr/local/lib/win32
+
emerge -va libid3tag libmad libsndfile libvorbis mplayer
cp all-20040706/* /usr/local/lib/win32
+
  
tar jxvf font-arial-iso-8859-1.tar.bz2
+
===[[SuSE]]===
mkdir -p ~/.mplayer/font
+
yast -i libid3tag libid3tag-devel mad-devel libsndfile-devel libvorbis-devel MPlayer
cp font-arial-iso-8859-1/font-arial-14-iso-8859-1/* ~/.mplayer/font
+
  
tar jxvf default-1.8.tar.bz2
+
===[[Mandriva]]===
mkdir -p ~/.mplayer/Skin
+
Zuerst muss das Mandrivauser.de Repository zusätzlich eingerichtet werden, dies geht mit
mv default ~/.mplayer/Skin
+
urpmi.addmedia mud-free_release ftp://ftp.mandrivauser.de/rpm/GPL/--version--/--arch--/release
 +
Hierbei muss --version-- durch die benutzte Mandriva-Version und --arch-- durch die genutzte Architektur (i586 oder x86_64) ersetzt werden. Dann kann man das Plugin mittels
 +
urpmi vdr-plugin-mp3 vdr-plugin-mplayer mplayer_sh
 +
installiert werden.
  
tar xvzf mplayer.sh-0.8.5.tar.gz
 
cp mplayer.sh mplayer.sh.conf /usr/local/bin
 
 
tar jxvf MPlayer-1.0pre4.tar.bz2
 
cd MPlayer-1.0pre4
 
./configure --prefix=/usr/local --enable-largefiles --enable-menu --with-dvbincdir=$SOURCEDIR/DVB/include --with-codecsdir=/usr/local/lib/win32
 
make
 
make install
 
cp etc/codecs.conf etc/input.conf ~/.mplayer</pre>
 
 
==Konfiguration==
 
==Konfiguration==
Nicht das Verständnisprobleme auftretten, das [[mp3-plugin]] beinhaltet das [[mplayer-plugin]], aus diesem Grund ist die "Konfiguration" ein und die selbe, somit siehe [[mp3-plugin]].
+
===Mp3 + Mplayer===
 +
Nicht dass Verständnisprobleme auftreten: das [[mp3-plugin]] beinhaltet das [[mplayer-plugin]], aus diesem Grund ist die "Konfiguration" ein und die selbe, somit siehe [[mp3-plugin]]. Beide Plugins werden vom make aus den gleichen Sourcen gebaut.
  
Der Mplayer selbst kann in 2 "Modi" gesteuert werden.
+
===Modi===
 +
Der Mplayer selbst kann in 2 "Modi" gesteuert werden:
  
* Slave
+
* Slave (empfohlen, keine weitere Konfiguration nötig)
 
* Traditional
 
* Traditional
  
Für "Traditional" ist die "/usr/local/bin/mplayer.sh.conf" anzupassen:
+
Für "Traditional" ist die '''/usr/local/bin/[[mplayer.sh.conf]]''' anzupassen:
  
 
  # Lirc RC File
 
  # Lirc RC File
 
  LIRCRC="/etc/[[lircrc.conf]]"
 
  LIRCRC="/etc/[[lircrc.conf]]"
  
Dieser Modus nutzt Lirc, MPlayer muß mit Lirc-Support übersetzt worden sein!
+
Dieser Modus nutzt [[LIRC]], MPlayer muß mit [[LIRC]]-Support übersetzt worden sein!
  
 +
==={DVD,VCD}s abspielen===
 
Um DVDs/VCDs mit dem Plugin abspielen zu können, müssen wir 2 "Dummy" Files erzeugen:
 
Um DVDs/VCDs mit dem Plugin abspielen zu können, müssen wir 2 "Dummy" Files erzeugen:
 +
 
<pre>
 
<pre>
 
mkdir -p /video/plugins/DVD-VCD
 
mkdir -p /video/plugins/DVD-VCD
touch /video/plugins/DVD-VCD/DVD /video/plugins/DVD-VCD/VCD
+
touch /video/plugins/DVD-VCD/{DVD,VCD}
 
</pre>
 
</pre>
Später wählt man einfach über das Menu DVD/VCD um das im Laufwerk befindliche Medium abzuspielen.
 
  
==Probleme==
+
Außerdem muss ein entsprechender Eintrag in '''[[Struktur|$VDRCONFIG]]/plugins/[[mplayersources.conf]]''' existieren:
Mplayer spielt keine Datei ab, bzw. spielt sie auf der falschen DVB-Karte ab. So wurde bei mir beispielsweise die Budget-Karte (adapter0) vor der FF-Karte (adapter1) geladen. Dies sieht man in der Datei /var/log/messages:
+
<pre>Jul 18 15:51:38 vdr kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-CI PCI).
+
Jul 18 15:51:40 vdr kernel: DVB: registering new adapter (Siemens/Technotrend/Hauppauge PCI rev1.3).
+
Jul 18 15:51:41 vdr kernel: TT-Budget/WinTV-NOVA-CI PCI adapter 0 has MAC addr = 00:d0:5c:23:24:6b
+
Jul 18 15:51:44 vdr kernel: Siemens/Technotrend/Hauppauge PCI rev1.3 adapter 1 has MAC addr = 00:d0:5c:01:c2:01</pre>
+
Der Mplayer versucht aber, auf dev/adapter0 abzuspielen. Mögliche Lösung: In den Sourcen des MPlayer in der Datei MPlayer-1.0pre4/libvo/vo_mpegpes.c alle adapter0 in adapter1 ändern und neu kompilieren. Dann greift der mplayer auf adapter1 zu.
+
  
==Links==
+
<pre>
{|
+
/video/plugins/DVD-VCD;DVD or VCD;0
| [1]
+
</pre>
| http://www.mplayerhq.hu/homepage
+
 
| MPlayer Homepage
+
Später wählt man einfach über das Menu "DVD or VCD" um das im Laufwerk befindliche Medium abzuspielen.
 +
 
 +
===Übergabe===
 +
vdr -P'mplayer -m [[Struktur|$PATH]]/mount.sh -M [[Struktur|$PATH]]/mplayer.sh -S mplayer'
 +
 
 +
===Übersicht der ''Slave Mode'' Befehle===
 +
Übersicht: http://www.mplayerhq.hu/DOCS/tech/slave.txt
 +
 
 +
===Media Verzeichnisse===
 +
werden in '''[[Struktur|$VDRCONFIG]]/plugins/[[mplayersources.conf]]''' konfiguriert.
 +
Beispiel: "/media/Filme;Media;0" in der ersten Zeile lässt dich in "/media/Filme" starten
 +
 +
<!-- ===Einstellungen=== -->
 +
 
 +
===Parameter===
 +
{| class="wikitable"
 
|-
 
|-
| [2]
+
!Parameter (kurz)
| http://ffmpeg.sourceforge.net
+
!Parameter (lang)
| FFmpeg Homepage
+
!Beschreibung
 
|-
 
|-
| [3]
+
| -m CMD || --mount=CMD  || verwende CMD um mp3 Quellen zu mounten/unmounten/auszuwerfen (Voreinstellung: mount.sh)
| http://lame.sourceforge.net
+
| Lame Homepage
+
 
|-
 
|-
| [4]
+
| -M CMD || --mplayer=CMD || verwende CMD um MPlayer aufzurufen (Voreinstellung: mplayer.sh)
| http://www.muempf.de/index.html
+
| Homepage des Plugins
+
 
|-
 
|-
| [5]
+
| -S SUB || --sources=SUB || suche Quellen Konfiguration im Unterverzeichnis SUB (Voreinstellung: keines)
| http://batleth.sapienti-sat.org/projects/VDR
+
|-
| Shell Script
+
| -R DIR || --resume=DIR  || speichere globale resume-Datei in DIR (Voreinstellung: video dir)
 
|}
 
|}
 +
 +
==Sonstiges==
 +
===Probleme===
 +
====Falsche DVB-Karte?====
 +
Mplayer spielt keine Datei ab, bzw. spielt sie auf der falschen DVB-Karte ab. So wurde bei mir beispielsweise die Budget-Karte '''(adapter0)''' vor der FF-Karte '''(adapter1)''' geladen. Dies sieht man in der Datei '''/var/log/messages''':
 +
 +
<pre>
 +
Jul 18 15:51:38 vdr kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-CI PCI).
 +
Jul 18 15:51:40 vdr kernel: DVB: registering new adapter (Siemens/Technotrend/Hauppauge PCI rev1.3).
 +
Jul 18 15:51:41 vdr kernel: TT-Budget/WinTV-NOVA-CI PCI adapter 0 has MAC addr = 00:d0:5c:23:24:6b
 +
Jul 18 15:51:44 vdr kernel: Siemens/Technotrend/Hauppauge PCI rev1.3 adapter 1 has MAC addr = 00:d0:5c:01:c2:01
 +
</pre>
 +
 +
Mplayer versucht aber, auf '''/dev/adapter0''' abzuspielen.
 +
 +
Mögliche Lösungen:
 +
 +
- Bei neueren mplayer Versionen einfach in der '''/etc/vdr/[[mplayer.sh.conf]]''' Datei beim '''VO''' Eintrag die Kartennummer mit angeben.
 +
VO="mpegpes:card=2"
 +
- Bei älteren mplayer Versionen den Sourcencode ändern. In der Datei '''./libvo/vo_mpegpes.c''' alle '''adapter0''' in '''adapter1''' ändern und neu kompilieren. Dann greift der mplayer auf '''adapter1''' zu.
 +
 +
- Da sich beim automatischen Laden der Module nicht immer die gleichen DVB Karten an der gleichen Stelle befinden kann man alternativ auch in der '''/etc/vdr/[[mplayer.sh.conf]]''' Datei beim '''VO''' Eintrag folgendes eintragen:
 +
VO="mpegpes`find /dev/dvb | grep video0 | cut -d/ -f4 | awk '{sub("adapter","");print ":card=" $0+1}'`"
 +
und für das Audio Device:
 +
AO="mpegpes`find /dev/dvb | grep audio0 | cut -d/ -f4 | awk '{sub("adapter","");print ":card=" $0+1}'`"
 +
 +
Kurz:
 +
 +
<pre>
 +
VO="mpegpes:card=$(($(find /dev/dvb | grep video0 | cut -c17)+1))"
 +
AO="mpegpes:card=$(($(find /dev/dvb | grep audio0 | cut -c17)+1))"
 +
</pre>
 +
 +
Kurz und ohne externe Shell Befehle:
 +
 +
<pre>
 +
VO="mpegpes:card=1,mpegpes:card=2,mpegpes:card=3,mpegpes:card=4"
 +
AO="mpegpes:card=1,mpegpes:card=2,mpegpes:card=3,mpegpes:card=4"
 +
</pre>
 +
 +
====Filme in schwarz/weiß?====
 +
Sollten manche Filme nur in schwarz/weiß wiedergegeben werden, so handelt es sich hierbei vermutlich um Filme im amerikanischen {{wikipedia|NTSC}}-Format, welches von deinem Fernseher nicht unterstützt wird. In diesem Fall kann man in der '''/usr/local/bin/[[mplayer.sh.conf]]''' die Option '''{{wikipedia|NTSC}}''' auf false gesetzt werden.
 +
 +
Leider funktioniert die Format-Umwandlung nicht für (S)VCDs und DVDs.
 +
 +
====MPlayer nicht steuerbar?====
 +
Problem: Der MPlayer kann über die Fernbedienung nicht gesteuert werden. Es geht nur [blau] für beenden. Funktionen wie "FF", "REW", "Pause" oder mittels [rot] eine Sprungzeit einzugeben, klappen nicht.
 +
 +
Lösung: Im Menü über Einstellungen > Plugins > mplayer Betriebsmodus auf "Slave" statt "traditionell" stellen.
 +
 +
====Mplayer gibt nichts auf der DVB Karte aus?====
 +
Gibt es nur kurz ein schwarzes Bild zu sehen oder kommt nur Ton (Fehlermeldung, dass ffdivx nicht dekodieren kann oder mpegpes nicht passend skalieren kann), sicherstellen, dass die "große" ''mplayer.sh'' genommen wurde und nicht die dem Plugin beiliegende einfache Variante. Außerdem muss das TV-Format (4:3 bzw. 16:9) in der mplayer.sh.conf richtig eingestellt werden.
 +
 +
Wenn ein Film durch einen manuellen Aufruf des mplayer abgespielt werden kann, jedoch nicht direkt aus dem VDR heraus, kann es auch daran liegen, daß der User, als der der VDR ausgeführt wird, nicht die nötigen Berechtigungen hat, um auf die Filmdatei zuzugreifen (mögliche Fehlermeldung in /var/log/messages: "FATAL: something went wrong analyzing the video").
 +
 +
Ansonsten fehlt in mplayer eventuell der DVB Support. Überprüfen lässt sich das wie folgt:
 +
 +
<pre>
 +
shell> mplayer -vo help
 +
MPlayer 1.0rc1-4.2.1 (C) 2000-2006 MPlayer Team
 +
CPU: AMD Athlon(tm) XP 1800+ (Family: 6, Model: 8, Stepping: 1)
 +
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
 +
Compiled with runtime CPU detection.
 +
Available video output drivers:
 +
        xv      X11/Xv
 +
        x11    X11 ( XImage/Shm )
 +
        xover  General X11 driver for overlay capable video output drivers
 +
        gl      X11 (OpenGL)
 +
        gl2    X11 (OpenGL) - multiple textures version
 +
        dga    DGA ( Direct Graphic Access V2.0 )
 +
        sdl    SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
 +
        fbdev  Framebuffer Device
 +
        fbdev2  Framebuffer Device
 +
        aa      AAlib
 +
        caca    libcaca
 +
        ivtv    IVTV MPEG Video Decoder TV-Out
 +
        zr      Zoran ZR360[56]7/ZR36060 Driver (DC10(+)/buz/lml33/MatroxRR)
 +
        zr2    Zoran ZR360[56]7/ZR36060 Driver (DC10(+)/buz/lml33/MatroxRR)
 +
        bl      Blinkenlights driver: http://www.blinkenlights.de
 +
        directfb        Direct Framebuffer Device
 +
        dfbmga  DirectFB / Matrox G200/G400/G450/G550
 +
        xvidix  X11 (VIDIX)
 +
        cvidix  console VIDIX
 +
        null    Null video output
 +
        mpegpes Mpeg-PES to DVB card
 +
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 +
        yuv4mpeg        yuv4mpeg output for mjpegtools
 +
        png    PNG file
 +
        jpeg    JPEG file
 +
        gif89a  animated GIF output
 +
        tga    Targa output
 +
        pnm    PPM/PGM/PGMYUV file
 +
        md5sum  md5sum of each frame
 +
</pre>
 +
 +
Falls die markierte Zeile nicht in der Ausgabe erscheint, MPlayer mit den passenden Optionen übersetzen.
 +
 +
===Tipps===
 +
====Playliste (Abspielliste)====
 +
Als erstes zu den Einstellungen im Plugin ('''mplayer =< 0.9.13''').
 +
 +
Wichtig, hier der '''Control mode: Slave''', sowie {{button neutral|7}} bis {{button neutral|9}} (''auf welche Tasten das auch immer später gelegt wird'').
 +
 +
[[Bild:mplayer-plugin-00.jpg|thumb|none|''Einstellungen'']]
 +
 +
Oder einfach in die [[setup.conf]] übertragen.
 +
 +
mplayer.ControlMode = 1
 +
mplayer.HideMainMenu = 0
 +
mplayer.KeyCmd0 = osd
 +
mplayer.KeyCmd1 = audio_delay -0.1
 +
mplayer.KeyCmd2 = switch_audio
 +
mplayer.KeyCmd3 = audio_delay +0.1
 +
mplayer.KeyCmd4 = quit
 +
mplayer.KeyCmd5 = quit
 +
mplayer.KeyCmd6 = quit
 +
mplayer.KeyCmd7 = '''pt_step -1'''
 +
mplayer.KeyCmd8 = '''loadlist /tmp/playlist'''
 +
mplayer.KeyCmd9 = '''pt_step 1'''
 +
mplayer.ResumeMode = 1
 +
 +
Erläuterung.
 +
 +
{{button neutral|7}} Springt zum vorherigen Eintrag in der Abspielliste<br>
 +
{{button neutral|8}} Laden der Abspielliste, erster Eintrag wird abgespielt<br>
 +
{{button neutral|9}} Springt zum nächsten Eintrag in der Abspielliste
 +
 +
Das war es schon, man spielt einen Clip, gelangt mit {{button neutral|8}} in die Abspielliste.
 +
 +
Bleibt eigentlich nur die Frage, wie erzeugt man eine Abspielliste, das geht relativ einfach, sogar mit ''selektiver'' Auswahl via FB.
 +
 +
Dazu eignet sich das [[filebrowser-plugin]], folgender Eintrag in die [[filebrowser-commands.conf|commands.conf]]. (siehe [[Struktur]] [[Bild:Icon Achtung.png]])
 +
 +
Playlist:*:find %M -follow -type f > /tmp/playlist && echo Created /tmp/playlist
 +
 +
Im Plugin kann man bequem, das auswählen, was in die Liste soll {{button rot|Mark}} bzw. {{button grün|Mark all}}.
 +
 +
Wer möchte, kann diese auch mit einem Editor der Wahl selbst anlegen, format.
 +
 +
{{Box Datei | /tmp/playlist |
 +
<pre>
 +
/PATH/FILE
 +
/PATH/FILE
 +
</pre>
 +
}}
 +
 +
Andere Möglichkeit wäre, das ändern der '''mplayer.sh''', es würde somit immer eine Playlist von aktuellen verzeichnis erstellt werden.
 +
 +
+ find $(dirname $1) -type f >/tmp/playlist
 +
  exec $CMDLINE "$FILE
 +
 +
Nachteil.
 +
 +
* Es sollten alle Clips im selben Format vorliegen.
 +
** Berechnung erfolgt für den ''momentan (erst)'' gewählten Titel ('''mplayer.sh'''), alle nachfolgenden bekommen somit die Einstellungen von '''1''' ''vererbt''.
 +
 +
====Automatische Playlisten anhand von Dateinamen====
 +
[http://www.js-home.org/vdr/mplayer-multi/index.php mplayer-multi] erweitert das mplayer-plugin um die Fähigkeit, einen in mehrere Dateien mit fortlaufender Nummerierung geteilten Film oder entsprechend benannte Serienepisoden abzuspielen.
 +
 +
====Leistungsschwache CPUs====
 +
Wenn der Prozessor langsamer als '''~ 800 MHz''' ist, sollte man in der '''$PATH/mplayer.sh.conf''' vor der Option '''SLOW_CPU''' das '''#''' entfernt werden, so dass diese Option aktiv wird. Hiermit wird jeder Film auf VCD-Format skaliert - diese Auflösung ('''352x288 PAL''', bzw. '''352x240 NTSC''') schaffen oft auch Prozessoren mit 800MHz und weniger.
 +
 +
====Ton zu leise!====
 +
Ein häufig auftretendes Problem ist, dass der Ton beim Abspielen einer Datei mit dem mplayer-plugin zu leise wiedergegeben wird. Bei der Rückkehr in den VDR dröhnt dann die Bude, da man im mplayer den Ton hochgeregelt hat, um etwas zu verstehen.
 +
Mit folgendem Tipp von Tüddelkopp aus dem VDR Portal Forum lässt sich das Problem umgehen:
 +
In der Datei '''[[mplayer.sh.conf]]''' in der Zeile '''USERDEF''' folgendes hinzufügen: '''-af volnorm -softvol -softvol-max 400 -volstep 5'''
 +
 +
Das ganze müsste dann also in etwa so aussehen:
 +
{{Box Datei | [[mplayer.sh.conf]] |
 +
<pre>
 +
USERDEF="-quiet -osdlevel 0 -af volnorm -softvol -softvol-max 400 -volstep 5"
 +
</pre>
 +
}}
 +
 +
Der Wert für '''-softvol-max''' kann stufenweise bis auf 1000 erhöht werden. Einfach ausprobieren und nicht bei 1000 anfangen, sonst werden die Nachbarn sauer.
 +
 +
====H.264/FLV Wiedergabe ruckelt====
 +
Es kann passieren, dass ein Videostream, der mit dem x264-Kodierer erstellt wurde und sich in einem Matroska-Container befindet, bei der Wiedergabe ruckelt. Zudem wird häufig nicht der deutsche Audiostream wiedergegeben. Um diese Probleme zu beheben, kann man einfach in der Datei '''[[mplayer.sh.conf]]''' in der Zeile '''USERDEF''' folgendes hinzufügen: '''-no-correct-pts -alang ger'''
 +
 +
Beispielsweise könnte die USERDEF-Zeile dann folgendermaßen aussehen:
 +
{{Box Datei | [[mplayer.sh.conf]] |
 +
<pre>
 +
USERDEF="-quiet -osdlevel 0 -af volnorm -softvol -softvol-max 800 -volstep 5 -no-correct-pts -alang ger"
 +
 +
oder
 +
 +
USERDEF="-quiet -osdlevel 0 -af volnorm -softvol -softvol-max 800 -volstep 5 -nocorrect-pts -alang ger"
 +
</pre>
 +
}}
 +
 +
 +
 +
<!-- ===Wunschliste=== -->
 +
 +
== Snapshot ==
 +
hg clone http://hg.muempf.de/mp3
 +
 +
==Aktuelle Version==
 +
[http://www.muempf.de/down/vdr-mp3-0.10.2.tar.gz 0.10.2]
 +
 +
==Links==
 +
# [http://www.muempf.de/index.html Homepage des Plugins]
 +
# [http://www.mplayerhq.hu/ MPlayer]
 +
# [http://batleth.sapienti-sat.org/projects/VDR Shell Script (mplayer.sh)]
 +
 +
[[Kategorie:Veraltete Plugins]]
 +
{{i18n|mplayer-plugin}}

Aktuelle Version vom 12. September 2013, 19:56 Uhr


Inhaltsverzeichnis

[Bearbeiten] Beschreibung

Autor: Stefan Huelswitt

Plugin ist eine Aufrufhülle für VDR, mit dem der MPlayer (der seine Ausgaben über den Videoausgang der Full-Featured DVB-Karte ausgeben kann) eingebunden wird.

Das Plugin ruft das Skript mplayer.sh auf, welches hier beschrieben ist. Die dem Plugin beiliegende mplayer.sh ist nur ein Beispiel und funktioniert mit vielen Dateien nicht.

So können Filme aller Formate (welche der MPlayer beherrscht) von Festplatte, CD sowie DVD gelesen werden und auf dem Ausgabegerät (Fernseher / Monitor ... etc.) dargestellt werden.

Die MPlayer Wiedergabe kann mit einer Fernbedienung oder Tastatur gesteuert werden.

Erfolgt die Ausgabe des VDR mit dem Xineliboutput-plugin ist dieses Plugin eventuell nicht nötig, da Bilder und Medien von xineliboutput direkt wiedergegeben werden können. Dies ist insbesondere für Nutzer von Budgetkarten relevant.


[Bearbeiten] Bilder

Einstellungen
Divx
Divx

[Bearbeiten] Bedienung

[Bearbeiten] SVDRP Befehle

Parameter Beschreibung
PLAY <filename> Löst das Abspielen der Datei 'filename' aus.
TEST <filename> Testet ob das Abspielen der Datei 'filename' möglich ist.

[Bearbeiten] Hardwareanforderungen

Je nach abzuspielendem Format braucht man unterschiedliche Prozessorleistung (siehe Hardware=>Prozessor). Da in der Regel der im VDR eingebundene MPlayer über ein Ausgabegerät (z. B. Full-featured-DVB-Karte) die Filme abspielt, müssen diese ins MPEG1-Format codiert werden. Für flüssige DivX-Wiedergabe sind somit um die 1 GHz nötig. Andere Formate lassen sich jedoch auch schon mit weit langsameren Prozessoren abspielen (z. B. Celeron 433).

[Bearbeiten] Softwareanforderungen

[Bearbeiten] Installation

[Bearbeiten] Optionen

WITHOUT_MP3=1 Übersetzen ohne MP3-Plugin
WITHOUT_MPLAYER=1 Übersetzen ohne MPlayer-Plugin
WITHOUT_LIBSNDFILE=1 Übersetzen ohne Libsndfile
WITHOUT_LIBVORBISFILE=1 Übersetzen ohne libvorbisfile
WITH_OSS_OUTPUT=1 Übersetzen mit "OSS sound Ausgabe". Laut HISTORY kann das DSP device mit angegeben werden: -D [NUM] somit -D 1

[Bearbeiten] Arch-Linux

pacman -S libid3tag libmad libsndfile libvorbis mplayer

[Bearbeiten] Crux

prt-get depinst libid3tag libmad libsndfile libvorbis mplayer

[Bearbeiten] Debian

apt-get install libvorbis-dev libmad0-dev libsndfile1-dev libogg-dev libid3tag0-dev mplayer

[Bearbeiten] Gentoo

emerge -va libid3tag libmad libsndfile libvorbis mplayer

[Bearbeiten] SuSE

yast -i libid3tag libid3tag-devel mad-devel libsndfile-devel libvorbis-devel MPlayer

[Bearbeiten] Mandriva

Zuerst muss das Mandrivauser.de Repository zusätzlich eingerichtet werden, dies geht mit

urpmi.addmedia mud-free_release ftp://ftp.mandrivauser.de/rpm/GPL/--version--/--arch--/release

Hierbei muss --version-- durch die benutzte Mandriva-Version und --arch-- durch die genutzte Architektur (i586 oder x86_64) ersetzt werden. Dann kann man das Plugin mittels

urpmi vdr-plugin-mp3 vdr-plugin-mplayer mplayer_sh

installiert werden.

[Bearbeiten] Konfiguration

[Bearbeiten] Mp3 + Mplayer

Nicht dass Verständnisprobleme auftreten: das mp3-plugin beinhaltet das mplayer-plugin, aus diesem Grund ist die "Konfiguration" ein und die selbe, somit siehe mp3-plugin. Beide Plugins werden vom make aus den gleichen Sourcen gebaut.

[Bearbeiten] Modi

Der Mplayer selbst kann in 2 "Modi" gesteuert werden:

  • Slave (empfohlen, keine weitere Konfiguration nötig)
  • Traditional

Für "Traditional" ist die /usr/local/bin/mplayer.sh.conf anzupassen:

# Lirc RC File
LIRCRC="/etc/lircrc.conf"

Dieser Modus nutzt LIRC, MPlayer muß mit LIRC-Support übersetzt worden sein!

[Bearbeiten] {DVD,VCD}s abspielen

Um DVDs/VCDs mit dem Plugin abspielen zu können, müssen wir 2 "Dummy" Files erzeugen:

mkdir -p /video/plugins/DVD-VCD
touch /video/plugins/DVD-VCD/{DVD,VCD}

Außerdem muss ein entsprechender Eintrag in $VDRCONFIG/plugins/mplayersources.conf existieren:

/video/plugins/DVD-VCD;DVD or VCD;0

Später wählt man einfach über das Menu "DVD or VCD" um das im Laufwerk befindliche Medium abzuspielen.

[Bearbeiten] Übergabe

vdr -P'mplayer -m $PATH/mount.sh -M $PATH/mplayer.sh -S mplayer'

[Bearbeiten] Übersicht der Slave Mode Befehle

Übersicht: http://www.mplayerhq.hu/DOCS/tech/slave.txt

[Bearbeiten] Media Verzeichnisse

werden in $VDRCONFIG/plugins/mplayersources.conf konfiguriert.
Beispiel: "/media/Filme;Media;0" in der ersten Zeile lässt dich in "/media/Filme" starten

[Bearbeiten] Parameter

Parameter (kurz) Parameter (lang) Beschreibung
-m CMD --mount=CMD verwende CMD um mp3 Quellen zu mounten/unmounten/auszuwerfen (Voreinstellung: mount.sh)
-M CMD --mplayer=CMD verwende CMD um MPlayer aufzurufen (Voreinstellung: mplayer.sh)
-S SUB --sources=SUB suche Quellen Konfiguration im Unterverzeichnis SUB (Voreinstellung: keines)
-R DIR --resume=DIR speichere globale resume-Datei in DIR (Voreinstellung: video dir)

[Bearbeiten] Sonstiges

[Bearbeiten] Probleme

[Bearbeiten] Falsche DVB-Karte?

Mplayer spielt keine Datei ab, bzw. spielt sie auf der falschen DVB-Karte ab. So wurde bei mir beispielsweise die Budget-Karte (adapter0) vor der FF-Karte (adapter1) geladen. Dies sieht man in der Datei /var/log/messages:

Jul 18 15:51:38 vdr kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-CI PCI).
Jul 18 15:51:40 vdr kernel: DVB: registering new adapter (Siemens/Technotrend/Hauppauge PCI rev1.3).
Jul 18 15:51:41 vdr kernel: TT-Budget/WinTV-NOVA-CI PCI adapter 0 has MAC addr = 00:d0:5c:23:24:6b
Jul 18 15:51:44 vdr kernel: Siemens/Technotrend/Hauppauge PCI rev1.3 adapter 1 has MAC addr = 00:d0:5c:01:c2:01

Mplayer versucht aber, auf /dev/adapter0 abzuspielen.

Mögliche Lösungen:

- Bei neueren mplayer Versionen einfach in der /etc/vdr/mplayer.sh.conf Datei beim VO Eintrag die Kartennummer mit angeben.

VO="mpegpes:card=2"

- Bei älteren mplayer Versionen den Sourcencode ändern. In der Datei ./libvo/vo_mpegpes.c alle adapter0 in adapter1 ändern und neu kompilieren. Dann greift der mplayer auf adapter1 zu.

- Da sich beim automatischen Laden der Module nicht immer die gleichen DVB Karten an der gleichen Stelle befinden kann man alternativ auch in der /etc/vdr/mplayer.sh.conf Datei beim VO Eintrag folgendes eintragen:

VO="mpegpes`find /dev/dvb | grep video0 | cut -d/ -f4 | awk '{sub("adapter","");print ":card=" $0+1}'`"

und für das Audio Device:

AO="mpegpes`find /dev/dvb | grep audio0 | cut -d/ -f4 | awk '{sub("adapter","");print ":card=" $0+1}'`"

Kurz:

VO="mpegpes:card=$(($(find /dev/dvb | grep video0 | cut -c17)+1))"
AO="mpegpes:card=$(($(find /dev/dvb | grep audio0 | cut -c17)+1))"

Kurz und ohne externe Shell Befehle:

VO="mpegpes:card=1,mpegpes:card=2,mpegpes:card=3,mpegpes:card=4"
AO="mpegpes:card=1,mpegpes:card=2,mpegpes:card=3,mpegpes:card=4"

[Bearbeiten] Filme in schwarz/weiß?

Sollten manche Filme nur in schwarz/weiß wiedergegeben werden, so handelt es sich hierbei vermutlich um Filme im amerikanischen NTSC-Format, welches von deinem Fernseher nicht unterstützt wird. In diesem Fall kann man in der /usr/local/bin/mplayer.sh.conf die Option NTSC auf false gesetzt werden.

Leider funktioniert die Format-Umwandlung nicht für (S)VCDs und DVDs.

[Bearbeiten] MPlayer nicht steuerbar?

Problem: Der MPlayer kann über die Fernbedienung nicht gesteuert werden. Es geht nur [blau] für beenden. Funktionen wie "FF", "REW", "Pause" oder mittels [rot] eine Sprungzeit einzugeben, klappen nicht.

Lösung: Im Menü über Einstellungen > Plugins > mplayer Betriebsmodus auf "Slave" statt "traditionell" stellen.

[Bearbeiten] Mplayer gibt nichts auf der DVB Karte aus?

Gibt es nur kurz ein schwarzes Bild zu sehen oder kommt nur Ton (Fehlermeldung, dass ffdivx nicht dekodieren kann oder mpegpes nicht passend skalieren kann), sicherstellen, dass die "große" mplayer.sh genommen wurde und nicht die dem Plugin beiliegende einfache Variante. Außerdem muss das TV-Format (4:3 bzw. 16:9) in der mplayer.sh.conf richtig eingestellt werden.

Wenn ein Film durch einen manuellen Aufruf des mplayer abgespielt werden kann, jedoch nicht direkt aus dem VDR heraus, kann es auch daran liegen, daß der User, als der der VDR ausgeführt wird, nicht die nötigen Berechtigungen hat, um auf die Filmdatei zuzugreifen (mögliche Fehlermeldung in /var/log/messages: "FATAL: something went wrong analyzing the video").

Ansonsten fehlt in mplayer eventuell der DVB Support. Überprüfen lässt sich das wie folgt:

shell> mplayer -vo help
MPlayer 1.0rc1-4.2.1 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) XP 1800+ (Family: 6, Model: 8, Stepping: 1)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled with runtime CPU detection.
Available video output drivers:
        xv      X11/Xv
        x11     X11 ( XImage/Shm )
        xover   General X11 driver for overlay capable video output drivers
        gl      X11 (OpenGL)
        gl2     X11 (OpenGL) - multiple textures version
        dga     DGA ( Direct Graphic Access V2.0 )
        sdl     SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
        fbdev   Framebuffer Device
        fbdev2  Framebuffer Device
        aa      AAlib
        caca    libcaca
        ivtv    IVTV MPEG Video Decoder TV-Out
        zr      Zoran ZR360[56]7/ZR36060 Driver (DC10(+)/buz/lml33/MatroxRR)
        zr2     Zoran ZR360[56]7/ZR36060 Driver (DC10(+)/buz/lml33/MatroxRR)
        bl      Blinkenlights driver: http://www.blinkenlights.de
        directfb        Direct Framebuffer Device
        dfbmga  DirectFB / Matrox G200/G400/G450/G550
        xvidix  X11 (VIDIX)
        cvidix  console VIDIX
        null    Null video output
        mpegpes Mpeg-PES to DVB card
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        yuv4mpeg        yuv4mpeg output for mjpegtools
        png     PNG file
        jpeg    JPEG file
        gif89a  animated GIF output
        tga     Targa output
        pnm     PPM/PGM/PGMYUV file
        md5sum  md5sum of each frame

Falls die markierte Zeile nicht in der Ausgabe erscheint, MPlayer mit den passenden Optionen übersetzen.

[Bearbeiten] Tipps

[Bearbeiten] Playliste (Abspielliste)

Als erstes zu den Einstellungen im Plugin (mplayer =< 0.9.13).

Wichtig, hier der Control mode: Slave, sowie
7
bis
9
(auf welche Tasten das auch immer später gelegt wird).
Einstellungen

Oder einfach in die setup.conf übertragen.

mplayer.ControlMode = 1
mplayer.HideMainMenu = 0
mplayer.KeyCmd0 = osd
mplayer.KeyCmd1 = audio_delay -0.1
mplayer.KeyCmd2 = switch_audio
mplayer.KeyCmd3 = audio_delay +0.1
mplayer.KeyCmd4 = quit
mplayer.KeyCmd5 = quit
mplayer.KeyCmd6 = quit
mplayer.KeyCmd7 = pt_step -1
mplayer.KeyCmd8 = loadlist /tmp/playlist
mplayer.KeyCmd9 = pt_step 1
mplayer.ResumeMode = 1

Erläuterung.

7
Springt zum vorherigen Eintrag in der Abspielliste
8
Laden der Abspielliste, erster Eintrag wird abgespielt
9
Springt zum nächsten Eintrag in der Abspielliste Das war es schon, man spielt einen Clip, gelangt mit
8
in die Abspielliste.

Bleibt eigentlich nur die Frage, wie erzeugt man eine Abspielliste, das geht relativ einfach, sogar mit selektiver Auswahl via FB.

Dazu eignet sich das filebrowser-plugin, folgender Eintrag in die commands.conf. (siehe Struktur Icon Achtung.png)

Playlist:*:find %M -follow -type f > /tmp/playlist && echo Created /tmp/playlist
Im Plugin kann man bequem, das auswählen, was in die Liste soll
Mark
bzw.
Mark all
.

Wer möchte, kann diese auch mit einem Editor der Wahl selbst anlegen, format.

Datei
/tmp/playlist
/PATH/FILE
/PATH/FILE


Andere Möglichkeit wäre, das ändern der mplayer.sh, es würde somit immer eine Playlist von aktuellen verzeichnis erstellt werden.

+ find $(dirname $1) -type f >/tmp/playlist
  exec $CMDLINE "$FILE

Nachteil.

  • Es sollten alle Clips im selben Format vorliegen.
    • Berechnung erfolgt für den momentan (erst) gewählten Titel (mplayer.sh), alle nachfolgenden bekommen somit die Einstellungen von 1 vererbt.

[Bearbeiten] Automatische Playlisten anhand von Dateinamen

mplayer-multi erweitert das mplayer-plugin um die Fähigkeit, einen in mehrere Dateien mit fortlaufender Nummerierung geteilten Film oder entsprechend benannte Serienepisoden abzuspielen.

[Bearbeiten] Leistungsschwache CPUs

Wenn der Prozessor langsamer als ~ 800 MHz ist, sollte man in der $PATH/mplayer.sh.conf vor der Option SLOW_CPU das # entfernt werden, so dass diese Option aktiv wird. Hiermit wird jeder Film auf VCD-Format skaliert - diese Auflösung (352x288 PAL, bzw. 352x240 NTSC) schaffen oft auch Prozessoren mit 800MHz und weniger.

[Bearbeiten] Ton zu leise!

Ein häufig auftretendes Problem ist, dass der Ton beim Abspielen einer Datei mit dem mplayer-plugin zu leise wiedergegeben wird. Bei der Rückkehr in den VDR dröhnt dann die Bude, da man im mplayer den Ton hochgeregelt hat, um etwas zu verstehen. Mit folgendem Tipp von Tüddelkopp aus dem VDR Portal Forum lässt sich das Problem umgehen: In der Datei mplayer.sh.conf in der Zeile USERDEF folgendes hinzufügen: -af volnorm -softvol -softvol-max 400 -volstep 5

Das ganze müsste dann also in etwa so aussehen:

USERDEF="-quiet -osdlevel 0 -af volnorm -softvol -softvol-max 400 -volstep 5"


Der Wert für -softvol-max kann stufenweise bis auf 1000 erhöht werden. Einfach ausprobieren und nicht bei 1000 anfangen, sonst werden die Nachbarn sauer.

[Bearbeiten] H.264/FLV Wiedergabe ruckelt

Es kann passieren, dass ein Videostream, der mit dem x264-Kodierer erstellt wurde und sich in einem Matroska-Container befindet, bei der Wiedergabe ruckelt. Zudem wird häufig nicht der deutsche Audiostream wiedergegeben. Um diese Probleme zu beheben, kann man einfach in der Datei mplayer.sh.conf in der Zeile USERDEF folgendes hinzufügen: -no-correct-pts -alang ger

Beispielsweise könnte die USERDEF-Zeile dann folgendermaßen aussehen:

USERDEF="-quiet -osdlevel 0 -af volnorm -softvol -softvol-max 800 -volstep 5 -no-correct-pts -alang ger"

oder

USERDEF="-quiet -osdlevel 0 -af volnorm -softvol -softvol-max 800 -volstep 5 -nocorrect-pts -alang ger"




[Bearbeiten] Snapshot

hg clone http://hg.muempf.de/mp3

[Bearbeiten] Aktuelle Version

0.10.2

[Bearbeiten] Links

  1. Homepage des Plugins
  2. MPlayer
  3. Shell Script (mplayer.sh)
In anderen Sprachen