Image-plugin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Autor: Andreas Brachold

Zeigt Bilder an, die im Format jpeg, tiff, png, bmp und vielen mehr abgespeichert sind

Da die Bilder nicht über die Grafikkarte, sondern über die DVB-Karte ausgegeben werden, müssen sie erst in einen MPEG2 Film konvertiert werden. Dieser enthält nur ein einziges Bild (Frame) und steht sofort auf 'Pause'.

Bilder

Vorschau 3x3

Hardwareanforderungen

  • Eine DVB-Karte, aber die ausgabe über andere Wege, wie eine DXR3-Karte oder das Xine-plugin funktionieren meist auch.
  • Da die Konvertierung auf langsamen Prozessoren einige Zeit dauert, ist dieses Plug-In nicht auf jeder Hardware praxistauglich, 500 Mhz sollten es schon sein.

Softwareanforderungen

  • netpbm (benötigt selber zlib, libpng, libjpeg, ...)
  • ffmpeg
  • libexif
  • file (optional, wird von netpbm genutzt)

Installation

Source

Die erforderlichen Pakete werden, wie im allgemeinen mit dem Dreisatz "configure && make && make install" kompiliert. Dabei ist speziell bei netpbm die Ausgabe von "configure" zu kontrollieren, welche weiteren Programmpakete fehlen.

  • netpbm
cd $SOURCEDIR
tar xvzf netpbm-<VERSION>.tgz
cd netpbm-<VERSION>
./configure
make
make package

./installnetpbm # Auf Frage antworten: install prefix (/usr/local/netpbm) ==> /usr/local
                                                                              ^^^^^^^^^^
rm -r /tmp/netpbm
  • libexif
cd -
tar xvzf libexif-<VERSION>.tar.gz
libexif-<VERSION>
./configure --prefix=/usr/local
make
make install
  • ffmpeg
cd -
tar xvzf ffmpeg-<VERSION>.tar.gz
cd ffmpeg-<VERSION>
./configure --prefix=/usr/local \
           --enable-shared
make
make install
ldconfig

Pakete installieren

Statt der händischen Installation der abhängigen Softwareprogramme aus deren Quellcodepakten bietet es sich an für die verschieden Distributionen auf deren vorkompiliere Binärpakete zurückzugreifen.

Arch-Linux

pacman -S netpbm libexif ffmpeg

Crux

prt-get netpbm libexif ffmpeg

Debian

Quelle: http://www.vdrwiki.com/index.php/M%C3%B3dulo_osdpip

apt-get install netpbm libexif-dev ffmpeg libavcodeccvs libavcodeccvs-dev

Gentoo

emerge netpbm libexif ffmpeg

SuSE

yast -i netpbm libexif <BITTE ERGÄNZEN>

Übersetzen des Plugins

Es wird davon ausgegangen, das das Plugin bereits entpackt und verlinkt wurde, siehe Plugin Installation.

cd $SOURCEDIR/VDR
make all plugins
Hinweis
Hinweis

Wenn sich beim make der Compiler über ein nicht gefundenes -lavutil beschwert, dann im Makefile des Plugins den Eintrag.

LIBS += -lavcodec
ifneq ($(FFMVERSION),000408)
LIBS += -lavformat -lavutil
endif

Durch den folgenden ersetzen.

LIBS += -lavformat


Damit das image-Plugin vom VDR aufgerufen wird, muss dieses in der runvdr mittels Parameter -P geladen werden.

VDRCMD="$VDRPRG -P'image' -P'anderes_plugin' -w 60 $*"

Für die Bildkonvertierung werden vom image-Plugin noch zwei mitgelieferte Skripte benötigt. Diese Skripte zur Bildkonvertierung und das Einhängen von Datenträgern sollten in ein Verzeichnis innerhalb des PATH kopiert oder verlinkt werden. Hierzu würde sich das Verzeichnis /usr/local/bin anbieten.

ln -s $SOURCEDIR/PLUGINS/src/image/scripts/imageplugin.sh /usr/local/bin
ln -s $SOURCEDIR/PLUGINS/src/image/scripts/mount.sh /usr/local/bin

Aber der Standort der Skripte kann auch per Kommandozeilenparameter frei definiert werden. Es wie hier im Beispiel auch direkt in das Verzeichnis des Quelltext referenziert werden.

vdr -P'image --convert=$SOURCEDIR/PLUGINS/src/image/scripts/imageplugin.sh ...

Abschliessend zur Installation ist die Datei imagesources.conf in den VDR Konfigurations Ordner zukopieren. In dieser Datei werden alle genutzten Datenträger wie Laufwerke für Speicherkarten, CDROM-Laufwerke oder lokale Festplatten mit Bildverzeichnisse einzutragen. Das Standardverzeichnis dafür ist $VDRCONFIG/plugins.

Nicht wirklich notwendig kann dieser Ordner aber abweichend vom Standardverzeichnis für Konfigurationsdateien aller Plugins, mit einer unten aufgeführten Kommandozeilenoption den persönlichen Vorlieben angepasst werden. Hier als Beispiel mittels der Kommandozeilenoption --config=image :

