Mittwoch, 3. Februar 2010

Realmedia Dateien in H264 und Theora konvertieren

Alle Befehle wurden unter Ubuntu 9.10 ausprobiert. Alle in Courier geschriebenen Befehle gehören in eine Zeile. [Update vom 4. Febr. 2010: habe gerade das ubuntu-Paket h264enc entdeckt. Das darin enthaltene Script löst auch das unten erwähnte "Container-Problem" und "erschlägt" damit die Umwandlung nach H264. Trotzdem klappt es auch so, wie unten erwähnt]

Umwandlung Realmedia → H264

mencoder -oac faac -ovc x264 inputreal.rm -x264encopts bitrate=800[:pass=1][pass=2] -o outputh264.avi

Bei mehrere Durchgängen (1. pass=1, 2. pass=2) sehe ich bei Real-Quellen keinen nennenswerten Unterschied. Mit der Bitrate 800 wird die Datei ca. 70% größer als die Realmedia-Datei. Bitrate 400 sieht auch noch akzeptabel aus, wenn es darum geht, Vorträge mit wenig Bewegung aufzuzeichnen.

Das Container-Problem

Mencoder erzeugt avi-Container. Es gibt laut manpage auch die Möglichkeit, andere Container zu erzeugen, ich hatte damit aber noch keinen Erfolg. Man kann die Streams zumindest mit Vlc-1.0.5 unter Windows leicht in einen MP4-Container "umtopfen". Wahrscheinlich klappt das Umtopfen auch unter Linux. ("Umtopfanleitung" für VLC-1.0.5:
Konvertieren/Speichern Neues Profil mit passendem Namen erzeugen mp4 container wählen, audio und video unverändert kopieren wählen, Profil speichern Zieldatei wählen, starten.)

Umwandlung Realmedia → Ogg/Theora
ffmpeg -i inputreal.rm -r 30 -b 8000k zwischendatei.mpg &

Direktumwandlung mit ffmpeg2theora wollte nicht ums Verrecken klappen, ffmpeg mit & im Hintergrund laufen lassen

sleep 20; ffmpeg2theora zwischendatei.mpg -F 30 -V 400 -o outputogv.ogv

ffmpeg2theora parallel oder einfach in einem zweiten Terminal laufen lassen, es holt den Vorsprung von ffmpeg derzeit niemals ein. Der Prozessor bzw. die Prozessoren werden besser ausgelastet.

rm zwischendatei.mpg

Der Lohn

Danach ist sowohl die .ogv Datei als auch die .mp4 Datei mit dem <video>-Tag in HTML-Dateien verwendbar und kann auch direkt mit dem Firefox (.ogv) bzw. Google-Chrome (.mp4) abgespielt werden. Wie man es beiden Browsern gleichzeitig recht macht, steht hier.