Kostenlose Software á la Freeware oder Public Domain sind ja schön und gut. Aber OpenSource Software (OSS) ist noch besser, warum, möchte ich an dieser Stelle nicht weiter auswalzen, aber ich kann diesen Wikipedia Artikel über Open Source jedem Interessierten als Bettlektüre nur empfehlen!
Für unsere Zwecke soll der unter der GPL stehende ffmpeg Encoder/Decoder/Player dienen. Dieser beherrscht viele der gängigen Videoformate sowohl zum dekodieren als auch zum enkodieren. Allerdings ist die Version, die mit Debian Sarge im apt-repository mitgliefert wird, ohne die Bindings an einige Codec-Bibliotheken (wie etwa liblame – für MP3-Enkodierungs-Funktionen) kompiliert worden.
>Um aber die volle Funktionalität des Programms zu erreichen, müssen entweder die fehlenden Libraries kompiliert und installiert werden und danach der ffmpeg erneut aus dem Source Code ‚übersetzt‘ werden. Oder man fügt 2 weitere (inoffizielle) repositories den Apt-Quellen hinzu, was für einen ungeübten Anwender weit weniger PITA ist…
Dazu editieren wir die folgende Datei:
/etc/apt/sources.list
und fügen dort am Ende folgende 2 Zeilen ein:
deb sarge main deb-src sarge main
Nun aktualisieren wir den Apt-Cache (als Benutzer root natürlich), damit apt auch weiss, dass ihm nun neue Pakete zur Verfügung stehen:
su Password: apt-get update
und installieren nun ffmpeg, welches schon aus den neuen Quellen installiert wird und auch gleich die nötigen Codec-libraries mit auf die Platte installiert:
apt-get install ffmpeg
Nun ist der schwierigste Teil bereits geschafft und es gilt nur noch, herauszufinden, welche der schier unendlich vielen Kommandozeilen-Optionen nun wirklich notwendig sind und was sie bewirken. Fangen wir mal mit einem einfachen Beispiel an. Dazu legen wir eine beliebige Videodatei in ein irgendein, vorzugsweise leeres, Verzeichnis und wechseln dort hin.
ffmpeg -i original_video.avi -ar 22050 -ab 32 -f flv -s 320x240 umzuwandelndes_video.flv
Kurzbeschreibung der eingesetzten Optionen:
-i | Eingabe-Video-Datei |
-ar | neue Audio Sample-Rate |
-ab | Ausgabe-Bitrate |
-f | (Datei) Format |
-s | neue Video-Auflösung |
[-acodec | forciert einen Codec] |
ffmpeg ist glücklicherweise so schlau, dass er automatisch die zum Dateiformat passenden Codecs auswählt, in unserem Fall zum .flv (Flash-Video) den flv-Videocodec und lame-mp3-Audiocodec. Beim Erzeugen von .avi Dateien, ist diese Zuordnung z. B. nicht eindeutig, weil AVI ein allzweck-Container Format ist, somit muss man mit -acodec die gewünschten Eintragungen manuell vornehmen. Dabei hilft es, sich mit
ffmpeg -formats
die zu Verfügung stehenden Dateiformate und Codecs ausgeben zu lassen. Startet man das Programm ganz ohne Parameter, gibt es alle anderen verfügbaren Optionen aus.
Die Umwandlung unseres des TV-Beitrags (aus dem letzten Eintrag) über Web-Logs in das Flash-Player Format geht dann rasend schnell von statten, da dieses Programm keine GUI hat und auch keine Einzelbilder während des Konvertierungsvorgangs anzeigt. Dabei ist die Dateigröße nach der Umwandlung nur noch knapp 1/3 so groß.
All diejenigen, die hauptsächlich oder ausschließlich unter Windows arbeiten, kann ich zu diesem Zweck auch den Riva VX: Riva FLV Encoder ans Herz legen. Als Backend nutzt er ebenfalls ffmpeg, kommt aber mit einer hübschen klicki-bunti Oberfläche daher.