mkdir -p $VDRCONFIG/plugins/image
cp $SOURCEDIR/PLUGINS/src/image/examples/imagesources.conf $VDRCONFIG/plugins/image

Aufgerufend werden muss das Plugin dann mit

vdr -P'image --config=image ...


Parameter

Parameter (kurz) Parameter (lang) Beschreibung
-m KMD --mount=KMD KMD für mount/unmount/eject Bilddatenträger (default: mount.sh)
-C KMD --convert=KMD verwendetes KMD zum Wandeln der Bilder (default: imageplugin.sh)
-c PATH --config=PATH Verzeichnis zum Ablegen der Konfigurationsdaten, die Angabe ist relativ zum VDR Plugin Konfigurationsverzeichnisses (default: "")

Bedienung

Nach dem Aufrufen des Menüpunktes "Bilder" entweder eine Bilddatei oder einen Dateiordner mit weiteren Bilder mittels der FB-Taste "OK" auswählen.

Alle Modi

OK Umschalten der OSD Informationen
Play/Pause Starte Diaschau/ Stoppe Diaschau
Stop/Blau Stoppe Plugin
Rot Öffne Menu mit Bildbefehle

Während der Bildbetrachtung

Zurück Stoppe Plugin
Links vorheriges Bild
Rechts nächstes Bild
Ab Springe drei Bilder zurück
Auf Springe drei Bilder vorwärts
7 Springe fünf Bilder zurück
9 Springe fünf Bilder vorwärts
0 Zeige Originalbild
1 Drehe 90 Grad gegen den Uhrzeigersinn
3 Drehe 90 Grad im Uhrzeigersinn
4 Diaschau-Anzeigezeit für Bilder in Sekunden verkleinern
6 Diaschau-Anzeigezeit für Bilder in Sekunden erhöhen
5 "Zoomwert erhöhen" und damit Zoom-Bedienung starten
8 "Zoomwert verkleinern" und damit Jump-Bedienung starten

Zoom-Bedienung

Zurück Zoomwert verkleinern
Links Bildausschnitt nach Links verschieben
Rechts Bildausschnitt nach Rechts verschieben
Ab Bildausschnitt nach Unten verschieben
Auf Bildausschnitt nach Oben verschieben
0 view original image
5 Zoomwert erhöhen
8 Zoomwert verkleinern

Vorschau-Menu (3x3 Übersicht)

Zurück Zeige Originalbild
Links vorherige Bildgruppe (9 Bilder weiter in der Vorschau)
Rechts nächste Bildgruppe (9 Bilder vorher in der Vorschau)
0 Zeige Originalbild
1 ... 9 Wählt ensprechendes Bild


Probleme

  • dxr3

Falls man das dxr3 und das Image-Plugin gemeinsam trotzdem nutzen will, sollte man im dxr3plugin-Sourcecode anpassen.

  • netpbm 10.30

Besagte Version hat mit pnmfile ein anderes Ausgabeformat, aber ich habe mich nicht getraut eine Bugreport zuschreiben :

imageplugin.sh: pnmfile < "$TMPFILE" -
imageplugin.sh: +++ pnmfile -
imageplugin.sh: pnmfile: bad magic number - not a PAM, PPM, PGM, or PBM file
....
imageplugin.sh: /usr/local/bin/imageplugin.sh: line 135: -:00 / -:: syntax error: operand expected (error token is ":00 / -:")
imageplugin: Error until read /tmp/image/VFuN1R6.pnm : 

Ein paar Versionen zurück 10.28 funktioniert es.

Tipps

frei definierbare Befehle

Quelle ../image/README

Die optionale Datei imagecmds.conf kann dazu genutzt werden, um frei definierbare Befehle auf das jeweils aktuell angezeigte Bild anzuwenden. Die Syntax ist exakt die Gleiche wie für die Datei commands.conf unter "man 5 vdr" beschrieben wurde. Wenn ein Befehl ausgeführt wird, wird der Datei des Bildes angehängt an den Befehlstext, getrennt durch ein Leerzeichen und einschlossen in Anführungszeichen (single quotes). Ein Fragezeichen "?" im Text vor dem ":" steht für "Bestätigung anfordern", nützlich für "rm -f %s".

Die Datei imagecmds.conf muss im gleichen Ordner, wie die anderen Konfigurationsdateien des Plugins gespeichert werden.

Aufgerufen wird dieses Befehlsmenu mit
Rot
(ein Bild muß geladen worden sein...)


Snapshot

Der letzte Entwicklerstand des Plugins ist auf dem BerliOS Developer SVN Repository verfügbar.

Er kann per anonymen SVN Zugang (svnserve) mit dem folgenden Befehlsatz heruntergeladen werden.

Für das erste Auslesen des svn-Repositories

cd $VDR-SOURCE-DIRECTORY/PLUGINS/src
svn checkout svn://svn.berlios.de/vdr-image/trunk image

und später, zum aktualiseren des Repositories

cd $VDR-SOURCE-DIRECTORY/PLUGINS/src/image
svn up

Links

  1. Netpbm
  2. FFmpeg
  3. Libexif
  4. File
  5. Homepage des Plugins
In anderen Sprachen