Mplayer-plugin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Autor: Stefan Huelswitt

Das Plugin ist eine Aufrufhülle für den VDR, mit dem er den MPlayer einbinden kann. Daher muss außer diesem Plugin auch noch ein spezieller MPlayer installiert werden, der seine Ausgaben über den Videoausgang der Full-Featured DVB-Karte ausgeben kann.

Das MPlayer Plugin ruft das Skript mplayer.sh auf, welches hier beschrieben ist. So können Filme aller Formate von Festplatte, CD oder auch DVD gelesen werden und auf dem Fernseher dargestellt werden. Die MPlayer Wiedergabe wird mit der Fernbedienung des VDR gesteuert.

Bilder

Einstellungen
Divx
Divx

Hardwareanforderungen

Je nach abzuspielendem Format braucht man unterschiedliche Prozessorleistung (siehe Hardware=>Prozessor). Da i.d.R. 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 1GHz nötig, andere Formate lassen sich jedoch auch schon mit weit langsameren Prozessoren abspielen (z.B. Celeron 433).

Softwareanforderungen

  • MPlayer
  • diverse codec
  • lame
  • ffmpeg
  • xvid codec
  • scripts

Installation

Source

cd $SOURCEDIR
tar xvzf divx4linux-<VERSION>.tgz
cd divx4linux-<VERSION>
sh install.sh
cd -

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
cd $SOURCEDIR

tar xvzf lame-<VERSION>.tar.gz
cd lame-<VERSION>
./configure --prefix=/usr/local
make
make install
cd -

tar xvzf ffmpeg-<VERSION>.tar.gz
ln -s ffmpeg-<VERSION> ffmpeg
cd ffmpeg
./configure --prefix=/usr/local \
            --enable-shared
make
make install
ldconfig
cd -

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

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 libid3tag libmad libsndfile libvorbis mplayer -n

SuSE

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

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


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 /video/plugins/DVD-VCD/VCD

Außerdem muss ein entsprechender Eintrag in /etc/vdr/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.

Übergabe

vdr -P'mplayer -m /usr/local/bin/mount.sh -M /usr/local/bin/mplayer.sh'

Slave Mode

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


Parameter

Parameter (kurz) Parameter (lang) Beschreibung
-m CMD --mount=CMD use CMD to mount/unmount/eject mp3 sources (default: mount.sh)
-M CMD --mplayer=CMD use CMD when calling MPlayer (default: mplayer.sh)


Probleme

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

Der 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.

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.

Tipps

Playlist (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:*:for p in %M ; do echo ${p/#\/\///} ; done > /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.

Leistungsschwache CPUs

Wenn der Prozessor langsamer als 1GHz 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, daß 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 Tip von Tüddelkopp aus dem VDR Portal Forum läßt 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üßte dann also in etwa so aussehen.

Datei
mplayer.sh.conf
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.


Links

[1] http://www.mplayerhq.hu/homepage Homepage -> MPlayer
[2] http://ffmpeg.sourceforge.net Homepage -> ffmpeg
[3] http://lame.sourceforge.net Homepage -> lame
[4] http://www.xvid.org Homepage -> xvid
[5] http://www.muempf.de/index.html Homepage des Plugins
[6] http://batleth.sapienti-sat.org/projects/VDR Shell Script (mplayer.sh)
[7] http://www.js-home.org/vdr/mplayer-multi/index.php mplayer-multi
[8] http://www.divx.com/divx/linux/ divx4linux
[9] http://www.mplayerhq.hu/homepage/design7/dload.html Fonts
[10] ftp://ftp1.mplayerhq.hu/MPlayer/releases/codecs/ "all-codecs"
In anderen Sprachen