Da ich mit den bestehenden Encoder-Scripten nicht wirklich zufrieden war, hab ich mir mal ein eigenes zusammengeschustert. Was es ausspuckt, läßt sich in den Beispieldateien betrachten:
[Akryls (11.5MB)]
[Elephants Dream(25MB)]
Elephants Dream vom Orange Open Movie Project löste die Idee zum Script als erstes aus, da ich nicht einsah, warum es unter einer Dateigröße von 60MB absolut unerträglich anzuschauen war. Jetzt ist es weniger als halb so groß und sieht auch noch besser aus
Alte Fassung mit nur dem Nötigsten Code:
Über Feedback zu den erzeugten Dateien und Verbesserungen am Script würde ich mich freuen,
Loxi
[Akryls (11.5MB)]
[Elephants Dream(25MB)]
Elephants Dream vom Orange Open Movie Project löste die Idee zum Script als erstes aus, da ich nicht einsah, warum es unter einer Dateigröße von 60MB absolut unerträglich anzuschauen war. Jetzt ist es weniger als halb so groß und sieht auch noch besser aus
- Das Script erstellt einen OGM-Container, stellt aber noch ein AVI hintenan um von der GP2X als Video erkannt zu werden.
- Bei leisen Videos wird die Laustärke angehoben, damit man gegebenenfalls auch über die Lautsprecher etwas hören kann.
- Alles in allem läuft es noch recht fix durch: knapp 60% der Laufzeit auf einem AMD64 4000+ bis zum fertigen Video.
- 90 Minuten Film werden zu einer ~200MB großen Videodatei.
- Vorraussetzungen sind oggenc, mencoder(mplayer) sowie ogmtools.
- Einfach als meinethalben gp2xenc abspeichern, dann mit gp2xenc foo.avi das Video erzeugen.
Code:
#!/bin/bash
if [ -z "$@" ]
then
echo " USAGE: encode videofile1 videofile2"
echo " EXAMPLE: convert2gp2x \"/tmp/the big apple.avi\" /mnt/fun/*.mpeg"
echo ""
else
for i in "$@";
do
if [ -r "$i" ]
then
echo "processing $i..."
mkfifo "$i".fifo
oggenc "$i".fifo --resample 32000 -q1 -o "$i".ogg & mplayer -vc null -vo null -af volnorm -ao pcm:waveheader:fast:file="$i".fifo "$i"
mencoder -sws 10 -vf scale=320:-3,harddup -ffourcc DX50 -nosound -ovc lavc -lavcopts vbitrate=250:v4mv:mbd=2:trell:cmp=3:vhq=1:vpass=1:last_pred=2:dia=-1:vb_strategy=1:turbo "$i" -o /dev/null -passlogfile "$i"pass.log
mencoder -sws 10 -vf scale=320:-3,harddup -ffourcc DX50 -nosound -ovc lavc -lavcopts vbitrate=250:v4mv:mbd=2:trell:cmp=3:vhq=1:vpass=2:last_pred=2:dia=-1 "$i" -o small."$i" -passlogfile "$i"pass.log
ogmmerge -o small."$i".ogm.avi small."$i" "$i".ogg
rm -f "$i".fifo
rm -f "$i".ogg
rm -f "$i"pass.log
rm -f small."$i"
echo ""
else
echo "ERROR: cannot read $i"
fi
done
fi
exit 0
Code:
#!/bin/bash
mkfifo "$1".fifo
oggenc "$1".fifo --resample 32000 -q1 -o "$1".ogg & mplayer -vc null -vo null -af volnorm -ao pcm:waveheader:fast:file="$1".fifo "$1"
mencoder -sws 10 -vf scale=320:-3,harddup -ffourcc DX50 -nosound -ovc lavc -lavcopts vbitrate=250:v4mv:mbd=2:trell:cmp=3:vhq=1:vpass=1:last_pred=2:dia=-1:vb_strategy=1:turbo "$1" -o /dev/null -passlogfile "$1"pass.log
mencoder -sws 10 -vf scale=320:-3,harddup -ffourcc DX50 -nosound -ovc lavc -lavcopts vbitrate=250:v4mv:mbd=2:trell:cmp=3:vhq=1:vpass=2:last_pred=2:dia=-1 "$1" -o small."$1" -passlogfile "$1"pass.log
ogmmerge -o small."$1".ogm.avi small."$1" "$1".ogg
rm -f "$1".fifo
rm -f "$1".ogg
rm -f "$1"pass.log
rm -f small."$1"
exit 0
Über Feedback zu den erzeugten Dateien und Verbesserungen am Script würde ich mich freuen,
Loxi