Nun ist es bald so weit, der 24C3 steht vor der Tür und FeM wird auch dieses Jahr wieder das Streaming und Encoding übernehmen. Also wird es höchste Zeit mal ein paar Worte darüber zu verlieren und zu zeigen wie wir das Streaming und Encoding planen und machen.
Wie auch in den letzten Jahren werden wir einen WMV-Stream anbieten, welcher mit 3 Barebone Rechnern encodiert und über unseren Verteilserver der Welt zugänglich gemacht wird. Für das normale Encoding der Vorträge haben wir dieses Jahr eine besondere Herausforderung bekommen. Die Maßgabe dieses Jahr: Nach spätestens 24 Stunden stehen die Videos encodiert und geschnitten auf unseren Servern zum Download bereit. Nach den letzten Jahren mit vielen Hardware-Problemen und mangelnder Erfahrung mit der Kombination von Hardware haben wir nun einen Aufbau getestet der uns mehr als die Luft verschafft die wir brauchen um die Video/Audio Daten so schnell zu verarbeiten. Wir sind also guter Dinge und werden euch natürlich weiter über Neuigkeiten informieren.
Zum WMV-Streaming will ich an dieser Stelle auf das
Wiki des Streaming-Teams verweisen.
Das Encoding der x.264 und Ogg Videos wird von mehreren Encoding-Rechnern übernommen. Hier ein paar Zeilen aus unserer Encoding-Pipeline. Die Parameter für x.264 sind:
# x264 --no-cabac --level=30 --subme=7 --me=umh --crf=23 --ref=2 --partitions=all --progress --threads 2 --thread-input --mixed-refs -o $id.264 $id.avs 640x480
# neroAacEnc.exe -q 0.2 -lc -if "$id.wav" -of "$id.m4a"
# MP4Box -cat ./$1/Vorspann.m4a#1 -cat ./$1/$1.m4a#1 -cat ./$1/Abspann.m4a#1 -cat ./$1/Vorspann.264 -cat ./$1/$1.264 -cat ./$1/Abspann.264 -new ./$1/$1_temp.mp4
Die Parameter der Encodingpipeline für Ogg-Theora sind:
# ffmpeg2theora -v 6 --width 768 --height 540 -F 25 -a 2 -A 48 -c 1 -H 44100 --deinterlace -o fertig.ogg --artist "" --title "" --date "" --location "" --organization "" --license $id-fertig2.mpeg
Parameter für das Audioencoding:
# oggenc.exe --downmix -b 56 -m 48 -M 96 --resample 44100 --comment "Licence=" --date "date"/>" --title "" --album "" --artist "" "id"/>.wav" -o ".ogg"
# lame.exe -V 8 --tt "titel" --ta "artist" --tl "album" --tc "comment" --ty "year" $id.wav $id.mp3
Bevor die Daten in die Encoding-Pipeline kommen werden die Videos an Schnittrechnern geschnitten und mit Vorspann/Abspann versehen. Alle Videos werden auf einem Storage zwischengespeichert, auf das jeder Rechner der am Prozess beteiligt ist Zugriff hat. Gigabit-Ethernet zwischen den Komponenten versteht sich von selbst.
Die ungeschnittenen "Rohdaten" kommen von einem MPEG2-Encoding Server, welcher alle 3 FBAS-Signale — ein Signal pro Saal — verarbeitet und für jeden Vortrag ein File auf das Storage schreibt. Aber gleichzeitig werden die "Rohdaten" von jedem Vortrag per Multicast an weitere Stream- und Encoding-Teams weitergeleitet. Dieser Server war letztes Jahr das zentrale Problem des Aufbaus, da beim kopieren der Daten auf das Storage eine extrem hohe Interupt-Last(rund 27000) auftrat und daraufhin die Encoding-Hardware die Streams zerstörte. Das hatte zur Folge das wir die Bänder, die in jeder Kamera als Backup mitliefen, erneut ausspielen mussten und dazu erst nach dem Event Zeit fanden. Dieses Jahr haben wir neue Hardware verbaut und den kompletten Aufbau in allen Variationen getestet.
Trackbacks