Um Videos von youtube usw. auf das Handy zu bringen ist es notwendig diese in das 3gp-Format zu konvertieren.
Die Software ffmpeg liefert da unter Linux all die notwendigen Programme.
Mit dem Kommando:
$ mencoder ~/The_Switch_-_Vancouver_Film_School__VFS_.flv \
-nosound -ovc lavc -lavcopts vcodec=mpeg4 \
-vf expand=176:144,scale=176:144 -o ~/tmp/cube.avi -ofps 12
wandeln man z.B. den Film The_Switch_-_Vancouver_Film_School__VFS_.flv in das avi-Format um in der für das Handy notwendigen Größe.
Der avi-Film wird unter dem Namen cube.avi im ~/tmp-Verzeichnis abgelegt.
Anschließend holt man die Audiodaten aus der Originaldatei, die Audiodaten werden in der Datei audiodump.wav abgespeichert, diese Datei liegt in dem Verzeichnis in dem das Kommando gestartet wurde:
$ cd ~/tmp
$ mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc \ ~/The_Switch_-_Vancouver_Film_School__VFS_.flv
Im ~/tmp-Verzeichnis findet sich die Datei audiodump.wav.
Nun werden die avi-Datei und die wav-Datei zusammengeführt:
$ ffmpeg -i ~/tmp/cube.avi -i ~/tmp/audiodump.wav -b 48000 \
-ac 1 -ab 12200 -map 0.0 -map 1.0 \
~/tmp/The_Switch_-_Vancouver_Film_School__VFS_.3gp
Als Ergebnis erhälten man die Datei ~/tmp/The_Switch_-_Vancouver_Film_School__VFS_.3gp, die nun aufs Handy kopiert werden kann um sie dort abzuspielen.
Will man nicht immer so lange Kommandozeilen eingegeben, kann man die Arbeit auch einem Shellscript überlassen.
Als Beispiel folgt ein Shellscript, dem man beim Aufruf den Namen des zu konvertierenden Flash-Files übergibt, d.h. wenn das Shellscript unter dem Namen flv23gp.sh abgespeichert wurde und das Flash-File den Namen The_Switch_-_Vancouver_Film_School__VFS_.flv hat und im Homeverzeichnis liegt so lautet der Aufruf:
./flv23gp.sh The_Switch_-_Vancouver_Film_School__VFS_.flv
Läuft das Shellscript fehlerlos durch so findet man die Datei The_Switch_-_Vancouver_Film_School__VFS_.3gp im Verzeichnis ~/tmp.
------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
DATEI=$1
NAME=${DATEI##*/}
BASENAME=${NAME%%.*}
EXTENSION=${NAME##*.}
mkdir ~/tmp >/dev/null 2>&1
rm -f ~/tmp/movie.avi
rm -f ~/tmp/audiodump.wav
mv $DATEI ~/tmp
cd ~/tmp
mencoder ~/tmp/$NAME -nosound -ovc lavc -lavcopts vcodec=mpeg4 \
-vf expand=176:144,scale=176:144 -o ~/tmp/movie.avi -ofps 12
mplayer -vo null -ao pcm -af resample=8000, \
volume=+4db:sc ~/tmp/$NAME
ffmpeg -i ~/tmp/movie.avi -i ~/tmp/audiodump.wav -b 48000 \
-ac 1 -ab 12200 -map 0.0 -map 1.0 ~/tmp/$BASENAME.3gp
rm -f ~/tmp/movie.avi
rm -f ~/tmp/audiodump.wav
exit 0
------------------------------------------------------------------------------------------------------------------------------------
Weitere Links zum Nachlesen:
http://kanotix.wordpress.com/2006/08/17/video-in-3gp-umwandeln-fur-mobiltelephone/
http://www.niemueller.de/wiki/?ConvertVideoTo3GP
http://www.xmedia-recode.de/hilfe/3gp.html
PS: Verbesserungen in der Filmqualität können eventuell mit folgenden geänderten Optionen erreicht werden (geänderte Werte sind in roter Farbe gehalten):
mencoder QUELLDATEI.avi -nosound -ovc lavc -lavcopts \
vcodec=mpeg4 -vf expand=176:144,scale=176:144 \
-o movie.avi -ofps 16
ffmpeg -i movie.avi -i audiodump.wav -b 96k -ac 1 \
-ab 12200 -map 0.0 -map 1.0 filmout.3gp
0 Kommentare:
Kommentar veröffentlichen