Mplayer-plugin
(→Installation) |
Wirbel (Diskussion | Beiträge) K (Änderungen von Benutzer:78.129.208.30 rückgängig gemacht und letzte Version von Benutzer:Wirbel wiederhergestellt) |
||
Zeile 41: | Zeile 41: | ||
* scripts (''mplayer.sh'') | * scripts (''mplayer.sh'') | ||
− | + | ==Installation== | |
+ | ===Optionen=== | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | bgcolor=#efefef | WITHOUT_MP3=1 | ||
+ | | Ü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 | ||
+ | |} | ||
+ | |||
+ | <!-- ===Patches=== --> | ||
+ | ===Source=== | ||
+ | * DivX4Linux | ||
+ | cd $SOURCEDIR | ||
+ | tar xvzf divx4linux-<VERSION>.tgz | ||
+ | cd divx4linux-<VERSION> | ||
+ | sh install.sh | ||
+ | cd - | ||
+ | |||
+ | * XviD | ||
+ | cd $SOURCEDIR | ||
+ | tar jxvf xvidcore-<VERSION>.tar.bz2 | ||
+ | cd xvidcore-<VERSION>/build/generic | ||
+ | ./configure --prefix=/usr/local | ||
+ | make | ||
+ | make install | ||
+ | cd /usr/local/lib | ||
+ | ln -s libxvidcore.so.MAJOR.MINOR libxvidcore.so.MAJOR | ||
+ | ldconfig | ||
+ | |||
+ | * Lame | ||
+ | cd $SOURCEDIR | ||
+ | tar xvzf lame-<VERSION>.tar.gz | ||
+ | cd lame-<VERSION> | ||
+ | ./configure --prefix=/usr/local | ||
+ | make | ||
+ | make install | ||
+ | |||
+ | * FFMPEG | ||
+ | cd $SOURCEDIR | ||
+ | tar xvzf ffmpeg-<VERSION>.tar.gz | ||
+ | ln -s ffmpeg-<VERSION> ffmpeg | ||
+ | cd ffmpeg | ||
+ | ./configure --prefix=/usr/local \ | ||
+ | --enable-shared | ||
+ | make | ||
+ | make install | ||
+ | ldconfig | ||
+ | |||
+ | * MPlayer | ||
+ | cd $SOURCEDIR | ||
+ | tar jxvf all-<VERSION>.tar.bz2 | ||
+ | mkdir -p /usr/local/lib/win32 | ||
+ | cp all-<VERSION>/* /usr/local/lib/win32 | ||
+ | |||
+ | tar jxvf font-arial-iso-8859-1.tar.bz2 | ||
+ | mkdir -p ~/.mplayer/font | ||
+ | cp font-arial-iso-8859-1/font-arial-14-iso-8859-1/* ~/.mplayer/font | ||
+ | |||
+ | // Optional für X11 falls mit (--enable-gui) übersetzt wurde... | ||
+ | // tar jxvf default-<VERSION>.tar.bz2 | ||
+ | // mkdir -p ~/.mplayer/Skin | ||
+ | // mv default ~/.mplayer/Skin | ||
+ | |||
+ | tar xvzf mplayer.sh-<VERSION>.tar.gz | ||
+ | cp mplayer.sh mplayer.sh.conf /usr/local/bin | ||
+ | |||
+ | cd $SOURCEDIR | ||
+ | tar jxvf MPlayer-<VERSION>.tar.bz2 | ||
+ | cd MPlayer-<VERSION> | ||
+ | ./configure --prefix=/usr/local \ | ||
+ | --enable-largefiles \ | ||
+ | --enable-menu \ | ||
+ | --with-extraincdir=$SOURCEDIR/DVB/include \ | ||
+ | --with-codecsdir=/usr/local/lib/win32 \ | ||
+ | --enable-lirc | ||
+ | make | ||
+ | make install | ||
+ | cp -v etc/codecs.conf etc/input.conf ~/.mplayer | ||
+ | `etc/codecs.conf' -> `/root/.mplayer/codecs.conf' | ||
+ | `etc/input.conf' -> `/root/.mplayer/input.conf' | ||
+ | |||
+ | ===[[Arch-Linux]]=== | ||
+ | pacman -S libid3tag libmad libsndfile libvorbis mplayer | ||
+ | |||
+ | ===[[Crux]]=== | ||
+ | prt-get depinst libid3tag libmad libsndfile libvorbis mplayer | ||
+ | |||
+ | ===[[Debian]]=== | ||
+ | apt-get install libvorbis-dev libmad0-dev libsndfile1-dev libogg-dev libid3tag0-dev mplayer-586 | ||
+ | |||
+ | ===[[Gentoo]]=== | ||
+ | emerge -va libid3tag libmad libsndfile libvorbis mplayer | ||
+ | |||
+ | ===[[SuSE]]=== | ||
+ | yast -i libid3tag libid3tag-devel mad-devel libsndfile-devel libvorbis-devel MPlayer | ||
==Konfiguration== | ==Konfiguration== |
Version vom 5. Mai 2008, 12:15 Uhr
Inhaltsverzeichnis |
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.
So können Filme aller Formate (welche der MPlayer beherscht) 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.
Bilder
Bedienung
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. |
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).
Softwareanforderungen
Installation
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 |
Source
- DivX4Linux
cd $SOURCEDIR tar xvzf divx4linux-<VERSION>.tgz cd divx4linux-<VERSION> sh install.sh cd -
- XviD
cd $SOURCEDIR tar jxvf xvidcore-<VERSION>.tar.bz2 cd xvidcore-<VERSION>/build/generic ./configure --prefix=/usr/local make make install cd /usr/local/lib ln -s libxvidcore.so.MAJOR.MINOR libxvidcore.so.MAJOR ldconfig
- Lame
cd $SOURCEDIR tar xvzf lame-<VERSION>.tar.gz cd lame-<VERSION> ./configure --prefix=/usr/local make make install
- FFMPEG
cd $SOURCEDIR tar xvzf ffmpeg-<VERSION>.tar.gz ln -s ffmpeg-<VERSION> ffmpeg cd ffmpeg ./configure --prefix=/usr/local \ --enable-shared make make install ldconfig
- MPlayer
cd $SOURCEDIR tar jxvf all-<VERSION>.tar.bz2 mkdir -p /usr/local/lib/win32 cp all-<VERSION>/* /usr/local/lib/win32 tar jxvf font-arial-iso-8859-1.tar.bz2 mkdir -p ~/.mplayer/font cp font-arial-iso-8859-1/font-arial-14-iso-8859-1/* ~/.mplayer/font // Optional für X11 falls mit (--enable-gui) übersetzt wurde... // tar jxvf default-<VERSION>.tar.bz2 // mkdir -p ~/.mplayer/Skin // mv default ~/.mplayer/Skin tar xvzf mplayer.sh-<VERSION>.tar.gz cp mplayer.sh mplayer.sh.conf /usr/local/bin cd $SOURCEDIR tar jxvf MPlayer-<VERSION>.tar.bz2 cd MPlayer-<VERSION> ./configure --prefix=/usr/local \ --enable-largefiles \ --enable-menu \ --with-extraincdir=$SOURCEDIR/DVB/include \ --with-codecsdir=/usr/local/lib/win32 \ --enable-lirc make make install cp -v etc/codecs.conf etc/input.conf ~/.mplayer `etc/codecs.conf' -> `/root/.mplayer/codecs.conf' `etc/input.conf' -> `/root/.mplayer/input.conf'
Arch-Linux
pacman -S libid3tag libmad libsndfile libvorbis mplayer
Crux
prt-get depinst libid3tag libmad libsndfile libvorbis mplayer
Debian
apt-get install libvorbis-dev libmad0-dev libsndfile1-dev libogg-dev libid3tag0-dev mplayer-586
Gentoo
emerge -va libid3tag libmad libsndfile libvorbis mplayer
SuSE
yast -i libid3tag libid3tag-devel mad-devel libsndfile-devel libvorbis-devel MPlayer
Konfiguration
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.
Modi
Der Mplayer selbst kann in 2 "Modi" gesteuert werden:
- Slave (empfohlen)
- 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!
{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/mplayer/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.
Übergabe
vdr -P'mplayer -m $PATH/mount.sh -M $PATH/mplayer.sh -S mplayer'
Übersicht der Slave Mode Befehle
Übersicht: http://www.mplayerhq.hu/DOCS/tech/slave.txt
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) |
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:
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"
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.
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?
Meist fehlt 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 makierte 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, sowieOder 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.
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 )
Playlist:*:find %M -follow -type f > /tmp/playlist && echo Created /tmp/playlistIm Plugin kann man bequem, das auswählen, was in die Liste soll
Wer möchte, kann diese auch mit einem Editor der Wahl selbst anlegen, format.
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
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 ~ 860 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:
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.