Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| de:docu:overview [2020/06/01 21:38] – andi | de:docu:overview [2026/07/26 22:17] (aktuell) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | = c3voc in a nutshell - Text deutsch | + | # c3voc in a nutshell - Text deutsch |
| Da wir uns anscheinend alle irgendwie schwer tun lange Texte zu produzieren hier mal ein anderer Ansatz: Dieser Text basiert auf dem Froscon 2015 Vortrag von derpeter und meise. Die Audiospur wurde von Barbara netterweise transkribiert. Der Videomitschnitt ist unter folgenden URLs abrufbar: | Da wir uns anscheinend alle irgendwie schwer tun lange Texte zu produzieren hier mal ein anderer Ansatz: Dieser Text basiert auf dem Froscon 2015 Vortrag von derpeter und meise. Die Audiospur wurde von Barbara netterweise transkribiert. Der Videomitschnitt ist unter folgenden URLs abrufbar: | ||
| Zeile 33: | Zeile 33: | ||
| - | == Einführung | + | ## Einführung |
| Zunächst wird das Team und unsere Arbeitsbereiche vorgestellt: | Zunächst wird das Team und unsere Arbeitsbereiche vorgestellt: | ||
| - | === Team | + | ### Team |
| In Köln/Bonn bzw. St. Augustin haben derpeter und meise als das FrOSCon Videoteam angefangen. Aus München (Easterhegg 2010) kam Andi dazu und von der Gulasch Programmiernacht (GPN) in Karlsruhe stieß florolf zu uns. Erstes gemeinsames Projekt in dieser Zusammensetzung und bereits unter dem Label //VOC// war die Aufzeichnung der Vortäge beim [[https:// | In Köln/Bonn bzw. St. Augustin haben derpeter und meise als das FrOSCon Videoteam angefangen. Aus München (Easterhegg 2010) kam Andi dazu und von der Gulasch Programmiernacht (GPN) in Karlsruhe stieß florolf zu uns. Erstes gemeinsames Projekt in dieser Zusammensetzung und bereits unter dem Label //VOC// war die Aufzeichnung der Vortäge beim [[https:// | ||
| Zeile 48: | Zeile 48: | ||
| - | === Arbeitsbereiche | + | ### Arbeitsbereiche |
| Wir kümmern uns in den Vortragssälen um den ganzen Audio und Videokram, sprich das die Vorträge aufgenommen, | Wir kümmern uns in den Vortragssälen um den ganzen Audio und Videokram, sprich das die Vorträge aufgenommen, | ||
| Zeile 60: | Zeile 60: | ||
| - | === Befreundete Projekte | + | ### Befreundete Projekte |
| Weiter gibt es um uns herum eine ganze Menge Projekte ohne die das alles nicht so schön wäre. Ganz vornen weg media.ccc.de, | Weiter gibt es um uns herum eine ganze Menge Projekte ohne die das alles nicht so schön wäre. Ganz vornen weg media.ccc.de, | ||
| Zeile 75: | Zeile 75: | ||
| - | === Komplexität | + | ### Komplexität |
| TODO: Bild Wort-Wolke einbinden | TODO: Bild Wort-Wolke einbinden | ||
| Zeile 81: | Zeile 81: | ||
| Um diesen ganzen Kram zusammen zu bauen braucht man eine ganze Menge verschiedene Software. Wie ich gerade sehe ist das auch nicht die letzte Version davon, da fehlen eigentlich noch ein paar Sachen. Auf vieles davon wird Daniel nachher noch einmal eingehen, nur mal so ein Überblick, was man eigentlich, , wir hören oft: "Ach mit meinem Mac ist das ganz einfach, das macht man an und es geht. " Wir brauchen ein bisschen mehr Software. | Um diesen ganzen Kram zusammen zu bauen braucht man eine ganze Menge verschiedene Software. Wie ich gerade sehe ist das auch nicht die letzte Version davon, da fehlen eigentlich noch ein paar Sachen. Auf vieles davon wird Daniel nachher noch einmal eingehen, nur mal so ein Überblick, was man eigentlich, , wir hören oft: "Ach mit meinem Mac ist das ganz einfach, das macht man an und es geht. " Wir brauchen ein bisschen mehr Software. | ||
| - | === Signal Flow | + | ### Signal Flow |
| {{ :: | {{ :: | ||
| Zeile 93: | Zeile 93: | ||
| Dann gibt es das eigentliche VOC, der Raum wo wir alle sitzen, wo wir unser post processing machen und das ganze geht dann einmal als Livestream raus auf der rechten Seite und wird dann noch einmal per FTP usw. veröffentlicht. Was jetzt noch fehlt, das gab es damals noch nicht, es gibt dann noch das Publishing über YouTube, den wir vor einem Jahr hinzugefügt haben. | Dann gibt es das eigentliche VOC, der Raum wo wir alle sitzen, wo wir unser post processing machen und das ganze geht dann einmal als Livestream raus auf der rechten Seite und wird dann noch einmal per FTP usw. veröffentlicht. Was jetzt noch fehlt, das gab es damals noch nicht, es gibt dann noch das Publishing über YouTube, den wir vor einem Jahr hinzugefügt haben. | ||
| - | == Hardware | + | ## Hardware |
| Nachdem ihr jetzt so grob wisst was wir machen, gehen wir auf die einzelnen Bereiche etwas genauer ein. In diesem Abschnitt geht es zunächst einmal um die verwendeten Geräte, sprich PCs, Kameras, Mixer usw. | Nachdem ihr jetzt so grob wisst was wir machen, gehen wir auf die einzelnen Bereiche etwas genauer ein. In diesem Abschnitt geht es zunächst einmal um die verwendeten Geräte, sprich PCs, Kameras, Mixer usw. | ||
| - | === Computer | + | ### Computer |
| Was nimmt man da eigentlich so an Hardware, wir haben lange herumgeschaut, | Was nimmt man da eigentlich so an Hardware, wir haben lange herumgeschaut, | ||
| - | === Eventcases | + | ### Eventcases |
| In den Sälen steht darüber weiterhin natürlich Kamera, haben wir eben schon gesagt, wir haben da momentan eine Panasonic und auf diesem Event ganz neu eine JVC Kamera. Das coole an der JVC Kamera ist, dass die direkt einen IP Stream, Strom erzeugen kann, sodass man sich ein bisschen Encoder Hardware sparen kann. Das ist ja noch sehr experimentell, | In den Sälen steht darüber weiterhin natürlich Kamera, haben wir eben schon gesagt, wir haben da momentan eine Panasonic und auf diesem Event ganz neu eine JVC Kamera. Das coole an der JVC Kamera ist, dass die direkt einen IP Stream, Strom erzeugen kann, sodass man sich ein bisschen Encoder Hardware sparen kann. Das ist ja noch sehr experimentell, | ||
| Zeile 110: | Zeile 110: | ||
| - | === Framegrabber | + | ### Framegrabber |
| Framegrabben ist eigentlich die Königsdisziplin des ganzen, weil die Leute kommen mit den verschiedensten Notebooks, muss man sagen die Macs sind eigentlich ganz handlich, weil die sich alle gleich verhalten. Linux Desktops verhalten sich generell alle unterschiedlich und Hausanlagen sind dann noch einmal ganz speziell. Solange man nur den Beamer hinten dran steckt, ist alles gut, aber so Anlagen wie hier möchten ganz bestimmte Auflösungen mit ganz bestimmten Herzraten... | Framegrabben ist eigentlich die Königsdisziplin des ganzen, weil die Leute kommen mit den verschiedensten Notebooks, muss man sagen die Macs sind eigentlich ganz handlich, weil die sich alle gleich verhalten. Linux Desktops verhalten sich generell alle unterschiedlich und Hausanlagen sind dann noch einmal ganz speziell. Solange man nur den Beamer hinten dran steckt, ist alles gut, aber so Anlagen wie hier möchten ganz bestimmte Auflösungen mit ganz bestimmten Herzraten... | ||
| Zeile 116: | Zeile 116: | ||
| - | === Video Mischer | + | ### Video Mischer |
| Die zweite große Frage: wie mischt man eigentlich Videobild? Da gibt es eben den Ansatz Software. Wir haben dieses Jahr auch wieder und auf der FrOSCon bisher immer DVSwitch eingesetzt, das ist ein Open Source Tool, was von der DebConf kommt, | Die zweite große Frage: wie mischt man eigentlich Videobild? Da gibt es eben den Ansatz Software. Wir haben dieses Jahr auch wieder und auf der FrOSCon bisher immer DVSwitch eingesetzt, das ist ein Open Source Tool, was von der DebConf kommt, | ||
| - | === Audio | + | ### Audio |
| TODO: Folie war beim Froscon Talk noch nicht drin. | TODO: Folie war beim Froscon Talk noch nicht drin. | ||
| - | == Postprocessing | + | ## Postprocessing |
| {{ : | {{ : | ||
| Zeile 137: | Zeile 137: | ||
| Hier sieht man dann noch mal unten am Rand, das sieht man auch direkt welche Worker gerade ein File encoden. In diesem Fall sind das unsere Encoder in der Cloud. Mit HD wurde es langsam schwierig alle Releases auf dem Event zu encoden, man müsste echt viel Rechner hierher schleppen. Deswegen können wir dankenswerterweise im momentan auf einen großen ESX Cluster zugreifen, der im Internet steht, dort nutzen wir gerade sechs VMs mit jeweils zwölf Xeon CPUs und die rechnen dann schön alle Subformate. Leider ist WebM immer noch ein bottle neck, weil das nicht multithreadet, | Hier sieht man dann noch mal unten am Rand, das sieht man auch direkt welche Worker gerade ein File encoden. In diesem Fall sind das unsere Encoder in der Cloud. Mit HD wurde es langsam schwierig alle Releases auf dem Event zu encoden, man müsste echt viel Rechner hierher schleppen. Deswegen können wir dankenswerterweise im momentan auf einen großen ESX Cluster zugreifen, der im Internet steht, dort nutzen wir gerade sechs VMs mit jeweils zwölf Xeon CPUs und die rechnen dann schön alle Subformate. Leider ist WebM immer noch ein bottle neck, weil das nicht multithreadet, | ||
| - | === Publishing | + | ### Publishing |
| Wenn dann alles encodet ist, dann wird es gepublisht: Wie gesagt unsere primäre Plattform ist media.ccc.de, | Wenn dann alles encodet ist, dann wird es gepublisht: Wie gesagt unsere primäre Plattform ist media.ccc.de, | ||
| - | == Live streaming | + | ## Live streaming |
| Gerade im CCC Umfeld ist, sind die Anzahl der Veranstaltungen in den letzten Jahren so dermaßen explodiert, dass man es eigentlich überhaupt nicht mehr schafft auf allen Veranstaltungen vor Ort zu sein, trotzdem gibt es immer wieder Talks die dann doch interessant sind und vielleicht hat man dann zu Hause doch noch Zeit sich ein paar Talks anzuschauen um nicht auf die Releases warten zu müssen und dafür machen wir eigentlich live streaming. | Gerade im CCC Umfeld ist, sind die Anzahl der Veranstaltungen in den letzten Jahren so dermaßen explodiert, dass man es eigentlich überhaupt nicht mehr schafft auf allen Veranstaltungen vor Ort zu sein, trotzdem gibt es immer wieder Talks die dann doch interessant sind und vielleicht hat man dann zu Hause doch noch Zeit sich ein paar Talks anzuschauen um nicht auf die Releases warten zu müssen und dafür machen wir eigentlich live streaming. | ||
| Zeile 153: | Zeile 153: | ||
| HTTP only ist eben gerade für uns auch ganz wichtig, weil die Clients, jeder hat letztendlich mehrere unterschiedliche Devices und HTTP ist eigentlich so das was eigentlich fast alle sprechen und damit ist das für uns auch nicht so, der Support dafür ist deutlich besser am Endgerät. | HTTP only ist eben gerade für uns auch ganz wichtig, weil die Clients, jeder hat letztendlich mehrere unterschiedliche Devices und HTTP ist eigentlich so das was eigentlich fast alle sprechen und damit ist das für uns auch nicht so, der Support dafür ist deutlich besser am Endgerät. | ||
| - | === HLS (h264/aac) | + | ### HLS (h264/aac) |
| * Encoding stream has the rightTM encoding already | * Encoding stream has the rightTM encoding already | ||
| Zeile 167: | Zeile 167: | ||
| - | === WebM | + | ### WebM |
| * (single) CPU bound | * (single) CPU bound | ||
| Zeile 187: | Zeile 187: | ||
| Die Frage war wie das eigentlich mit dem thread Parameter ist, den man ffmpeg angeben kann. ffmpeg muss man dazu sagen ist in gewisser Weise bei bestimmten Optionen sehr penibel an welcher Stelle sie stehen im Kommandaufruf und das Problem war bei WebM, dass nur bestimmte Teile des encoding Prozesses multithreaded sein können. D.h., dass hängt eben auch ganz stark vom Content ab, der da rein kommt und nach unserer Erfahrung bringt das nicht so viel. man kann das irgendwie setzen, diesen Threadparameter aber in der Regel, in der Regel kann ffmpeg eben doch automatisch schon erkennen wie viel CPUs habe ich eigentlich, nutze ich die dann alle oder nicht. Wir haben auch schon diverse Tests gemacht um wirklich perfekten, boah jetzt threaded der wie bei h264 über alle möglichen Kerne. Ja, das geht bei WebM leider nicht so schön. | Die Frage war wie das eigentlich mit dem thread Parameter ist, den man ffmpeg angeben kann. ffmpeg muss man dazu sagen ist in gewisser Weise bei bestimmten Optionen sehr penibel an welcher Stelle sie stehen im Kommandaufruf und das Problem war bei WebM, dass nur bestimmte Teile des encoding Prozesses multithreaded sein können. D.h., dass hängt eben auch ganz stark vom Content ab, der da rein kommt und nach unserer Erfahrung bringt das nicht so viel. man kann das irgendwie setzen, diesen Threadparameter aber in der Regel, in der Regel kann ffmpeg eben doch automatisch schon erkennen wie viel CPUs habe ich eigentlich, nutze ich die dann alle oder nicht. Wir haben auch schon diverse Tests gemacht um wirklich perfekten, boah jetzt threaded der wie bei h264 über alle möglichen Kerne. Ja, das geht bei WebM leider nicht so schön. | ||
| - | === CDN-Streaming | + | ### CDN-Streaming |
| unser Setup, was ich gerade vorgestellt habe, zusammen mit dem haproxy, nginx RTMP und Icecast das scalt auch in großen Installationen wie jetzt zum Beispiel auf dem Chaos Communication Congress. Das ist eine klassische CDN Infrastruktur. Diese roten Punkte sind letztendlich sogenannte Master-Server wo keine Clients darauf connecten und damit verteilt man erst einmal eine breite Anzahl an Streams. Die entsprechenden grünen Blubbel hier sind edge relays wo letztendlich wirklich die Clients darauf connecten. Sieht man das? Ja sieht man. | unser Setup, was ich gerade vorgestellt habe, zusammen mit dem haproxy, nginx RTMP und Icecast das scalt auch in großen Installationen wie jetzt zum Beispiel auf dem Chaos Communication Congress. Das ist eine klassische CDN Infrastruktur. Diese roten Punkte sind letztendlich sogenannte Master-Server wo keine Clients darauf connecten und damit verteilt man erst einmal eine breite Anzahl an Streams. Die entsprechenden grünen Blubbel hier sind edge relays wo letztendlich wirklich die Clients darauf connecten. Sieht man das? Ja sieht man. | ||
| Zeile 195: | Zeile 195: | ||
| - | === ReLive | + | ### ReLive |
| Bei ReLive ist das schon wieder etwas anders. Es kommt darauf an wie viel Speicher meine Kisten so haben, damit nicht permanent von der Platte gelesen werden muss, aber dazu kann ich gleich nochmal etwas sagen. | Bei ReLive ist das schon wieder etwas anders. Es kommt darauf an wie viel Speicher meine Kisten so haben, damit nicht permanent von der Platte gelesen werden muss, aber dazu kann ich gleich nochmal etwas sagen. | ||
| Zeile 206: | Zeile 206: | ||
| - | == Operation | + | ## Operation |
| Eine ganze Menge Kisten, ihr habt das jetzt am CDN gesehen für das Post Processing usw. brauchen wir sehr viele Server, sehr viele Informationen und wir wollen eben auch auf dem Event nicht völlig am Rad drehen und dafür haben wir uns ein paar Sachen gebaut, unter anderem einen Notification Bot für das IRC. sehr viele Sachen organisatorisch laufen bei uns über das IRC ab und dafür haben wir uns " | Eine ganze Menge Kisten, ihr habt das jetzt am CDN gesehen für das Post Processing usw. brauchen wir sehr viele Server, sehr viele Informationen und wir wollen eben auch auf dem Event nicht völlig am Rad drehen und dafür haben wir uns ein paar Sachen gebaut, unter anderem einen Notification Bot für das IRC. sehr viele Sachen organisatorisch laufen bei uns über das IRC ab und dafür haben wir uns " | ||
| Zeile 216: | Zeile 216: | ||
| - | === Monitoring | + | ### Monitoring |
| Je mehr Kisten man hat umso weniger will man da manuell schauen was geht da eigentlich gerade ab. Wir setzen darauf Icinga und auf Graphite. Kann man sich schöne lustige Graphen zusammen malen. Wer da Interesse hat an den Configs usw. kommt auf uns zu. | Je mehr Kisten man hat umso weniger will man da manuell schauen was geht da eigentlich gerade ab. Wir setzen darauf Icinga und auf Graphite. Kann man sich schöne lustige Graphen zusammen malen. Wer da Interesse hat an den Configs usw. kommt auf uns zu. | ||
| - | == Zukunft/WiP | + | ## Zukunft/WiP |
| Full HD Video mischen ist ein Herausforderung: | Full HD Video mischen ist ein Herausforderung: | ||
| - | === Voctomix | + | ### Voctomix |
| Aber letztendlich haben wir nichts gefunden, was funktioniert und dann hat sich einer aus unserem Team netterweise an den Rechner gesetzt und angefangen voctomix zu programmieren, | Aber letztendlich haben wir nichts gefunden, was funktioniert und dann hat sich einer aus unserem Team netterweise an den Rechner gesetzt und angefangen voctomix zu programmieren, | ||
| Zeile 235: | Zeile 235: | ||
| - | === HDMI2USB.tv | + | ### HDMI2USB.tv |
| Das leidige Problem des framegrabben hatte ich auch eben beschrieben, | Das leidige Problem des framegrabben hatte ich auch eben beschrieben, | ||
| Zeile 242: | Zeile 242: | ||
| - | == Q&A | + | ## Q&A |
| Das ist zweimal, die Streams haben eine deutlich geringere Qualität vom Encoding Profil her und eine geringere Bandbreite als die finalen Releases, der Stream hat wie Daniel eben gesagt hat so um die 3 MBit und ist eben ein streaming Profil. Die Release Files haben, was haben die, ich weiß es gar nicht auswendig, eine deutlich höhere Qualität. Das ist auch ein Grund warum wir diese Streamdumps nicht so gern mögen, weil die Streamdumps sehen einfach schlechter aus als die finalen recordings, sie spielen nicht auf allen Geräten, weil die Profile eben für Streams ausgelegt sind und nicht für Player. Das was wir als Releases releasen funktioniert unserer Erfahrung nach auf so ziemlich allem was irgendwie h264 abspielen kann, das ist bei Streams nicht immer genauso. | Das ist zweimal, die Streams haben eine deutlich geringere Qualität vom Encoding Profil her und eine geringere Bandbreite als die finalen Releases, der Stream hat wie Daniel eben gesagt hat so um die 3 MBit und ist eben ein streaming Profil. Die Release Files haben, was haben die, ich weiß es gar nicht auswendig, eine deutlich höhere Qualität. Das ist auch ein Grund warum wir diese Streamdumps nicht so gern mögen, weil die Streamdumps sehen einfach schlechter aus als die finalen recordings, sie spielen nicht auf allen Geräten, weil die Profile eben für Streams ausgelegt sind und nicht für Player. Das was wir als Releases releasen funktioniert unserer Erfahrung nach auf so ziemlich allem was irgendwie h264 abspielen kann, das ist bei Streams nicht immer genauso. | ||
| - | == Kontakt und URLs | + | ## Kontakt und URLs |
| * https:// | * https:// | ||