Leitfaden zu Web-Video-Codecs
Dieser Leitfaden stellt die Video-Codecs vor, die Sie höchstwahrscheinlich im Web antreffen oder in Erwägung ziehen werden. Er bietet Zusammenfassungen ihrer Fähigkeiten sowie Informationen zu Kompatibilitäts- und Nutzbarkeitsaspekten und Ratschläge, die Ihnen helfen, den richtigen Codec für das Video Ihres Projekts auszuwählen.
Aufgrund der enormen Größe unkomprimierter Videodaten ist es erforderlich, diese erheblich zu komprimieren, um sie zu speichern, geschweige denn über ein Netzwerk zu übertragen. Stellen Sie sich die Datenmenge vor, die benötigt wird, um unkomprimierte Videos zu speichern:
- Ein einzelnes Bild eines hochauflösenden Videos (1920x1080) in voller Farbe (4 Bytes pro Pixel) sind 8.294.400 Bytes.
- Bei typischen 30 Bildern pro Sekunde würde jede Sekunde HD-Video 248.832.000 Bytes (ca. 249 MB) beanspruchen.
- Eine Minute HD-Video würde 14,93 GB Speicherplatz benötigen.
- Eine typische 30-minütige Videokonferenz würde etwa 447,9 GB Speicherplatz benötigen, und ein 2-stündiger Film würde fast 1,79 TB (das sind 1790 GB) benötigen.
Nicht nur ist der benötigte Speicherplatz enorm, auch die Netzwerk-Bandbreite, die erforderlich ist, um ein solches unkomprimiertes Video zu übertragen, wäre enorm, mit 249 MB/s — Audio und Overhead nicht eingerechnet. Hier kommen Video-Codecs ins Spiel. Genau wie Audio-Codecs die Daten von Audiodateien komprimieren, komprimieren Video-Codecs die Videodaten und kodieren sie in ein Format, das später dekodiert und abgespielt oder bearbeitet werden kann.
Die meisten Video-Codecs sind verlustbehaftet, was bedeutet, dass das dekodierte Video nicht exakt mit der Quelle übereinstimmt. Einige Details können verloren gehen; die Menge des Verlusts hängt vom Codec und dessen Konfiguration ab, aber als allgemeine Regel gilt: Je stärker die Kompression, desto mehr Detail- und Qualitätsverlust tritt auf. Einige verlustfreie Codecs existieren, werden jedoch typischerweise zur Archivierung und lokalen Wiedergabe und nicht zur Verwendung im Netzwerk eingesetzt.
Häufige Codecs
Die folgenden Video-Codecs sind diejenigen, die am häufigsten im Web verwendet werden. Für jeden Codec sind die Container (Dateitypen) aufgeführt, die sie unterstützen können. Jeder Codec führt zu einem Abschnitt unten, der zusätzliche Details über den Codec bietet, einschließlich spezifischer Fähigkeiten und Kompatibilitätsprobleme, die Ihnen bewusst sein sollten.
Codec-Name (Kurzform) | Vollständiger Codec-Name | Container-Unterstützung |
---|---|---|
AV1 | AOMedia Video 1 | MP4, WebM |
AVC (H.264) | Advanced Video Coding | 3GP, MP4 |
H.263 | H.263 Video | 3GP |
HEVC (H.265) | High Efficiency Video Coding | MP4 |
MP4V-ES | MPEG-4 Video Elemental Stream | 3GP, MP4 |
MPEG-1 | MPEG-1 Part 2 Visual | MPEG, QuickTime |
MPEG-2 | MPEG-2 Part 2 Visual | MP4, MPEG, QuickTime |
Theora Veraltet | Theora | Ogg |
VP8 | Video Processor 8 | 3GP, Ogg, WebM |
VP9 | Video Processor 9 | MP4, Ogg, WebM |
Faktoren, die das kodierte Video beeinflussen
Wie bei jedem Encoder gibt es zwei grundlegende Gruppen von Faktoren, die die Größe und Qualität des kodierten Videos beeinflussen: Spezifische Merkmale des Formats und Inhalts des Quellvideos sowie die Eigenschaften und Konfiguration des Codecs, der bei der Kodierung des Videos verwendet wird.
Die einfachste Richtlinie ist diese: Alles, was das kodierte Video dem Original, unkomprimierten Video ähnlicher macht, wird im Allgemeinen auch dazu führen, dass die resultierenden Daten größer werden. Somit ist es immer ein Kompromiss zwischen Größe und Qualität. In einigen Situationen ist ein größerer Qualitätsverlust, um die Datengröße zu verringern, es wert; in anderen Zeiten ist der Qualitätsverlust nicht akzeptabel, und es ist notwendig, eine Codec-Konfiguration zu wählen, die zu einer entsprechend größeren Datei führt.
Einfluss des Quellvideoformats auf das kodierte Ergebnis
Der Grad, in dem das Format des Quellvideos das Ergebnis beeinflusst, variiert je nach Codec und seiner Funktionsweise. Wenn der Codec die Medien in ein internes Pixelformat konvertiert oder das Bild mit einem anderen Mittel als einfachen Pixeln darstellt, spielt das Format des Originalbildes keine Rolle. Allerdings werden Dinge wie Bildrate und Auflösung immer einen Einfluss auf die Ausgabegröße der Medien haben.
Zudem haben alle Codecs ihre Stärken und Schwächen. Einige haben Schwierigkeiten mit bestimmten Formen und Mustern, sind nicht gut darin, scharfe Kanten zu replizieren, oder neigen dazu, Details in dunklen Bereichen zu verlieren, oder viele andere Möglichkeiten. Es hängt alles von den zugrunde liegenden Algorithmen und der Mathematik ab.
Merkmal | Auswirkung auf die Qualität | Auswirkung auf die Größe |
---|---|---|
Farbtiefe (Bit-Tiefe) |
Je höher die Farbbit-Tiefe, desto höher die Farbtreuequalität, die im
Video erreicht wird. Außerdem erlauben Farbtiefen unter 10 Bit pro
Komponente (10-Bit-Farbe) in gesättigten Bildbereichen (d.h. dort, wo
die Farben rein und intensiv sind, wie bei einem hellen, reinen Rot:
rgb(255 0 0 / 100%) ) Banding, bei dem Verläufe nicht ohne
sichtbare Abstufungen der Farben dargestellt werden können.
|
Abhängig vom Codec können höhere Farbtiefen zu größeren komprimierten Dateigrößen führen. Der bestimmende Faktor ist, welches interne Speicherformat für die komprimierten Daten verwendet wird. |
Bildrate | Beeinflusst hauptsächlich die wahrgenommene Flüssigkeit der Bewegung im Bild. Bis zu einem Punkt wird die Bewegung umso flüssiger und realistischer erscheinen, je höher die Bildrate ist. Schließlich wird der Punkt abnehmender Renditen erreicht. Siehe Bildrate unten für weitere Details. | Vorausgesetzt, die Bildrate wird während der Kodierung nicht verringert, führen höhere Bildraten zu größeren komprimierten Videogrößen. |
Bewegung | Die Komprimierung von Videos funktioniert typischerweise durch den Vergleich von Frames, wobei festgestellt wird, wo sie sich unterscheiden, und es werden Datensätze erstellt, die genügend Informationen enthalten, um das vorherige Frame zu aktualisieren, um das Erscheinungsbild des folgenden Frames zu approximieren. Je mehr aufeinanderfolgende Frames voneinander abweichen, desto größer sind diese Unterschiede und desto weniger effektiv ist die Komprimierung darin, das Auftreten von Artefakten im komprimierten Video zu vermeiden. | Die durch Bewegung eingeführte Komplexität führt zu größeren Zwischenbildern aufgrund der höheren Anzahl von Unterschieden zwischen den Frames). Aus diesem und anderen Gründen, je mehr Bewegung in einem Video vorhanden ist, desto größer wird die Ausgabedatei in der Regel sein. |
Rauschen | Bildrauschen (wie Filmeffekte, Staub oder andere Körnigkeit im Bild) bringt Variabilität mit sich. Variabilität erschwert in der Regel die Komprimierung, was zu mehr Qualitätsverlust führt, da Details weggelassen werden müssen, um das gleiche Maß an Komprimierung zu erreichen. | Je mehr Variabilität—wie Rauschen—im Bild vorhanden ist, desto komplexer ist der Komprimierungsprozess und desto weniger wahrscheinlich hat der Algorithmus Erfolg, das Bild im gleichen Maße zu komprimieren. Es sei denn, Sie konfigurieren den Encoder so, dass einige oder alle des durch Rauschen verursachten Variationen ignoriert werden, wird das komprimierte Video größer sein. |
Auflösung (Breite und Höhe) | Höher aufgelöstes Video, das in der gleichen Bildschirmgröße präsentiert wird, kann typischerweise die ursprüngliche Szene genauer darstellen, abgesehen von Effekten, die während der Komprimierung eingeführt wurden. | Je höher die Auflösung eines Videos ist, desto größer wird es. Dies spielt eine Schlüsselrolle in der endgültigen Größe des Videos. |
Der Grad, in dem diese Faktoren das resultierende kodierte Video beeinflussen, variiert je nach den genauen Details der Situation, einschließlich des verwendeten Encoders und dessen Konfiguration. Zusätzlich zu allgemeinen Codec-Optionen könnte der Encoder so konfiguriert sein, dass die Bildrate reduziert, das Rauschen bereinigt und/oder die Gesamtauflösung des Videos während der Kodierung reduziert wird.
Wirkung der Codec-Konfiguration auf das kodierte Ergebnis
Die Algorithmen, die zum Kodieren von Videos verwendet werden, verwenden typischerweise eine oder mehrere allgemeine Techniken zur Durchführung ihrer Kodierung. Im Allgemeinen wird jede Konfigurationsoption, die dazu gedacht ist, die Ausgabedateigröße des Videos zu reduzieren, wahrscheinlich einen negativen Einfluss auf die Gesamtqualität des Videos haben oder bestimmte Arten von Artefakten im Video einführen. Es ist auch möglich, eine verlustfreie Kodierung zu wählen, die zu einer viel größeren kodierten Datei führt, aber die perfekte Reproduktion des Originalvideos bei der Dekodierung ermöglicht.
Zusätzlich kann jedes Encoder-Tool Unterschiede in der Art und Weise aufweisen, wie das Quellvideo verarbeitet wird, was zu Unterschieden in der Ausgabequalität und/oder Größe führen kann.
Merkmal | Auswirkung auf die Qualität | Auswirkung auf die Größe |
---|---|---|
Verlustfreie Komprimierung | Kein Qualitätsverlust | Verlustfreie Komprimierung kann die Gesamtgröße des Videos nicht in dem Maße reduzieren wie verlustbehaftete Komprimierung; die resultierenden Dateien sind wahrscheinlich immer noch zu groß für den allgemeinen Gebrauch. |
Verlustbehaftete Komprimierung | In gewissem Maße treten Artefakte und andere Formen von Qualitätsverschlechterung auf, abhängig vom spezifischen Codec und wie viel Komprimierung angewendet wird. | Je mehr das kodierte Video von der Quelle abweichen darf, desto leichter können höhere Kompressionsraten erreicht werden. |
Qualitätseinstellung | Je höher die Qualitätskonfiguration, desto ähnlicher wird das kodierte Video dem Originalmedium aussehen. | Im Allgemeinen führen höhere Qualitätseinstellungen zu größeren kodierten Videodateien; das Ausmaß, in dem dies zutrifft, variiert abhängig vom Codec. |
Bitrate | Qualität verbessert sich in der Regel mit höheren Bitraten | Höhere Bitraten führen zwangsläufig zu größeren Ausgabedateien |
Die Optionen, die beim Kodieren von Videos zur Verfügung stehen, und die Werte, die diesen Optionen zugewiesen werden, variieren nicht nur von einem Codec zum anderen, sondern auch in Abhängigkeit von der verwendeten Kodierungssoftware. Die in Ihrer Kodierungssoftware enthaltene Dokumentation wird Ihnen helfen zu verstehen, wie sich diese Optionen spezifisch auf das kodierte Video auswirken.
Kompressionsartefakte
Artefakte sind Nebenwirkungen eines verlustbehafteten Kodierungsprozesses, bei dem die verlorenen oder neu angeordneten Daten zu sichtbaren negativen Effekten führen. Sobald ein Artefakt auftritt, kann es eine Weile bestehen bleiben, da Video so dargestellt wird. Jedes Video-Frame wird angezeigt, indem eine Reihe von Änderungen auf das aktuell sichtbare Frame angewendet werden. Das bedeutet, dass etwaige Fehler oder Artefakte mit der Zeit zunehmen, was zu Glitches oder sonstigen merkwürdigen oder unerwarteten Abweichungen im Bild führt, die eine Weile anhalten.
Um dies zu beheben und die Suchzeit durch die Videodaten zu verbessern, werden periodische Schlüsselframes (auch bekannt als Intra-Frames oder I-Frames) in die Videodatei eingefügt. Die Schlüsselframes sind vollständige Frames, die verwendet werden, um alle aktuell sichtbaren Schäden oder Artefakt-Rückstände zu reparieren.
Aliasing
Aliasing ist ein allgemeiner Begriff für alles, was beim Rekonstruieren aus den kodierten Daten anders aussieht als vor der Kompression. Es gibt viele Formen des Aliasings; die häufigsten, die Sie möglicherweise sehen, umfassen:
Moiré-MusterEin Moiré-Muster ist ein großflächiges räumliches Interferenzmuster, das entsteht, wenn ein Muster im Quellbild und die Art und Weise, wie der Encoder funktioniert, räumlich leicht ungleichmäßig sind. Die vom Encoder erzeugten Artefakte führen dann dazu, dass seltsame, wirbelnde Effekte in das Muster des Quellbildes beim Dekodieren eingeführt werden. |
![]() |
TreppeneffektDer Treppeneffekt ist ein räumliches Artefakt, das auftritt, wenn diagonale gerade oder gebogene Kanten, die glatt sein sollten, ein gezacktes Erscheinungsbild annehmen, das ein bisschen wie eine Treppe aussieht. Dies ist der Effekt, der durch "Antialiasing"-Filter verringert wird. |
![]() |
Kreisel-EffektDer Kreisel-Effekt (oder stroboskopischer Effekt) ist der visuelle Effekt, der häufig in Filmen zu sehen ist, bei dem ein sich drehendes Rad mit der falschen Geschwindigkeit oder sogar rückwärts zu rotieren scheint, was durch eine Interaktion zwischen der Bildrate und dem Kompressionsalgorithmus hervorgerufen wird. Derselbe Effekt kann bei jedem sich wiederholenden Muster auftreten, das sich bewegt, wie z. B. die Schwellen auf einer Eisenbahnlinie, Pfosten am Straßenrand usw. Dies ist ein zeitliches (zeitbasiertes) Aliasing-Problem; die Drehgeschwindigkeit stört die Frequenz der während der Komprimierung durchgeführten Abtastung. |
![]() |
Farbsäume
Farbsäume sind eine Art von visuellem Artefakt, das als falsche Farben entlang der Kanten von gefärbten Objekten innerhalb der Szene auftritt. Diese Farben haben keine absichtliche Farbbeziehung zu den Inhalten des Frames.
Verlust der Schärfe
Das Entfernen von Daten im Prozess der Kodierung von Videos erfordert, dass einige Details verloren gehen. Bei ausreichender Kompression können Teile oder potenziell das gesamte Bild an Schärfe verlieren, was zu einem leicht verschwommenen oder trüben Erscheinungsbild führt.
Verlorene Schärfe kann es schwierig machen, Text im Bild zu lesen, da Text—insbesondere kleiner Text—sehr detailorientierter Inhalt ist, bei dem geringfügige Veränderungen erheblich die Lesbarkeit beeinträchtigen können.
Klingeln
Verlustbehaftete Kompressionsalgorithmen können Klingeln einführen, einen Effekt, bei dem Bereiche außerhalb eines Objekts mit farbigen Pixeln kontaminiert werden, die vom Komprimierungsalgorithmus erzeugt wurden. Dies geschieht, wenn ein Algorithmus verwendet wird, der Blöcke umfasst, die eine scharfe Grenze zwischen einem Objekt und seinem Hintergrund überschreiten. Dies ist besonders bei höherer Kompression üblich.
Beachten Sie die blauen und rosa Ränder um die Kanten des Sterns oben (sowie die Abstufungen und andere signifikante Kompressionsartefakte). Diese Ränder sind der Klingeleffekt. Klingeln ähnelt in gewisser Weise dem Moskito-Rauschen, außer dass während der Klingeleffekt mehr oder weniger stetig und unverändert ist, das Moskito-Rauschen flackert und sich bewegt.
Klingeln ist eine weitere Art von Artefakt, die es besonders schwierig machen kann, Text in Ihren Bildern zu lesen.
Posterisieren
Posterisation tritt auf, wenn die Kompression zu einem Verlust von Farbdetails in Gradienten führt. Anstelle von sanften Übergängen durch die verschiedenen Farben in einem Bereich wird das Bild blockig, mit Farbklecksen, die das ursprüngliche Erscheinungsbild des Bildes approximieren.
Beachten Sie die Blockigkeit der Farben im Gefieder des Weißkopfseeadlers auf dem Foto oben (und des Schneeeulen im Hintergrund). Die Details der Federn gehen weitgehend aufgrund dieser Posterisationsartefakte verloren.
Konturenbildung
Konturenbildung oder Farbbänder ist eine spezifische Form der Posterisation, bei der die Farbblöcke Bänder oder Streifen im Bild bilden. Dies tritt auf, wenn das Video mit einer zu gröberen Quantisierungskonfiguration kodiert wird. Infolgedessen zeigen die Inhalte des Videos ein "geschichtetes" Aussehen, wobei anstelle sanfter Übergänge die Übergänge von Farbe zu Farbe abrupt sind und dadurch Streifen von Farben erscheinen.
Im Beispielbild oben beachten Sie, wie der Himmel Bänder unterschiedlicher Blautöne hat, anstatt als konsistenter Verlauf zu erscheinen, während die Himmelfarbe sich in Richtung Horizont verändert. Dies ist der Kontureneffekt.
Moskito-Rauschen
Moskito-Rauschen ist ein temporales Artefakt, das als Rauschen oder Kantenhöchstfrequenzeffekte auftritt, die als flimmernde Unschärfe oder Schimmern erscheinen und ungefähr an harten Kanten oder scharfen Übergängen zwischen Vordergrundobjekten und dem Hintergrund entlang verlaufen. Der Effekt kann dem Klingeln ähnlich aussehen.
Das obige Foto zeigt Moskito-Rauschen an mehreren Stellen, einschließlich im Himmel um die Brücke herum. In der oberen rechten Ecke zeigt ein Ausschnitt eine Nahansicht eines Bildabschnitts, der Moskito-Rauschen aufweist.
Moskito-Rauschen-Artefakte sind am häufigsten in MPEG-Videos zu finden, können jedoch auftreten, wann immer ein diskreter Cosinus-Transformationsalgorithmus (DCT) verwendet wird; dies schließt beispielsweise JPEG-Standbilder ein.
Bewegungsentschädigung Blockrand-Artefakte
Die Kompression von Video funktioniert im Allgemeinen, indem zwei Frames verglichen und die Unterschiede zwischen ihnen aufgezeichnet werden, ein Frame nach dem anderen, bis zum Ende des Videos. Diese Technik funktioniert gut, wenn die Kamera fest an ihrem Platz ist oder die Objekte im Frame relativ unbeweglich sind, aber wenn im Frame eine große Bewegung vorhanden ist, können die Anzahl der Unterschiede zwischen den Frames so groß sein, dass die Komprimierung keinen Nutzen bringt.
Motion Compensation ist eine Technik, die nach Bewegungen sucht (entweder der Kamera oder von Objekten im Bildfeld) und bestimmt, wie viele Pixel das bewegende Objekt in jede Richtung bewegt hat. Diese Verschiebung wird dann gespeichert, zusammen mit einer Beschreibung der Pixel, die bewegt wurden und die nicht nur durch diese Verschiebung beschrieben werden können. Im Wesentlichen findet der Encoder die sich bewegenden Objekte, dann baut er eine Art internes Frame auf, das wie das Original aussieht, aber mit allen Objekten, die an ihren neuen Standorten übersetzt wurden. In der Theorie approximiert dies das Erscheinungsbild des neuen Frames. Dann, um die Aufgabe abzuschließen, werden die verbleibenden Unterschiede gefunden, dann werden das Set an Objektverschiebungen und die Menge der Pixeldifferenzen in den Daten gespeichert, die den neuen Frame darstellen. Dieses Objekt, das die Verschiebung und die Pixeldifferenzen beschreibt, wird als Residual Frame bezeichnet.
Original-Frame | Differenzen zwischen den Frames | Differenzen nach Bewegungsentschädigung |
---|---|---|
![]() |
![]() |
![]() |
Das erste vollständige Frame, wie es der Betrachter sieht. | Hier sind nur die Unterschiede zwischen dem ersten und dem folgenden Frame zu sehen. Alles andere ist schwarz. Bei genauem Hinsehen können wir sehen, dass der Großteil dieser Unterschiede von einer horizontalen Kamerabewegung herrührt, was dies zu einem guten Kandidaten für Bewegungsentschädigung macht. | Um die Anzahl der unterschiedlichen Pixel zu minimieren, berücksichtigen wir hier die Kameraposition, indem wir das erste Frame zuerst um zwei Pixel nach rechts verschieben und dann die Differenzen bestimmen. Dies kompensiert für die Bewegung der Kamera und ermöglicht mehr Überlappung zwischen beiden Frames. |
Bilder von Wikipedia |
Es gibt zwei allgemeine Arten der Bewegungsentschädigung: Globale Bewegungsentschädigung und Block-bewegungsentschädigung. Die globale Bewegungsentschädigung passt im Allgemeinen auf Kamerabewegungen wie Tracking, Dolly-Bewegungen, Schwenken, Neigen, Rollen und Auf- und Abwärtsbewegungen an. Block-bewegungsentschädigung behandelt lokalere Veränderungen, indem sie nach kleineren Abschnitten des Bildes sucht, die mit Bewegungsentschädigung kodiert werden können. Diese Blöcke haben normalerweise eine feste Größe in einem Raster, aber es gibt Formen der Bewegungsentschädigung, die variable Blockgrößen erlauben und sogar das Überlappen von Blöcken ermöglichen.
Es gibt jedoch Artefakte, die aufgrund der Bewegungsentschädigung auftreten können. Diese treten entlang der Blockränder auf, in Form von scharfen Kanten, die falsches Klingeln und andere Kanteneffekte erzeugen. Diese sind auf die Mathematik zurückzuführen, die in der Kodierung der Residual Frames verwendet wird, und können leicht bemerkt werden, bevor sie durch das nächste Schlüsselframe repariert werden.
Reduzierte Bildgröße
In bestimmten Situationen kann es nützlich sein, die Abmessungen des Videos zu reduzieren, um die endgültige Dateigröße des Videos zu verbessern. Während der unmittelbare Verlust an Größe oder Flüssigkeit der Wiedergabe ein negativer Faktor sein kann, kann eine sorgfältige Entscheidungsfindung zu einem guten Endergebnis führen. Wenn ein 1080p-Video vor der Kodierung auf 720p reduziert wird, kann das resultierende Video viel kleiner sein, während es höhere visuelle Qualität aufweist; selbst nach dem Hochskalieren während der Wiedergabe könnte das Ergebnis besser sein, als das Originalvideo in voller Größe zu kodieren und den erforderlichen Qualitätsverlust zu akzeptieren, um Ihre Größenanforderungen zu erfüllen.
Reduzierte Bildrate
Ähnlich können Sie auch Bilder aus dem Video vollständig entfernen und die Bildrate entsprechend verringern. Dies hat zwei Vorteile: Es macht das gesamte Video kleiner, und diese kleinere Größe ermöglicht es der Bewegungsentschädigung, noch mehr für Sie zu tun. Wenn Sie beispielsweise jedes zweite Bild überspringen, könnte die Berechnung einer Differenz von vier Pixeln an Bewegung statt nur zwei möglich sein. Dies lässt die gesamte Bewegung der Kamera mit weniger Residual Frames repräsentieren.
Die absolute Mindestbildrate, die ein Video haben kann, bevor seine Inhalte nicht mehr als Bewegung von menschlichen Augen wahrgenommen werden, liegt bei etwa 12 Bildern pro Sekunde. Weniger als das und das Video wird zu einer Reihe von Standbildern. Kinofilme haben in der Regel 24 Bilder pro Sekunde, während Standardqualität-Fernsehen etwa 30 Bilder pro Sekunde hat (etwas weniger, aber nahe genug) und HD-Fernsehen zwischen 24 und 60 Bilder pro Sekunde. Alles ab 24 FPS aufwärts wird allgemein als genügend flüssig angesehen; 30 oder 60 FPS ist je nach Ihren Bedürfnissen ein ideales Ziel.
Letztendlich liegen die Entscheidungen darüber, welche Kompromisse Sie eingehen können, ganz bei Ihnen und/oder Ihrem Designteam.
Codec-Details
AV1
Der AOMedia Video 1 (AV1) Codec ist ein offenes Format, das speziell für Internet-Videos von der Alliance for Open Media entwickelt wurde. Er erreicht höhere Datenkompressionsraten als VP9 und H.265/HEVC und bis zu 50% höhere Raten als AVC. AV1 ist vollständig lizenzgebührenfrei und für die Verwendung mit dem <video>
-Element und WebRTC konzipiert.
AV1 bietet derzeit drei Profile an: main, high und professional, mit wachsender Unterstützung für Farbtiefen und Chroma-Subsampling. Darüber hinaus sind eine Reihe von Leveln spezifiziert, die jeweils die Grenzen für eine Reihe von Attributen des Videos definieren. Zu diesen Attributen gehören Bilddimensionen, Bildbereich in Pixeln, Anzeige- und Dekodierungsraten, durchschnittliche und maximale Bitraten sowie Grenzen für die Anzahl von Kacheln und Kachelspalten, die im Kodierungs-/Dekodierungsprozess verwendet werden.
Zum Beispiel bietet das AV1 Level 2.0 eine maximale Bildbreite von 2048 Pixel und eine maximale Höhe von 1152 Pixeln, jedoch ist die maximale Bildgröße in Pixeln 147.456, sodass Sie tatsächlich kein 2048x1152-Video auf Level 2.0 haben können. Es ist jedoch erwähnenswert, dass zumindest bei Firefox und Chrome die Levels derzeit bei der Software-Dekodierung ignoriert werden und der Decoder einfach das Beste tut, um das Video mit den gegebenen Einstellungen abzuspielen. Aus Gründen der Kompatibilität sollten Sie jedoch innerhalb der Grenzen des gewählten Levels bleiben.
Der Hauptnachteil von AV1 ist derzeit, dass es sehr neu ist und die Unterstützung noch dabei ist, in die meisten Browser integriert zu werden. Zusätzlich werden Encoder und Decoder immer noch auf Leistung optimiert, und Hardware-Encoder und Decoder befinden sich noch größtenteils in der Entwicklung und nicht in der Produktion. Aus diesem Grund dauert die Kodierung eines Videos im AV1-Format sehr lange, da die gesamte Arbeit in der Software erfolgt.
Derzeit, aufgrund dieser Faktoren, ist AV1 noch nicht bereit, Ihre erste Wahl an Videocodec zu sein, aber Sie sollten darauf achten, dass es in Zukunft einsatzbereit ist.
Unterstützte Bitraten |
Variiert je nach Level des Videos; theoretisches Maximum erreicht 800 Mbps bei Level 6.3 Siehe die AV1-Spezifikation Tabellen der Levels, die die maximalen Auflösungen und Raten für jedes Level beschreiben. |
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | Variiert je nach Level; zum Beispiel hat Level 2.0 ein Maximum von 30 FPS, während Level 6.3 120 FPS erreichen kann | ||||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | ||||||||||||||
Unterstützte Bildgrößen | 8 x 8 Pixel bis 65.535 x 65.535 Pixel, wobei jede Dimension jeden Wert zwischen diesen annehmen kann | ||||||||||||||
Unterstützte Farbmodi |
|
||||||||||||||
HDR-Unterstützung | Ja | ||||||||||||||
Unterstützung für variable Bildrate (VFR) | Ja | ||||||||||||||
Browser-Kompatibilität |
|
||||||||||||||
Container-Unterstützung | ISOBMFF, MPEG-TS, MP4, WebM | ||||||||||||||
RTP / WebRTC kompatibel | Ja | ||||||||||||||
Unterstützende/Erhaltende Organisation | Alliance for Open Media | ||||||||||||||
Spezifikation | https://aomediacodec.github.io/av1-spec/av1-spec.pdf | ||||||||||||||
Lizenzierung | Lizenzgebührenfrei, offener Standard |
AVC (H.264)
Der Advanced Video Coding (AVC), Standard der MPEG-4-Spezifikationsreihe, ist sowohl in der ITU H.264-Spezifikation als auch in der MPEG-4 Part 10-Spezifikation spezifiziert. Es handelt sich um einen Bewegungskompensations-basierten Codec, der heute weit verbreitet für alle Arten von Medien eingesetzt wird, einschließlich Fernsehsendungen, RTP-Videokonferenzen und als Video-Codec für Blu-Ray-Discs.
AVC ist äußerst flexibel, mit einer Reihe von Profilen mit unterschiedlichen Fähigkeiten. Zum Beispiel ist das Constrained Baseline Profile für Videokonferenzen und mobile Szenarien konzipiert, da es weniger Bandbreite als das Main Profile (das in einigen Regionen für Standarddefinitionen im Digitalfernsehen verwendet wird) oder das High Profile (das für Blu-Ray Disc Videos verwendet wird) benötigt. Die meisten Profile verwenden 8-Bit-Farbkomponenten und 4:2:0 Chroma-Subsampling. Das High 10 Profile fügt Unterstützung für 10-Bit-Farben hinzu, und erweiterte Formen von High 10 fügen 4:2:2- und 4:4:4-Chroma-Subsampling hinzu.
AVC hat auch spezielle Funktionen wie die Unterstützung mehrerer Ansichten derselben Szene (Multiview Video Coding), die unter anderem die Produktion von stereoskopischem Video ermöglicht.
AVC ist jedoch ein proprietäres Format, und zahlreiche Patente werden von mehreren Parteien hinsichtlich seiner Technologien gehalten. Die kommerzielle Nutzung von AVC-Medien erfordert eine Lizenz, obwohl der Via LA-Patentpool keine Lizenzgebühren für das Streaming von Internetvideos im AVC-Format verlangt, solange die Videos für Endbenutzer kostenlos sind.
Nicht-Webbrowser-Implementierungen von WebRTC (jede Implementierung, die nicht die JavaScript-APIs enthält) sind verpflichtet, AVC als Codec in WebRTC-Anrufen zu unterstützen. Während Webbrowser nicht dazu verpflichtet sind, tun dies einige.
In HTML-Inhalten für Webbrowser ist AVC weitgehend kompatibel, und viele Plattformen unterstützen Hardware für die Kodierung und Dekodierung von AVC-Medien. Bevor Sie sich jedoch zu einer Verwendung von AVC in Ihrem Projekt entscheiden, beachten Sie die Lizenzanforderungen!
Unterstützte Bitraten | Variiert je nach Level | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | Variiert je nach Level; bis zu 300 FPS sind möglich | ||||||||||||||||||||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus, obwohl es möglich ist, verlustfreie Makroblöcke innerhalb des Bildes zu erstellen | ||||||||||||||||||||||||||||||
Unterstützte Bildgrößen | Bis zu 8.192 x 4.320 Pixel | ||||||||||||||||||||||||||||||
Unterstützte Farbmodi |
Einige der gebräuchlichsten oder interessanten Profile:
|
||||||||||||||||||||||||||||||
HDR-Unterstützung | Ja; Hybrid Log-Gamma oder Advanced HDR/SL-HDR; beide sind Teil des ATSC | ||||||||||||||||||||||||||||||
Unterstützung für variable Bildrate (VFR) | Ja | ||||||||||||||||||||||||||||||
Browser-Kompatibilität |
Alle Versionen von Chrome, Edge, Firefox, Opera und Safari
Die Firefox-Unterstützung für AVC hängt von den im Betriebssystem eingebauten oder vorinstallierten Codecs für AVC und dessen Container ab, um Patentprobleme zu vermeiden. |
||||||||||||||||||||||||||||||
Container-Unterstützung | 3GP, MP4 | ||||||||||||||||||||||||||||||
RTP / WebRTC kompatibel | Ja | ||||||||||||||||||||||||||||||
Unterstützende/Erhaltende Organisation | MPEG / ITU | ||||||||||||||||||||||||||||||
Spezifikation |
https://mpeg.chiariglione.org/standards/mpeg-4/advanced-video-coding.html https://www.itu.int/rec/T-REC-H.264 |
||||||||||||||||||||||||||||||
Lizenzierung | Proprietär mit zahlreichen Patenten. Die kommerzielle Nutzung erfordert eine Lizenz. Beachten Sie, dass mehrere Patentpools zutreffen können. |
H.263
Der H.263-Codec des ITU wurde hauptsächlich für den Einsatz in Situationen mit geringer Bandbreite entwickelt. Insbesondere ist sein Fokus auf Videokonferenzen im PSTN (Public Switched Telephone Networks), in RTSP- und SIP (IP-basierte Videokonferenz)-Systemen. Trotz der Optimierung für Netzwerke mit geringer Bandbreite ist er ziemlich CPU-intensiv und kann möglicherweise auf Computern mit niedrigerer Leistung nicht ausreichend funktionieren. Das Datenformat ähnelt dem MPEG-4 Part 2.
H.263 wurde nie breit im Web eingesetzt. Abwandlungen von H.263 wurden als Grundlage für andere proprietäre Formate verwendet, wie z.B. Flash-Video oder den Sorenson-Codec. Kein großer Browser hat jedoch jemals standardmäßig H.263-Unterstützung integriert. Bestimmte Media-Plugins haben die Unterstützung für H.263-Medien ermöglicht.
Anders als bei den meisten Codecs definiert H.263 die Grundlagen eines kodierten Videos in Bezug auf die maximale Bitrate pro Frame (Bild), oder BPPmaxKb. Während der Kodierung wird ein Wert für BPPmaxKb ausgewählt, und dann kann das Video diesen Wert für jedes Bild nicht überschreiten. Die endgültige Bitrate hängt davon ab, von der Bildrate, der Kompression und der gewählten Auflösung und dem Blockformat.
H.263 wurde durch H.264 abgelöst und wird daher als veraltetes Medienformat betrachtet, das Sie generell vermeiden sollten, wenn es möglich ist. Der einzige wirkliche Grund zur Verwendung von H.263 in neuen Projekten wäre, wenn Sie Unterstützung auf sehr alten Geräten benötigen, auf denen H.263 Ihre beste Wahl ist.
H.263 ist ein proprietäres Format, mit Patenten, die von einer Reihe von Organisationen und Unternehmen gehalten werden, darunter Telenor, Fujitsu, Motorola, Samsung, Hitachi, Polycom, Qualcomm, und so weiter. Um H.263 zu nutzen, sind Sie rechtlich verpflichtet, die entsprechenden Lizenzen zu erwerben.
Unterstützte Bitraten | Unbeschränkt, aber typischerweise unter 64 kbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | Beliebig | ||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | ||||||||||||
Unterstützte Bildgrößen |
Bis zu 1408 x 1152 Pixel. Version 1 von H.263 spezifiziert eine Reihe von Bildgrößen, die unterstützt werden. Spätere Versionen können zusätzliche Auflösungen unterstützen. |
||||||||||||
Unterstützte Farbmodi | YCbCr; jedes Bildformat (sub-QCIF, QCIF, CIF, 4CIF, oder 16CIF) definiert die Bildgröße in Pixel und wie viele Reihen jeden Luminanz- und Chrominanzproben für jedes Bild verwendet werden | ||||||||||||
HDR-Unterstützung | Nein | ||||||||||||
Unterstützung für variable Bildrate (VFR) | Nein | ||||||||||||
Browser-Kompatibilität |
|
||||||||||||
Container-Unterstützung | 3GP, MP4, QuickTime | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Unterstützende/Erhaltende Organisation | ITU | ||||||||||||
Spezifikation | https://www.itu.int/rec/T-REC-H.263/ | ||||||||||||
Lizenzierung | Proprietär; eine entsprechende Lizenz oder Lizenzen sind erforderlich. Beachten Sie, dass mehrere Patentpools zutreffen können. |
HEVC (H.265)
Der High Efficiency Video Coding (HEVC) Codec ist sowohl von der ITU als H.265 als auch von MPEG-H Teil 2 (die noch in Entwicklung befindliche Fortsetzung von MPEG-4) definiert. HEVC wurde entwickelt, um eine effiziente Kodierung und Dekodierung von Videos in Größen einschließlich sehr hoher Auflösungen (einschließlich 8K-Video) zu unterstützen, mit einer Struktur, die speziell entwickelt wurde, um Software die Nutzung moderner Prozessoren zu erleichtern. Theoretisch kann HEVC komprimierte Dateigrößen erreichen, die halb so groß sind wie AVC, aber mit vergleichbarer Bildqualität.
Zum Beispiel besteht jede Coding Tree Unit (CTU) - ähnlich dem in früheren Codecs verwendeten Makroblock - aus einem Baum von Luminanzwerten für jede Probe sowie einem Baum von Chromawerten für jede Chromaprobe, die in derselben Coding Tree Unit verwendet wird, sowie allen erforderlichen Syntaxelementen. Diese Struktur unterstützt die einfache Verarbeitung durch mehrere Kerne.
Ein interessantes Merkmal von HEVC ist, dass das Main-Profil nur 8-Bit-Farbe pro Komponente mit 4:2:0 Chroma-Subsampling unterstützt. Interessant ist auch, dass 4:4:4 Video speziell behandelt wird. Anstatt die Luminanzproben (die die Pixel des Bildes in Graustufen repräsentieren) und die Cb- und Cr-Proben (die anzeigen, wie die Graustufen modifiziert werden sollen, um Farbpixel zu erzeugen) zu haben, werden die drei Kanäle stattdessen als drei monochrome Bilder betrachtet, eines für jede Farbe, die dann während der Wiedergabe zu einem vollfarbigen Bild kombiniert werden.
HEVC ist ein proprietäres Format und wird durch eine Reihe von Patenten abgedeckt. Die Lizenzierung wird von Via LA verwaltet; Gebühren werden an Entwickler und nicht an Inhaltsproduzenten und -verteiler erhoben. Stellen Sie sicher, dass Sie die neuesten Lizenzbedingungen und Anforderungen überprüfen, bevor Sie eine Entscheidung treffen, ob Sie HEVC in Ihrer App oder Website verwenden möchten!
Unterstützte Bitraten | Bis zu 800.000 kbps | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | Variiert je nach Level; bis zu 300 FPS sind möglich | ||||||||||||||||||||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | ||||||||||||||||||||||||||||||
Unterstützte Bildgrößen | 128 x 96 bis 8.192 x 4.320 Pixel; variiert je nach Profil und Level | ||||||||||||||||||||||||||||||
Unterstützte Farbmodi |
Nachfolgend sind die Informationen zu den wichtigsten Profilen angegeben. Es gibt eine Anzahl weiterer Profile, die hier nicht enthalten sind.
|
||||||||||||||||||||||||||||||
HDR-Unterstützung | Ja | ||||||||||||||||||||||||||||||
Unterstützung für variable Bildrate (VFR) | Ja | ||||||||||||||||||||||||||||||
Browser-Kompatibilität |
Chrome unterstützt HEVC für Geräte mit Hardwareunterstützung auf Windows 8+, Linux und ChromeOS, für alle Geräte auf macOS Big Sur 11+ und Android 5.0+. Edge (Chromium) unterstützt HEVC für Geräte mit Hardwareunterstützung auf Windows 10 1709+ wenn HEVC Video-Erweiterungen aus dem Microsoft Store installiert sind, und hat denselben Unterstützungsstatus wie Chrome auf anderen Plattformen. Edge (Legacy) unterstützt HEVC nur für Geräte mit einem Hardware-Decoder. Firefox aktiviert HEVC auf:
Opera und andere auf Chromium basierende Browser haben denselben Unterstützungsstatus wie Chrome. Safari unterstützt HEVC für alle Geräte auf macOS High Sierra oder neuer. |
||||||||||||||||||||||||||||||
Container-Unterstützung | ISOBMFF, MPEG-TS, MP4 QuickTime | ||||||||||||||||||||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||||||||||||||||||||
Unterstützende/Erhaltende Organisation | ITU / MPEG | ||||||||||||||||||||||||||||||
Spezifikationen |
http://www.itu.int/rec/T-REC-H.265 https://www.iso.org/standard/69668.html |
||||||||||||||||||||||||||||||
Lizenzierung | Proprietär; bestätigen Sie Ihre Übereinstimmung mit den Lizenzanforderungen. Beachten Sie, dass mehrere Patentpools zutreffen können. |
MP4V-ES
Das MPEG-4 Video Elemental Stream (MP4V-ES) Format ist Teil des MPEG-4 Part 2 Visual Standards. Während im Allgemeinen MPEG-4 Teil 2 Video von niemandem verwendet wird, weil es im Vergleich zu anderen Codecs keinen überzeugenden Wert bietet, hat MP4V-ES dennoch einige Anwendungen auf Mobilgeräten. MP4V ist im Wesentlichen H.263-Kodierung in einem MPEG-4-Container.
Sein Hauptzweck ist es, MPEG-4 Audio und Video über eine RTP-Sitzung zu streamen. MP4V-ES wird jedoch auch verwendet, um MPEG-4 Audio und Video über eine mobile Verbindung mit 3GP zu übertragen.
Sie möchten dieses Format höchstwahrscheinlich nicht verwenden, da es von keinem großen Browser in einer bedeutenden Weise unterstützt wird und ziemlich veraltet ist. Dateien dieses Typs sollten die Erweiterung .mp4v
haben, werden aber manchmal fälschlicherweise als .mp4
bezeichnet.
Unterstützte Bitraten | 5 kbps bis 1 Gbps und mehr | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | Keine spezifische Grenze; nur durch die Datenrate eingeschränkt | ||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | ||||||||||||
Unterstützte Bildgrößen | Bis zu 4.096 x 4.096 Pixel | ||||||||||||
Unterstützte Farbmodi | YCrCb mit Chroma-Subsampling (4:2:0, 4:2:2 und 4:4:4) unterstützt; bis zu 12 Bits pro Komponente | ||||||||||||
HDR-Unterstützung | Nein | ||||||||||||
Unterstützung für variable Bildrate (VFR) | Ja | ||||||||||||
Browser-Kompatibilität |
Firefox unterstützt MP4V-ES in 3GP Containern nur. Chrome unterstützt MP4V-ES nicht; jedoch tut ChromeOS dies. |
||||||||||||
Container-Unterstützung | 3GP, MP4 | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Unterstützende/Erhaltende Organisation | MPEG | ||||||||||||
Spezifikation | RFC 6416 | ||||||||||||
Lizenzierung | Proprietär; erwerben Sie eine Lizenz über Via LA und/oder AT&T nach Bedarf |
MPEG-1 Teil 2 Video
MPEG-1 Teil 2 Video wurde Anfang der 1990er Jahre vorgestellt. Im Gegensatz zu den späteren MPEG-Videostandards wurde MPEG-1 ausschließlich von MPEG entwickelt, ohne die Beteiligung der ITU.
Da jeder MPEG-2-Decoder auch MPEG-1-Video wiedergeben kann, ist es mit einer Vielzahl von Software- und Hardwaregeräten kompatibel. Es gibt keine aktiven Patente mehr, die sich auf MPEG-1-Video beziehen, sodass es ohne jegliche Lizenzbedenken verwendet werden kann. Allerdings unterstützen nur wenige Webbrowser MPEG-1-Video ohne die Unterstützung eines Plugins, und da die Nutzung von Plugins in Webbrowsern veraltet ist, sind diese im Allgemeinen nicht mehr verfügbar. Dies macht MPEG-1 zu einer schlechten Wahl für den Einsatz in Websites und Webanwendungen.
Unterstützte Bitraten | Bis zu 1,5 Mbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | 23.976 FPS, 24 FPS, 25 FPS, 29.97 FPS, 30 FPS, 50 FPS, 59.94 FPS, und 60 FPS | ||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | ||||||||||||
Unterstützte Bildgrößen | Bis zu 4.095 x 4.095 Pixel | ||||||||||||
Unterstützte Farbmodi | Y'CbCr mit 4:2:0 Chroma-Subsampling mit bis zu 12 Bits pro Komponente | ||||||||||||
HDR-Unterstützung | Nein | ||||||||||||
Unterstützung für variable Bildrate (VFR) | Nein | ||||||||||||
Browser-Kompatibilität |
|
||||||||||||
Container-Unterstützung | MPEG | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Unterstützende/Erhaltende Organisation | MPEG | ||||||||||||
Spezifikation | https://www.iso.org/standard/22411.html | ||||||||||||
Lizenzierung | Proprietär; allerdings sind alle Patente abgelaufen, sodass MPEG-1 frei verwendet werden kann |
MPEG-2 Teil 2 Video
MPEG-2 Teil 2 ist das Videoformat, das durch die MPEG-2-Spezifikation definiert wird, und wird gelegentlich auch durch sein ITU-Kennzeichnung, H.262, bezeichnet. Es ist dem MPEG-1-Video sehr ähnlich - tatsächlich kann jeder MPEG-2-Player automatisch MPEG-1 ohne spezielle Anpassungen verarbeiten - außer dass es erweitert wurde, um höhere Bitraten und verbesserte Kodierungstechniken zu unterstützen.
Das Ziel war es, MPEG-2 so zu gestalten, dass es Standard-Definition-Fernsehen komprimieren kann, weshalb auch interlaced Video unterstützt wird. Die Standard-Definition-Kompressionsrate und die Qualität des resultierenden Videos erfüllten die Anforderungen gut genug, dass MPEG-2 der primäre VideoCodec für DVD-Videomedien wurde.
MPEG-2 hat mehrere verfügbare Profile mit unterschiedlichen Fähigkeiten. Jedes Profil ist in vier Level verfügbar, von denen jeder die Attribute des Videos erhöht, wie Bildrate, Auflösung, Bitrate und so weiter. Die meisten Profile verwenden Y'CbCr mit 4:2:0-Chroma-Subsampling, aber fortgeschrittenere Profile unterstützen auch 4:2:2. Darüber hinaus gibt es vier Level, von denen jeder Unterstützung für größere Bilddimensionen und Bitraten bietet. Zum Beispiel unterstützt die ATSC-Spezifikation für Fernsehen, die in Nordamerika verwendet wird, MPEG-2-Video in hoher Auflösung mit dem Main-Profil auf hohem Level, 4:2:0-Video bei sowohl 1920 x 1080 (30 FPS) als auch 1280 x 720 (60 FPS) bei einer maximalen Bitrate von 80 Mbps.
Allerdings unterstützen nur wenige Webbrowser MPEG-2 ohne die Unterstützung eines Plugins, und da die Plug-in-Verwendung in Webbrowsern veraltet ist, sind diese im Allgemeinen nicht mehr verfügbar. Dies macht MPEG-2 zu einer schlechten Wahl für den Einsatz auf Websites und Webanwendungen.
Unterstützte Bitraten | Bis zu 100 Mbps; variiert je nach Level und Profil | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten |
|
|||||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | |||||||||||||||
Unterstützte Bildgrößen |
|
|||||||||||||||
Unterstützte Farbmodi | Y'CbCr mit 4:2:0-Chroma-Subsampling in den meisten Profilen; die "High" und "4:2:2" Profile unterstützen auch 4:2:2-Chroma-Subsampling. | |||||||||||||||
HDR-Unterstützung | Nein | |||||||||||||||
Unterstützung für variable Bildrate (VFR) | Nein | |||||||||||||||
Browser-Kompatibilität |
|
|||||||||||||||
Container-Unterstützung | MPEG, MPEG-TS (MPEG-Transport-Stream), MP4, QuickTime | |||||||||||||||
RTP / WebRTC kompatibel | Nein | |||||||||||||||
Unterstützende/Erhaltende Organisation | MPEG / ITU | |||||||||||||||
Spezifikation |
https://www.itu.int/rec/T-REC-H.262 https://www.iso.org/standard/61152.html |
|||||||||||||||
Lizenzierung | Proprietär; alle Patente sind weltweit abgelaufen, mit Ausnahme von Malaysia (ab dem 1. Oktober 2024), sodass MPEG-2 außerhalb von Malaysia frei verwendet werden kann. Patente werden von Via LA lizenziert. |
Theora
Warnung: Dieser Codec wird nicht mehr empfohlen. Er hat eine sehr geringe Nutzung, und die Unterstützung wird aus Browsern entfernt.
Theora, entwickelt von Xiph.org, ist ein offener und kostenloser Videocodec, der ohne Lizenzgebühren oder -anforderungen verwendet werden kann. Theora ist in Bezug auf Qualität und Kompressionsraten mit MPEG-4 Part 2 Visual und AVC vergleichbar, was ihn zu einer sehr guten, wenn auch nicht erstklassigen Wahl für die Video-Kodierung macht. Aber sein Status als frei von Lizenzbedenken und seine relativ geringen Anforderungen an CPU-Ressourcen machen ihn zu einer beliebten Wahl für viele Software- und Webprojekte. Die geringe CPU-Belastung ist besonders nützlich, da es keine Hardware-Decoder für Theora gibt.
Theora wurde ursprünglich auf Basis des VC3-Codecs von On2 Technologies entwickelt. Der Codec und seine Spezifikation wurden unter der LGPL-Lizenz veröffentlicht und Xiph.org anvertraut, das ihn dann zum Theora-Standard entwickelte.
Ein Nachteil von Theora ist, dass es nur 8 Bit pro Farbkomponente unterstützt, ohne die Möglichkeit, 10 oder mehr zu nutzen, um Farbbanding zu vermeiden. Das gesagt, 8 Bit pro Komponente ist immer noch das am häufigsten verwendete Farbformat heute, sodass dies in den meisten Fällen nur eine geringfügige Unannehmlichkeit ist. Außerdem kann Theora nur in einem Ogg-Container verwendet werden. Der größte Nachteil überhaupt ist jedoch, dass es von Safari nicht unterstützt wird, was Theora nicht nur auf macOS, sondern auch auf all den Millionen von iPhones und iPads unzugänglich macht.
Das Theora Cookbook bietet zusätzliche Informationen zu Theora sowie zum Ogg-Containerformat, das darin verwendet wird.
Unterstützte Bitraten | Bis zu 2 Gbps | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | Beliebig; jeder ungleich Null positiv Wert wird unterstützt. Die Bildrate wird als 32-Bit-Zähler und 32-Bit-Nenner spezifiziert, um nicht-ganzzahlige Bildraten zu ermöglichen. | ||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | ||||||||||||
Unterstützte Bildgrößen | Jede Kombination von Breite und Höhe bis zu 1.048.560 x 1.048.560 Pixel | ||||||||||||
Unterstützte Farbmodi | Y'CbCr mit 4:2:0, 4:2:2 und 4:4:4 Chroma-Subsampling bei 8 Bit pro Komponente | ||||||||||||
HDR-Unterstützung | Nein | ||||||||||||
Unterstützung für variable Bildrate (VFR) |
Ja Während Theora keine Unterstützung für variable Bildrate (VFR) innerhalb eines einzigen Streams bietet, können mehrere Streams in einer einzigen Datei verkettet werden, und jeder dieser Streams kann seine eigene Bildrate haben, was im Grunde genommen VFR ermöglicht. Dies ist jedoch unpraktisch, wenn die Bildrate häufig geändert werden muss. |
||||||||||||
Browser-Kompatibilität |
Edge unterstützt Theora mit der optionalen Web Media Extensions Erweiterung. |
||||||||||||
Container-Unterstützung | Ogg | ||||||||||||
RTP / WebRTC kompatibel | Nein | ||||||||||||
Unterstützende/Erhaltende Organisation | Xiph.org | ||||||||||||
Spezifikation | https://www.theora.org/doc/ | ||||||||||||
Lizenzierung | Offen und frei von Lizenzgebühren und anderen Lizenzanforderungen |
VP8
Der Video Processor 8 (VP8) Codec wurde ursprünglich von On2 Technologies erstellt. Nach dem Kauf von On2 durch Google wurde VP8 als offenes und lizenzgebührenfreies Videoformat unter dem Versprechen veröffentlicht, die relevanten Patente nicht durchzusetzen. In Bezug auf Qualität und Kompressionsrate ist VP8 mit AVC vergleichbar.
Wenn der Browser es unterstützt, ermöglicht VP8 Videos mit einem Alphakanal, sodass das Video mit dem Hintergrund so abgespielt werden kann, dass der Hintergrund durch das Video zu einem Grad, der durch die Alphakomponente jedes Pixels spezifiziert wird, sichtbar ist.
Es gibt eine gute Browserunterstützung für VP8 in HTML-Inhalten, insbesondere in WebM-Dateien. Dies macht VP8 zu einem guten Kandidaten für Ihre Inhalte, obwohl VP9 eine noch bessere Wahl ist, wenn es Ihnen zur Verfügung steht. Webbrowser sind verpflichtet, VP8 für WebRTC zu unterstützen, aber nicht alle Browser, die dies tun, unterstützen es auch in HTML-Audio- und Videoelementen.
Unterstützte Bitraten | Willkürlich; kein Maximum, sofern nicht durch Levels begrenzt |
---|---|
Unterstützte Bildraten | Willkürlich |
Kompression | Verlustbehaftet DCT-basierter Algorithmus |
Unterstützte Bildgrößen | Bis zu 16.384 x 16.384 Pixel |
Unterstützte Farbmodi | Y'CbCr mit 4:2:0 Chroma-Subsampling bei 8 Bit pro Komponente |
HDR-Unterstützung | Nein |
Unterstützung für variable Bildrate (VFR) | Ja |
Browser-Kompatibilität |
Alle Versionen von Chrome, Edge, Firefox, Opera und Safari
iOS: Safari 12.1 und später unterstützen VP8 nur in WebRTC-Verbindungen. Firefox unterstützt VP8 nur in MSE, wenn kein H.264-Hardwaredecoder verfügbar ist. Verwenden Sie [`MediaSource.isTypeSupported()`](/de/docs/Web/API/MediaSource/isTypeSupported_static), um die Verfügbarkeit zu überprüfen. |
Container-Unterstützung | 3GP, Ogg, WebM |
RTP / WebRTC kompatibel | Ja; VP8 ist einer der spezifikationsgeforderten Codecs für WebRTC |
Unterstützende/Erhaltende Organisation | |
Spezifikation | RFC 6386 |
Lizenzierung | Offen und frei von Lizenzgebühren und anderen Lizenzanforderungen |
VP9
Video Processor 9 (VP9) ist der Nachfolger des älteren VP8-Standards, entwickelt von Google. Wie VP8 ist VP9 vollständig offen und lizenzgebührenfrei. Seine Kodierungs- und Dekodierungsleistung ist vergleichbar mit oder leicht schneller als die von AVC, jedoch mit besserer Qualität. Die kodierte Videoqualität von VP9 ist mit der von HEVC bei ähnlichen Bitraten vergleichbar.
Das Hauptprofil von VP9 unterstützt nur 8-Bit-Farbtiefe bei 4:2:0 Chroma-Subsampling, aber seine Profile beinhalten Unterstützung für tiefere Farben und die gesamte Bandbreite der Chroma-Subsampling-Modi. Es unterstützt mehrere HDR-Implementierungen und bietet großen Spielraum bei der Auswahl von Bildraten, Seitenverhältnissen und Bildgrößen.
VP9 ist breit von Browsern unterstützt, und Hardware-Implementierungen des Codecs sind recht verbreitet. VP9 ist einer der beiden Videocodecs, die von WebM gefordert werden (der andere ist VP8). Beachten Sie jedoch, dass die Safari-Unterstützung für WebM und VP9 erst in Version 14.1 eingeführt wurde, daher sollten Sie, wenn Sie VP9 verwenden, ein alternatives Format wie AVC oder HEVC für iPhone, iPad und Mac-Benutzer in Betracht ziehen.
VP9 ist eine gute Wahl, wenn Sie einen WebM-Container verwenden können (und gegebenenfalls alternatives Video bereitstellen können). Dies gilt insbesondere, wenn Sie einen offenen Codec anstelle eines proprietären verwenden möchten.
Unterstützte Bitraten | Willkürlich; kein Maximum, sofern nicht durch Levels begrenzt | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unterstützte Bildraten | Willkürlich | |||||||||||||||
Kompression | Verlustbehaftet DCT-basierter Algorithmus | |||||||||||||||
Unterstützte Bildgrößen | Bis zu 65.536 x 65.536 Pixel | |||||||||||||||
Unterstützte Farbmodi |
Unterstützte Farbräume: Rec. 601, Rec. 709, Rec. 2020, SMPTE C, SMPTE-240M (veraltet; ersetzt durch Rec. 709) und sRGB. |
|||||||||||||||
HDR-Unterstützung | Ja; HDR10+, HLG, und PQ | |||||||||||||||
Unterstützung für variable Bildrate (VFR) | Ja | |||||||||||||||
Browser-Kompatibilität |
Alle Versionen von Chrome, Edge, Firefox, Opera und Safari
Firefox unterstützt VP8 nur in MSE, wenn kein H.264-Hardwaredecoder verfügbar ist. Verwenden Sie [`MediaSource.isTypeSupported()`](/de/docs/Web/API/MediaSource/isTypeSupported_static), um die Verfügbarkeit zu überprüfen. |
|||||||||||||||
Container-Unterstützung | MP4, Ogg, WebM | |||||||||||||||
RTP / WebRTC kompatibel | Ja | |||||||||||||||
Unterstützende/Erhaltende Organisation | ||||||||||||||||
Spezifikation | https://www.webmproject.org/vp9/ | |||||||||||||||
Lizenzierung | Offen und frei von Lizenzgebühren und anderen Lizenzanforderungen |
Auswahl eines Video-Codecs
Die Entscheidung, welche Codec oder Codecs verwendet werden sollen, beginnt mit einer Reihe von Fragen zur Vorbereitung:
- Möchten Sie ein offenes Format verwenden, oder sollen auch proprietäre Formate in Betracht gezogen werden?
- Haben Sie die Ressourcen, um mehr als ein Format für jedes Ihrer Videos zu produzieren? Die Fähigkeit, eine Fallback-Option bereitzustellen, vereinfacht den Entscheidungsprozess erheblich.
- Gibt es Browser, bei denen Sie bereit sind, auf Kompatibilität zu verzichten?
- Wie alt ist die älteste Version des Webbrowsers, den Sie unterstützen müssen? Müssen Sie beispielsweise in jedem Browser funktionieren, der in den letzten fünf Jahren veröffentlicht wurde, oder nur im letzten Jahr?
In den folgenden Abschnitten bieten wir empfohlene Codec-Auswahlen für spezifische Anwendungsfälle an. Für jeden Anwendungsfall finden Sie bis zu zwei Empfehlungen. Wenn der Codec, der als am besten für den Anwendungsfall betrachtet wird, proprietär ist oder möglicherweise Lizenzgebühren erfordert, werden zwei Optionen bereitgestellt: zuerst eine offene und lizenzgebührenfreie Option, gefolgt von der proprietären.
Wenn Sie nur eine einzige Version jedes Videos anbieten können, können Sie das Format wählen, das am besten zu Ihren Bedürfnissen passt. Die erste wird als gute Kombination aus Qualität, Leistung und Kompatibilität empfohlen. Die zweite Option wird die am weitesten verbreitete kompatible Wahl sein, auf Kosten von etwas Qualität, Leistung und/oder Größe.
Empfehlungen für Alltagsvideos
Schauen wir uns zunächst die besten Optionen für Videos an, die auf einer typischen Website wie einem Blog, einer Informationsseite, einer kleinen Unternehmenswebsite präsentiert werden, wo Videos verwendet werden, um Produkte vorzuführen (aber nicht, wo die Videos selbst ein Produkt sind) und so weiter.
-
Ein WebM Container, der den VP9 Codec für Video und den Opus Codec für Audio verwendet. Diese sind alle offene, lizenzgebührenfreie Formate, die im Allgemeinen gut unterstützt werden, obwohl nur in recht aktuellen Browsern, weshalb ein Fallback eine gute Idee ist.
html<video controls src="filename.webm"></video>
-
Ein MP4 Container und der AVC (H.264) Video-Codec, idealerweise mit AAC als Audio-Codec. Der MP4-Container mit AVC und AAC Codecs ist eine weit verbreitete Kombination - von jedem großen Browser, tatsächlich - und die Qualität ist typischerweise gut für die meisten Anwendungsfälle. Stellen Sie jedoch sicher, dass Sie die Einhaltung der Lizenzanforderungen überprüfen.
html<video controls> <source type="video/webm" src="filename.webm" /> <source type="video/mp4" src="filename.mp4" /> </video>
Empfehlungen für hochqualitative Videopräsentation
Wenn es Ihr Ziel ist, Video in bestmöglicher Qualität zu präsentieren, werden Sie wahrscheinlich davon profitieren, so viele Formate wie möglich anzubieten, da die Codecs, die die beste Qualität bieten können, auch dazu neigen, die neuesten zu sein, und somit am wahrscheinlichsten Lücken in der Browser-Kompatibilität aufweisen.
-
Ein WebM-Container, der AV1 für Video und Opus für Audio verwendet. Wenn Sie in der Lage sind, das High- oder Professional-Profil beim Codieren von AV1 auf einem hohen Level wie 6.3 zu verwenden, können Sie sehr hohe Bitraten bei 4K- oder 8K-Auflösung erreichen und dabei exzellente Videoqualität beibehalten. Die Audiodaten können mit dem Fullband-Profil von Opus bei einer Abtastrate von 48 kHz codiert werden, um die Audiobandbreite zu maximieren und nahezu den gesamten Frequenzbereich zu erfassen, der im menschlichen Gehör liegt.
html<video controls src="filename.webm"></video>
-
Ein MP4-Container, der den HEVC Codec mit einem der fortschrittlichen Hauptprofile verwendet, wie Main 4:2:2 mit 10 oder 12 Bit Farbtiefe oder sogar das Main 4:4:4 Profil mit bis zu 16 Bit pro Komponente. Bei einer hohen Bitrate bietet dies exzellente Grafikqualität mit bemerkenswerter Farbwiedergabe. Zusätzlich können Sie optional HDR-Metadaten hinzufügen, um Video mit hohem Dynamikumfang bereitzustellen. Für Audio verwenden Sie den AAC-Codec bei einer hohen Abtastrate (mindestens 48 kHz, idealerweise 96 kHz) und mit komplexer Codierung statt schneller Codierung.
html<video controls> <source type="video/webm" src="filename.webm" /> <source type="video/mp4" src="filename.mp4" /> </video>
Empfehlungen für Archivierung, Bearbeitung oder Remix
Derzeit gibt es keine verlustfreien – oder auch nur nahezu verlustfreien – Video-Codecs, die allgemein in Webbrowsern verfügbar sind. Der Grund dafür ist einfach: Video ist riesig. Verlustfreie Kompression ist per Definition weniger effektiv als verlustbehaftete Kompression. Beispielsweise benötigt unkomprimiertes 1080p Video (1920 mal 1080 Pixel) mit 4:2:0 Chroma-Subsampling mindestens 1,5 Gbps. Die Verwendung verlustfreier Kompression wie FFV1 (die von Webbrowsern nicht unterstützt wird) könnte diese Menge möglicherweise auf rund 600 Mbps reduzieren, abhängig vom Inhalt. Das ist immer noch eine riesige Menge an Bits, die jede Sekunde durch eine Verbindung gepumpt werden müssen, und ist derzeit für keinen realistischen Einsatz praktikabel.
Dies ist der Fall, obwohl einige der verlustbehafteten Codecs einen verlustfreien Modus verfügbar haben; die verlustfreien Modi sind in keinem aktuellen Webbrowser implementiert. Das Beste, das Sie tun können, ist, einen hochwertigen Codec zu wählen, der verlustbehaftete Kompression verwendet, und ihn so zu konfigurieren, dass er so wenig Kompression wie möglich bietet. Eine Möglichkeit, dies zu tun, ist, den Codec so zu konfigurieren, dass er "schnelle" Kompression verwendet, was von Natur aus bedeutet, dass weniger Kompression erreicht wird.
Video extern vorbereiten
Um Videos für Archivierungszwecke außerhalb Ihrer Website oder App vorzubereiten, verwenden Sie ein Dienstprogramm, das die Kompression auf den ursprünglichen unkomprimierten Videodaten durchführt. Beispielsweise kann das kostenlose x264 Dienstprogramm verwendet werden, um Video im AVC Format mit einer sehr hohen Bitrate zu codieren:
x264 --crf 18 -preset ultrafast --output out-file.mp4 in-file
Während andere Codecs bei signifikant höherer Kompression möglicherweise bessere Qualitätsniveaus aufweisen, neigen ihre Encoder dazu, so langsam zu sein, dass die nahezu verlustfreie Codierung, die Sie mit dieser Kompression erhalten, bei etwa gleichem Qualitätsniveau erheblich schneller ist.
Videoaufzeichnung
Angesichts der Einschränkungen, wie nah Sie an verlustfrei herankommen können, könnten Sie in Betracht ziehen, AVC oder AV1 zu verwenden. Wenn Sie beispielsweise die MediaStream Recording API verwenden, um Video aufzuzeichnen, könnten Sie Code wie den folgenden verwenden, um Ihr MediaRecorder
Objekt zu erstellen:
const kbps = 1024;
const Mbps = kbps * kbps;
const options = {
mimeType: 'video/webm; codecs="av01.2.19H.12.0.000.09.16.09.1, flac"',
bitsPerSecond: 800 * Mbps,
};
let recorder = new MediaRecorder(sourceStream, options);
Dieses Beispiel erstellt einen MediaRecorder
, der konfiguriert ist, um AV1 Video unter Verwendung von BT.2100 HDR in 12-Bit-Farbe mit 4:4:4 Chroma-Subsampling und FLAC für verlustfreies Audio aufzuzeichnen. Die resultierende Datei wird eine Bitrate von maximal 800 Mbps haben, die zwischen den Video- und Audiospuren geteilt wird. Sie müssen wahrscheinlich diese Werte anpassen, abhängig von der Hardwareleistung, Ihren Anforderungen und den spezifischen Codecs, die Sie verwenden möchten. Diese Bitrate ist offensichtlich nicht realistisch für die Übertragung über Netzwerke und würde wahrscheinlich nur lokal verwendet werden.
Wenn wir den Wert des codecs
-Parameters in seine durch Punkte abgegrenzten Eigenschaften aufschlüsseln, sehen wir Folgendes:
Wert | Beschreibung |
---|---|
av01 |
Die vierstellige Zeichenfolge (4CC), die den AV1 Codec identifiziert. |
2 |
Das Profil. Ein Wert von 2 gibt das Professional-Profil an. Ein Wert von 1 ist das High-Profil, während ein Wert von 0 das Main-Profil spezifizieren würde. |
19H |
Das Level und die Tier. Dieser Wert stammt aus der Tabelle in Abschnitt A.3 der AV1-Spezifikation und gibt die hohe Tier von Level 6.3 an. |
12 |
Die Farbtiefe. Dies gibt 12 Bits pro Komponente an. Andere mögliche Werte sind 8 und 10, aber 12 ist die höchstgenaue Farbdarstellung, die in AV1 verfügbar ist. |
0 |
Das Monochrom-Modus-Flag. Wenn 1, würden keine Chroma-Ebenen aufgezeichnet, und alle Daten sollten ausschließlich Luma-Daten sein, was zu einem Graustufen-Bild führen würde. Wir haben 0 spezifiziert, weil wir Farbe möchten. |
000 |
Der Chroma-Subsampling-Modus, entnommen aus Abschnitt 6.4.2 in der AV1-Spezifikation. Ein Wert von 000, kombiniert mit dem Monochrom-Modus-Wert 0, zeigt an, dass wir 4:4:4 Chroma-Subsampling oder keinen Farbdatenverlust wünschen. |
09 |
Die Farbprimärfarben, die verwendet werden sollen. Dieser Wert stammt aus Abschnitt 6.4.2 in der AV1-Spezifikation; 9 gibt an, dass wir BT.2020-Farbe verwenden möchten, die für HDR verwendet wird. |
16 |
Die Übertragungscharakteristiken, die verwendet werden sollen. Dies stammt ebenfalls aus Abschnitt 6.4.2; 16 gibt an, dass wir die Charakteristiken für BT.2100 PQ Farbe verwenden möchten. |
09 |
Die Matrixkoeffizienten, die verwendet werden sollen, wieder aus Abschnitt 6.4.2. Ein Wert von 9 gibt an, dass wir BT.2020 mit variabler Leuchtdichte verwenden möchten; dies ist auch als BT.2010 YbCbCr bekannt. |
1 |
Das Video-"Full-Range"-Flag. Ein Wert von 1 zeigt an, dass wir den vollen Farbbereich verwenden möchten. |
Die Dokumentation zu Ihren Codec-Wahlen wird wahrscheinlich Informationen enthalten, die Sie beim Erstellen Ihres codecs
-Parameters verwenden werden.
Siehe auch
- Leitfaden für Web-Audio-Codec
- Mediencontainerformate (Dateitypen)
- Umgang mit Medien-Supportproblemen in Web-Inhalten
- Codecs verwendet von WebRTC
- RFC 6381: Die "Codecs" und "Profiles" Parameter für "Bucket"-Medientypen
- RFC 5334: Ogg Medientypen
- RFC 3839: MIME-Typ Registrierung für 3GPP Multimedia-Dateien
- RFC 4381: MIME-Typ Registrierung für 3GPP2 Multimedia-Dateien
- RFC 4337: MIME-Typ Registrierung für MPEG-4
- Video- und Audio-Codecs in Chrome