2009-05

TrekStor i.Beat move - video format

... oder, wie bastle ich mir ein tragbares Musikfernsehen für ein paar Dutzend Euros?

Nachdem ich keine Info im Web finden konnte, wie das streng eingeschränkte AVI-Format dieser Gadgets aussieht, habe ich es mal kurz selber klargemacht. Man will ja nicht unter Linux aufgeschmissen sein. Man will sich doch mal gern von den Normalos absetzen, die ihren MP3 Player mit MP3s vollmachen. Ich gedenke das Ding mit flvs vollzuknallen. Dazu muss man flv en masse nach iBeat-avi konvertieren können. Und los.

Erstens das Format. Es handelt sich um Xvid-Avis mit festgelegten exakten Größen passend zum jeweiligen Modell, dazu H.263 Quantizer und ausgeschaltetes 'motion estimation subsystem.' Klingt super kompliziert, habe ich aber gerade von der Anleitung von mencoder abgeschrieben. Das muss man gar nicht wissen.

mencoder ist beim open-source Medienplayer mplayer dabei, und liegt auch der von TrekStor gelieferten AVI-Converter Software zugrunde. Wenn man da einfach mal ins Programmverzeichnis geht (vorausgesetzt man besitzt irgendwo noch ein Microsoft-System), findet man, lustig lustig, ein cygwin Runtime-Environment und ein mencoder Executable. Unsere Freunde bei TrekStor liefern uns billige Produkte, weil sie mit open-source arbeiten, und das finden wir auch gut so.

Entscheidend von Vorteil ist nun, dass in der Datei Converter.ini die Parameter für mencoder fein säuberlich aufgeführt sind. Für jede Kombination von drei Optionen gibt es einen fertigen Befehlsstring, z.B. mencoder -ofps 15 -vf-add scale=176:99 -vf-add expand=176:144:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=350:max_bframes=0:quant_type=h263:me_quality=0 -oac lavc -lavcopts acodec=mp2:abitrate=96 um einen Kinofilm für ein Gerät anzupassen, welches 176x144 Pixel an Bildschirmgröße besitzt. Keine Ahnung welches i.Beat das ist. Es handelt sich hierbei jedenfalls über die Konfiguration "3-4-3."

Die erste Ziffer des Optionsstrings scheint die Wahl der Qualität zu sein. Es werden Bitrates 400, 350 und 300 angeboten für jeweils 1, 2 oder 3. Oder so ähnlich. Alles Unsinn, mit Bitrate 100 sehen die Dinger erst so richtig mies aus, wie man von einem Netzvideo erwarten würde (oder das Originalmaterial eh nicht besser hergibt), und die Videodateien nähern sich einer Dateigröße, ähnlich zu vergleichbaren MP3s an. Sehr gut, wir wollen ja keine Nachteile haben gegenüber unseren MP3-sammelnden Freunden.

Die zweite Ziffer steht für das Ausgabebildformat, also für das Modell des jeweiligen move. Mein move S hat 128x128 Bildpunkte, ist also Modell "2."

Die dritte Ziffer bietet Formatanpassungen an, damit die Videos nicht verzerrt werden. "2" und "3" erzeugen jeweils TV und Kinodarstellung. Drumrum erscheinen die üblichen schwarzen Balken. Ich finde schwarze Balken eine schreckliche Verschwendung von Beeindruckungswirkung, und verzerre alle Videos gnadenlos auf maximalen visuellen Eindruck. Beim quadratischen move "S" ist das besonders amüsant. Dazu nimmt man einfach Option "1" - sie verzerrt das Bild um den Schirm optimal auszufüllen.

Anhand dieser Parameter kann man sich also seinen mencoder Befehl heraussuchen, der lauffähige Videos für das Gerät ausspuckt. Leider kann man die me_quality nicht heraufsetzen, genausowenig den mp2 Audio Codec durch lame/mp3 ersetzen. Was wir aber tun können, ist an den Bitraten zu doktorn. 100 für's Video, für den zuvor erwähnten glaubwürdigen Internet-Streaming-Look, und eine abitrate von 160 oder 192, wenn man am Sound nicht sparen will, oder umgekehrt 48 wenn doch.

Unklar ist mir jetzt nur, warum ich diese Infos selbst ausfindig machen musste, statt sie als Dokument beim AVI-Converter und/oder als Doku/FAQ zum Gerät auf der TrekStor-Website vorzufinden. Coolness dafür, dass ihr auf der Verpackung ansagt, dass das Ding Linux-kompatibel ist, aber dann bitte noch diesen kleinen Schritt weiter gehen, damit Linuxisten auch 100% empowered sind!

Nun noch die Automation. Das ist ja unter Unix nicht einmal ein Skript wert. Wir werfen alle Dateien zusammen, und führen dann find . -type f -print -exec mencoder -quiet -ofps 15 -vf-add scale=128:128 -vf-add expand=128:128:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=100:max_bframes=0:quant_type=h263:me_quality=0 -oac lavc -lavcopts acodec=mp2:abitrate=96 -o "{}".iBeat.AVI {} \; aus. Eingabeformat der Dateien ist eigentlich egal. mencoder nimmt alles, was er begreifen kann, und wandelt es zu einem iBeat-AVI um. Da gehört bei modernen Unixern natürlich FLV dazu. Feinschmecker sichern Video allerdings heutzutage lieber als MP4.

Trotz -quiet spuckt mencoder immernoch jede Menge Panikmache aus. Egal. Wird schon. Am Schluss alles, was demonstrativ in .iBeat.AVI endet, auf den i.Beat schubsen. Nicht wundern, dass die Sachen schnell verschoben sind, das Gerät auszuwerfen dann allerdings mehrere Sekunden braucht. Die Daten werden erst beim Auswerfen (umount) tatsächlich geschrieben.

Hurra. Fertig ist das tragbare Musikfernsehen. Man kann natürlich auch Bundestagsdebatten heraufladen.