Mozilla integriert OpenH264 Video Codec von Cisco in Firefox 33
Mozilla integriert Ciscos OpenH264-Codec für WebRTC-Kommunikation in Firefox 33, genauer gesagt in Form eines automatischen Downloads eines sogenanntes Gecko Media Plugins, einer neuen Form von Plugins in Firefox.
Als Cisco vor einigen Monaten bekannt gegeben hat, dass man seine Implementierung des H.264-Codecs unter einer Open Source-Lizenz veröffentlichen wird, hatte Mozilla angekündigt, den OpenH264 Codec in Firefox für WebRTC bereitzustellen. Dem folgen nun Taten, kurz nach dem Start der aktuellen Nightly-Version von Firefox 33 lädt Firefox automatisch ein Plugin mit dem Namen OpenH264 Video Codec provided by Cisco Systems, Inc. 1.0 herunter, welches als Video-Codec für WebRTC-Kommunikation zur Verfügung steht. Bei diesem Plugin handelt es sich um ein sogenanntes Gecko Media Plugin (GMP). Ein GMP ist eine neue Art von Plugins in Firefox für autorisierte Drittanbieter-Codecs wie eben OpenH264 sowie Encrypted Media Extensions Content Decryption Modules (EME CDMs) wie das von Adobe, für welches sich Mozilla entschieden hat. Das OpenH264 Plugin kann über den Add-on Manager aktiviert respektive deaktiviert werden und erhält automatische Updates über die Server von Cisco Systems. Für Cisco ist die kostenlose Bereitstellung des Codecs nicht ohne Kosten, die Kosten dafür liegen aktuell bei um die 6,5 Millionen Dollar pro Jahr.
[lightbox style=“modern“ image_path=“https://www.soeren-hentzschel.at/wp-content/uploads/openh264.png“ popup=“https://www.soeren-hentzschel.at/wp-content/uploads/openh264.png“ link_to_page=““ target=““ description=““ size=“two_col_small“]
Kann der neue Codec auch mit zur Lösung des Problems beitragen, was Google letztens angezettelt hat bzgl. kein Sound auf YouTube, da spielt ja auch H.264 ne Rolle?
Huhu.
Was mich wundert, mit x264 gibt es seit Jahren einen (wahrscheinlich sogar den besten) H264 Encoder, warum wird der nicht genutzt?
In wieweit unterscheiden sich GMP denn technisch von den alten Plugins?
Ich verwende Firefox in sicherheitskritischen Umgebungen. Ich vertraue Cisco deutlich weniger als Mozilla. Kann ich den Download verhindern? Irgendwo gezielt vor dem Download verhindern, dass der Code ausgeführt wird? Gibt es irgendeinen Schutz seitens Mozilla, der mich vor einem theoretisch bösartigen Cisco schützt?
Vielen Dank für deinen Blogpost.
Moin,
mich würde mal interessieren wieso Cisco so eine Aktion ins Leben ruft. Immerhin ist das doch ein gewinnorientiertes Unternehmen. Und 6,5 Mio Dollar per anno ist jetzt auch kein Klacks. Ich würde gerne die Absicht dahinter verstehen. Immerhin sind die ja eher für Netzwerke zuständig und haben auch haufenweise proprietäre Protokoll und STandards entwickelt. Warum auf einmal Open Source?
Frag mich warum dafür ein PluginCodec nötig wird. Hat Mozilla nicht längere Zeit daran gearbeitet, installierte Codecs der Betriebssysteme für das abspielen von medien zu nutzen.
H264 kriegt doch auch gstreamer oder ffmpeg hin, oder nicht?
@Antares:
Ich weiß jetzt nicht, worauf genau du dich beziehst, aber es ist soweit ich weiß derzeit nicht geplant, den Codec für andere Dinge als WebRTC einzusetzen.
@stfischr:
Ehrliche Antwort: Keine Ahnung. Ich habe von x264 vorhin zum ersten Mal gelesen. 😉
@Anon:
Ich werfe zwei Links in den Raum:
https://wiki.mozilla.org/GeckoMediaPlugins
https://bugzilla.mozilla.org/show_bug.cgi?id=957928#c0
Zu technischen Details kann ich nichts sagen. 😉
@Anon:
Vielleicht gibt es einen about:config-Schalter, allerdings solltest du bedenken, dass Firefox noch einige Komponenten mehr beinhaltet, welche nicht von Mozilla stammen. Dieses Prinzip hat einen Namen: Open Source. Und du kannst davon ausgehen, dass bösartiger Code im Cisco-Part nicht weniger wahrscheinlich gefunden wird als wäre es Code aus dem Mozilla-Repository. Es gibt in jedem Fall keinen Grund, anderes anzunehmen.
@Vinz:
Ich kenne die Motivation von Cisco nicht, aber für Cisco sind das Peanuts und so überraschend ist der Zusammenhang zwischen Cisco und Open Source auch gar nicht: Cisco ist auch an der Entwicklung von Daala beteiligt, dem Open Source Video Codec der nächsten Generation von Mozilla.
@Simon:
Das wird noch nicht auf allen Plattformen unterstützt, ich denke in erster Linie an OS X, es setzt in jedem Fall voraus, dass der Codec auf dem System vorhanden ist, was auch nicht immer der Fall ist. Ob es darüber hinaus Vorzüge für OpenH264 gibt, wenn auf dem System ein Codec vorhanden ist und genutzt werden kann, kann ich nicht sagen.
Wenn ich das richtig in Erinnerung habe, gewährt Cisco bei der Nutzung rechtlichen Schutz. Das ist mit x264 nicht gegeben.
Cisco ist im Bereich Videokonferenzen stark vertreten und favorisiert H.264 für WebRTC. Entsprechend das Anliegen, dass hier auch Firefox mitzieht.
Ansonsten frage ich mich, ob man denn nicht wirklich vorher gefragt wird, ob man das Plugin installieren will. Plugin und dann doch eigentlich fest integrierter Bestandteil klingt doch nach einem umständlichen Verfahren.
Das Plugin kommt ja anscheinend direkt von Ciscos Servern. Wird dann bei Updates gleichzeitig auch der Quellcode zusammen mit den Informationen zu Buildumgebung freigegeben? Letzteres ist ja essentiell um wirklich nachzuvollziehen, ob man da binär das bekommen wird, was Cisco im Quellcode angibt.* Cisco ist ja prominent als NSA-Einfalltor bekannt. Und auch wenn der Chef öffentlich protestiert hat, heißt das ja für die interne Praxis noch nichts. Damit will ich Cisco nicht unterstellen, dass sie mit dem Engagement explizit Spionage im Blick haben. Das hat sicherlich einen geschäftlichen Hintergrund(siehe oben). Aber ein Risiko bleibt.
*Und darum ist das schon ein Unterschied, ob es direkt von Mozilla aus dem eigenen Repository kompiliert und ausgeliefert wird oder halt von Dritten. Es ist fraglich, warum Cisco den Quellcode schon freigibt und unbedingt selber ausliefern will. Das würde Mozilla ja nicht überfordern.
Weiterhin stellt sich natürlich die Frage, ob damit wirklich nur WebRTC zu nutzen ist. Wenn man so ein Plugin schon hat, wäre es ja blödsinnig für den gemeinen Youtube-Betrieb nutzen zu müssen.Siehe auch die angespochene OS X-Problematik.
Und kann man andersherum einen System-Codec auch für WebRTC nutzen, wenn man das Cisco-Plugin deaktiviert?
Ergibt Sinn. Danke.
Das Plugin wird automatisch nach einer Minute heruntergeladen. Es ist aber auch eine Möglichkeit über about:config vorhanden, das zu deaktivieren soweit ich weiß.
Der Vorgang klingt auf den ersten Blick umständlich, aber im Endeffekt ist das eigentlich eine ziemlich praktische Möglichkeit, mit einer Drittanbieter-Komponente umzugehen, denke ich.
Der Quellcode ist öffentlich:
http://www.openh264.org/
Was den anderen Punkt betrifft, Brendan Eich sagte dazu vor einigen Monaten:
Das würde wohl darauf hinauslaufen, dass Mozilla die über sechs Millionen Dollar im Jahr bezahlen müsste. Die binäre Auslieferung muss über Cisco erfolgen.
Was den NSA-Punkt betrifft, da sehe ich keinen Unterschied, ob das nun aus dem Repository von Cisco oder Mozilla kommt. Beide sind an US-Recht gebunden und die NSA wird sich sowohl als auch an dieselben Gesetze halten (oder diese umgehen). Die Vergangenheit hat gezeigt, dass die NSA immer Mittel und Wege finden wird, wenn sie das wollen. 😉
Derzeit ist das in jedem Fall so. Ob sich das noch ändern wird, kann ich nicht sagen. Ich kenne die Gründe dafür nicht. Es könnte einfach ein erster Schritt sein, dies nur für WebRTC anzuwenden und später dann , es kann aber auch eine ganz bewusste Entscheidung sein, es nur dafür anbieten zu wollen.
Kann ich nicht sagen.
Ich möchte noch um einen weiteren Kommentar von Brendan Eich ergänzen, der quasi explizit auffordert, Open Source-Projekten nicht blind zu vertrauen, was auch Mozilla mit einschließt, sondern zu kontrollieren. Kontrolle ist eben der einzige Weg sicherzustellen, dass NSA & Co. nicht ihre Finger im Spiel haben.
Kurzer Erklärungsversuch:
Cisco hat einen großes Interesse an einem starken und etablierten WebRTC-Standard, den sie gerne in ihren Produkten verwenden würden. Dies wird aber nur der Fall sein, wenn sich alle Browser-hersteller auf einen (oder mehrere) Codec einigen können. Momentan stehen sich zwei Lager gegenüber: Die einen möchten VP8 und die anderen h264. Wieso ist dies für Mozilla wichtig? Der Codec muss nativ im Browser unterstützt werden, so dass man die Videofunktion von WebRTC garantieren kann. Dies ist nicht der Fall, wenn der Browser auf die Codecs des Betriebssystems (x264 via gstreamer) zurückgreift. Eine Kompromisslösung wäre, dass beide Codecs unterstüzt werden müssen. Dann hätten aber Opera/Mozilla & Co das Problem, dass diese nicht das Geld für die h264 Lizenzen ausgeben können. Dementsprechend hat Cisco nun entschlossen diese Lizenzgebühren zu übernehmen, um eine Lösung für den Konflikt zu finden.
Noch haben sich die Browserhersteller aber nicht geeinigt. Bei Audio wurde zumindest schonmal mit Opus eine akzeptierte Lösung gefunden.
Übrigens kann man die Automatischen Updates für dieses Plugin separat deaktivieren, was ansonsten ja bei Plugins nicht so viel Sinn macht – aus Sicherheits-Gründen. Warum verfährt Mozilla hier eigentlich anders, es kann ja auch hier ‚Löcher‘ geben.
Es ist genau anders herum. Dieses Plugin kann über Firefox aktualisiert werden und darum können Updates dafür deaktiviert werden. Bei allen anderen Plugins kannst du keine Updates deaktivieren, weil diese überhaupt nicht über Firefox aktualisiert werden können.
Dieses Plugin ist übrigens eine vollkommen neue Kategorie von Plugin, nämlich ein Gecko Media Plugin. Alle anderen Plugins sind NPAPI-Plugins. Ohne sehr auf technische Details eingehen zu können, da beginnen bereits die Unterschiede. 😉
https://blog.mozilla.org/blog/2013/10/30/video-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec/
hier noch ein interessanter Artikel zum thema
Ich hab da mal ne blöde Frage:
Ich gehe mal davon aus, dass OpenH264 genau wie die anderen Plugins, eben weil ein Plugin, der C2P-Regelung unterliegen wird. Wird der Codec denn nachgeladen, sobald ich eine WebRTC-Sitzung starte, oder wird er nur nachgeladen, wenn er wirklich gebraucht wird, nämlich bei VoIP mit Webcambild? Es ist ja nunmal ein Videocodec und wenn ich nur einen Audiochat wie im Teamspeak mache oder in einem normalen Textchat einen Filetransfer mache, brauche ich den ja strenggenommen eigentlich nicht. Kann ich den also ruhigen Gewissens abschalten, wenn ich beim Chatten sowieso keine Webcam bzw. nicht mal Audio, sondern nur Text verwende, oder hat das irgendwelche Nachteile, sodass WebRTC in Firefox bzw. anderen Programmen wie Thunderbird und Instantbird auf Gecko-Basis nicht mehr (richtig) funktioniert? Zumindest bei Instantbird geht es ja derzeit in großen Schritten gen WebRTC….
Dafür wird es kein Click-to-Play geben. Muss es auch nicht, da OpenH264 nur für WebRTC zum Einsatz kommt und es dafür sehr wenig Sinn hätte, der Benutzer muss dafür ja bereits eine andere Berechtigung erteilen, welche den eindeutigen Wunsch ausdrückt, das Gespräch zu führen.
An welcher Stelle der Codec geladen wird, kann ich nicht direkt beantworten, so sehr bin ich mit den technischen Details nicht vertraut. Hilfreich wäre eine Testseite, auf der das nachvollzogen werden könnte, ich kenne leider keine. 😉
Das kannst du, ja.
Einstellungen in Firefox haben keinen Einfluss auf Programme außerhalb von Firefox, insofern entstehen in anderen Programmen auch keine Nachteile dadurch.
Firefox currently uses OpenH264 only for WebRTC and not for the <video> tag, because OpenH264 does not yet support the high profile format frequently used for streaming video. We will reconsider this once support has been added.
http://andreasgal.com/2014/10/14/openh264-now-in-firefox/
@all habe heute update zu firefox33 gemacht und es gibt die funktion „immer aktiviert“ und „nie aktivieren“ also immer locker durch die hose atmen 😉
Hallo,
ich habe da ein kleines Proble,! Ich habe ein Video von Youtube runtergeladen, bei mir wieder raufgeladen und nun klappt das nicht mehr so richtig!
Denn das Video fängt einfach an zu laufen obwohl ich das gar nicht will!
Wo finde ich ein Tag Manuell damit ich nachlesen kann wie ich das Video Pausieren lassen kann?
Gruß
Hallo,
zunächst einmal hat YouTube überhaupt nichts mit dem Thema OpenH264 zu tun. Darüber hinaus sehe ich nicht einmal, was die Frage überhaupt mit Mozilla oder Firefox zu tun hat. Ich bin mir nicht sicher, ob ich die Anfrage richtig verstehe, aber für mich klingt das, als hättest du entweder ein Problem mit der Einbettung in eine Webseite oder mit YouTube. So oder so ist das leider nichts, wobei ich helfen kann. Ich kann versuchen, Fragen zu Mozilla oder Firefox zu beantworten, aber das lese ich aus der Anfrage nicht heraus.