Dieser Artikel soll eine Äbersicht über ogg/theora und webm/vp8. Weiter gehende Informationen liefert euch Google.
Zuerst eine Begriffsdefiniton. Ogg, webm, avi und weitere sind Tiere von der Art Mediacontainer. Theoretisch kann sich der Inhalt unterscheiden. Jeder von diesen hat eigene Vor- und Nachteile. Aus meiner subjektiven Sicht bevorzuge ich ogg und mkv (matroska). WebM ist nur ein reduzierte (kastrierte) Version von Matroska.
Theora – ist die Weiterentwicklung von vp3, den Codec den die Firma On2 der Opensource community geschenkt hat. Nach dem Google On2 im Jahre 2009 kaufte, schenkte Google im Mai 2010 einen weiteren Codec: vp8. Seit dem wird an vp8 intensiv gearbeitet, das kann man hier sehen:
https://review.webmproject.org/gitweb?p=libvpx.git;a=summary
vp8 hat eine bessere Kompression im Vergleich zu Theora. Das fordert natürlich auch größere CPU Leistung. Die beiden Codecs sind stehen in Frage für neue HTML5 <video> Tag. Alle Browser die für einen Linuxuser in Frage kommen (Firefox, Opera, Chrome, Chromium), unterstützen vp3 und vp8. Es wird erwartet das mit Android Version 2.3, WebM auch auf die Smartphones kommt.
Mit Veröffentlichung der vp8 kam
Theora teilweise zum Stillstand der Entwicklung. Es ist aber immer
noch die beste Option für LoEnd Hardware. Diejenigen, die auch Intel
Atom Prozessoren besitzen, sollten auf Theora zugreifen. Die aktuelle
stabile Version von Theora ist 1.1 die viel bessere Entwicklungsversion
ist 1.2. Die Berichte über Verlauf der Entwicklung kann man auf
dieser Seite finden: http://people.xiph.org/~xiphmont/demo/index.html
Also welche Tools unterstützen die beide Codecs? Theoretisch alle moderne Distros sollen damit kein Problem haben. Ubuntu 10.10 ist eine davon.
Mein persönliche Favorit (ich bin nicht gegen ffmpeg oder andere tools) ist gstreamer. Man kann damit beliebige tools konstruieren.
Hier sind paar Beispiele: (Editor: das ! ist wirklich ein Ausrfuezeichen, nicht ein | Pipe, da war ich wohl zu unwissend, deshalb hatte ich alle ersetzt :-( )
gst-launch filesrc location=in.avi ! decodebin name=demux oggmux name=mux ! filesink location=out.ogg demux. ! theoraenc ! queu ! mux. demux. ! audioconvert ! vorbisenc |queue ! mux.
So konvertieren wir in.avi auf out.ogg.
Und jetzt das selbe nur auf WebM:
gst-launch filesrc location=in.avi ! decodebin name=demux webmmux name=mux ! filesink location=out.webm demux. ! vp8enc ! queu ! mux. demux. ! audioconvert ! vorbisenc ! queue ! mux.
OK, nun vielleicht was komplizierteres, einen dump von DVD auf ogg und zwar die Englische und Deutsche Spur gleichzeitig convertieren:
gst-launch filesrc location=stream.dump ! mpegpsdemux name=demux oggmux name=mux ! filesink location=out.ogg demux.audio_80 ! a52dec mode=2 ! audioconvert ! audioresample ! audio/x-raw-float,rate=44100,channels=2 ! audiorate ! taginject tags="language-code=eng" ! vorbisenc ! queue ! mux. demux.audio_81 ! a52dec mode=2 ! audioconvert | audioresample ! audio/x-raw-float,rate=44100,channels=2 ! audiorate ! taginject tags="language-code=ger" ! vorbisenc ! queue ! mux. demux.video_e0 ! mpeg2dec ! videocrop top=74 bottom=74 ! ffmpegcolorspace ! videorate ! theoraenc quality=50 ! queue ! mux.
Es gibt auch ganze Reihe von Tools die auf ffmpeg basieren. So z.B. ffmpeg2theora. Einzige Aufgabe dieses Tools ist alles in der Welt auf ogg/theora zu konvertieren. Die aktuellste Version gibt es hier: firefogg.org/nightly/ffmpeg2theora.linux
Dort bekommt man in der Regel die neueste ffmpeg und libtheora Version. Hier ist ein Beispiel:
ffmpeg2theora -v 7 -H 44100 -o out.ogg in.avi
Firefogg ist ein Firefoxaddon mit Frontend für ffmpeg2theora und ffmpeg. Also eine interessante Mischung was auf jedem OS funktionieren sollte. Das ffmpeg wird als Firefoxaddon mit-installiert. Mit wenigen Klicks kann man viele Formate auf ogg/theora oder WebM/vp8 konvertieren.firefogg.org/
Nun damit mache Schluss für diesen
Ausflug. Ich hoffe ihr habt Interesse für mehr und wir machen auch
ein wenig Scripting oder gstreamer KonFu
PS: es gibt gute Erweiterung für diese Stoff auf folgender Seite: