Kurz-Howto: Videos für PDAs konvertieren

(2007-08-21)

Worum geht’s?

Da die meisten PDAs nur begrenzten Speicher haben (in meinem Fall eine 512 MB-SD-Karte) und außerdem ohnehin weniger Pixel darstellen können, als PCs, lohnt es sich, vorhandene Videos zu konvertieren. Wir werden dies mithilfe von mencoder durchühren, der für alle gängigen Betriebssysteme verfügbar ist.

Ich werde die Schritte am Beispiel eines Linuxsystems durchführen, für andere Systeme können also eventuell Zusatzschritte notwendig sein.

Pakete installieren

Bei meinem (Ubuntu-)System ist der mencoder aus dem MPlayer-paket leider ohne libmp3lame kompiliert, sodass wir nicht die bequeme Methode wählen können. die libmp3lame können wir jedoch via apt-get installieren: apt-get install liblame-dev.

Anschließend laden wir uns die aktuelle MPlayer-version von der MPlayer-Website herunter. Wie bei anderen Programmen können wir nach dem entpacken via tar xfj MPlayer-1.0pre8.tar.bz2 in das entsprechende Verzeichnis wechseln und via ./configure && make mencoder das Programm kompilieren. Ich persönlich habe es manuell nach /usr/local/bin verschoben und vorher die bestehende (Ubuntu-)Version umbenannt – einfach make install benutzen sollte aber auch gehen, gerade wenn man keinen MPlayer via apt-get installiert hat.

Datei konvertieren

Unterstützt werden alle Dateitypen/Codecs, die auch MPlayer kann – installiert euch also die passenden Codecs, wenn es nicht klappen sollte (Anleitungen dazu gibt’s im Web).

Wir rufen nun mencoder input.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=224 -ffourcc divx -srate 22050 -af resample=22050,volnorm -vf crop=480:288 -oac mp3lame -lameopts cbr:br=32 -o output.avi auf. Das klingt zunächst kompliziert, doch pflücken wir die ganzen Optionen in Ruhe auseinander:

  • input.avi: Dies ist die Eingangsdatei.
  • -ovc lavc: Die Bibliothek libavcodec soll benutzt werden.
  • -lavcopts vcodec=mpeg4:vbitrate=224: Als Codec verwenden wir MPEG4 (DivX) mit der Bitrate 224 kbit/s.
  • -ffourcc divx: Als FourCC soll „divx” gesetzt werden. Daran erkennt der Player später, dass es sich um eine DivX-Datei handelt.
  • -srate 22050: Die Sounddatenrate wird auf 22 kHz heruntergesetzt, das langt für Kopfhörer.
  • -af resample=22050,volnorm: Der Audiofilter „resample” wird benutzt um die Bitrate zu senken, die Lautstärke wird dabei auf den Normalpegel gesetzt.
  • -vf crop=480:288: Der Videofilter „crop” verkleinert das Bild auf 480x288 Pixel.
  • -oac mp3lame: Die libmp3lame wird zum Encodieren des Tons verwendet.
  • -lameopts cbr:br=32: Wir verwenden Constant Bitrate mit 32 kbit/s (niedrigere Bitrates machen ab und zu Probleme).
  • -o output.avi: Und ausgegeben wird die fertige Datei in output.avi

OK – nun lassen wir ihn durchlaufen; das Encodieren dauert natürlich eine Weile. Bei mir waren es ungefähr 10 Minuten für 550 MB (1 Stunde Video im DivX-Format, meinen Rechner findet man auf der Meine PCs-Seite, die Konvertierung fand auf A64x statt). Die fertige Datei war dann 100 MB groß, es lassen sich also auf eine SD-Karte ca 4-5 Stunden Video abspeichern.

Man kann diesen Befehl natürlich auch als Alias in der Shell definieren oder sich ein kleines Script erstellen, das könnte zum Beispiel so aussehen:

#!/bin/sh

MENC_PATH=/usr/local/bin/mencoder

if [ -z "${2}" ]; then
    echo "Keine Parameter angegeben, Syntax: ${0} <Eingangsdatei> <Ausgabedatei>"
    exit 0
fi

echo "Konvertiere ${1} für PDAs in Datei ${2}..."
${MENC_PATH} "${1}" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=224 -ffourcc divx -srate 22050 \
-af resample=22050,volnorm -vf crop=480:288 -oac mp3lame -lameopts cbr:br=32 -o "${2}"

Abspielen auf dem PDA

Der Player TCPMP ist hierfür meine Empfehlung. Er beherrscht – soweit ich das testen konnte – die meisten Formate und kommt mit den von mencoder erstellen Dateien problemlos klar.

Mein PDA hat eine 300 MHz-CPU und Windows Mobile 5.01. Die Wiedergabe läuft sehr flüssig, ich konnte bisher kein Stocken erkennen.