it-swarm.com.de

Was ist ein Codec (z. B. DivX?) Und wie unterscheidet er sich von einem Dateiformat (z. B. MPG)?

Ich bin so verwirrt ... was ist der Unterschied zwischen einem Audio/Video-Codec (der anscheinend eine Abkürzung für "Encoder/Decoder" ist, ähnlich wie "Modem" wirklich "Modulator/Demodulator" ist) und einem Audio/Videoformat?
(Verwende ich überhaupt die richtige Terminologie?)

h .: Was ist der Unterschied zwischen "MPEG-4" und "DivX"? Warum führt Windows Media Player manchmal .mpg-Dateien aus und manchmal nicht?

Welche der folgenden Codecs sind auch, welche sind Dateiformate und welche sind keine?

  • Quicktime MOV
  • MPEG (1, 2, 3, 4)
  • WMV
  • FFmpeg
  • AVC
  • Xvid
  • DivX (wie unterscheidet es sich von seinem Palindrom Xvid?)
  • H.264
92
Mehrdad

Einige Hauptdefinitionen:

  • Ein Codec (z. B. H.264, HEVC, VP9) ist nur für den Video- oder Audioteil verantwortlich, und ein oder mehrere Codecs können in einem Container zusammengeführt werden.
  • Ein Container (z. B. MP4, MKV) ist dafür verantwortlich, dass sie zusammengehalten werden. Dies ist auch das, was Sie normalerweise in einem Media Player Ihrer Wahl öffnen.
  • Ein bestimmter Codierer (z. B. x264, libvpx) ist dafür verantwortlich, einen Eingabestream in einen Codec-kompatiblen Bitstream umzuwandeln. Es gibt oft mehrere Encoder für einen bestimmten Codec.

Wie Sie sehen, müssen wir hier einige Dinge erklären.

Was ist ein Codec?

Ein Codec ist die Abkürzung für Encoder/Decoder, was im Grunde genommen nur Folgendes bedeutet: Von einem Encoder erzeugte Daten können immer von einem geeigneten Decoder decodiert werden. Dies gilt für Video, Audio, aber Sie können auch an die Kryptografie denken (ein Encoder benötigt einen geeigneten Decoder, um eine verschlüsselte Nachricht anzuzeigen).

Wenn heutzutage ein Video-Codec angegeben wird, geben die beteiligten Institutionen in der Regel nur die Syntax des Standards an. Zum Beispiel werden sie sagen: "Das Bitstream-Format muss so sein", "Der 0x810429AAB hier wird in diesen übersetzt" usw. Oft liefern sie einen Referenzcodierer und -decodierer, aber wie ein Codierer dann geschrieben wird, um mit einem solchen Codierer übereinzustimmen ein Format liegt ganz bei den Herstellern.

Dies ist der Grund, warum Sie so viele Encoder für denselben Codec finden, von denen einige sogar kommerziell sind.

Ein Fallbeispiel - H.264

Bevor wir die Terminologie vertauschen, nehmen wir ein Beispiel. Betrachten Sie den Fall für H.264 . Der Standardname ist H.264 - das ist nicht der Name des eigentlichen Encoders. Mainconcept ist ein sehr guter kommerzieller Encoder, wohingegen x264 ein freier und Open-Source-Encoder ist. Beide behaupten natürlich, gute Qualität zu liefern.

Die bloße Tatsache, dass Sie die Codierung optimieren können, sorgt für einen Wettbewerb. Beide Encoder liefern einen standardisierten Bitstrom, der immer von einem H.264-kompatiblen Decoder decodiert werden kann.

Zusammenfassen

Nehmen wir also an, ein Encoder wird:

  • video-Frames aufnehmen
  • einen gültigen Bitstrom erzeugen

Der Bitstrom wird dann in einen Container gemultiplext.

Der Decoder wird:

  • nimm diesen gültigen Bitstrom
  • rekonstruieren Sie die Videobilder daraus

Beide entsprechen einem Codec-Standard. Das ist alles!


Aktuelle Codecs

In diesen Tagen werden Sie wahrscheinlich nur Videos finden, die mit den unten genannten Codecs codiert sind. Interessanterweise wurden fast alle von der Motion Picture Experts Group (MPEG) erstellt. Es gibt jedoch auch einige andere gebührenfreie Codecs, z. solche, die von Google oder der Alliance for Open Media erstellt wurden und mit den MPEG-Standards konkurrieren.

Beachten Sie, dass "MPEG" sowohl auf Codecs als auch auf Container verweisen kann, wie Sie weiter unten sehen werden. Dies trägt zur Verwirrung bei, weiß aber nur, dass "MPEG" allein nichts bedeutet, z. "Ich habe eine Datei im MPEG-Format" ist sehr mehrdeutig ".

MPEG-2

MPEG-2 ist ziemlich alt. Seine erste öffentliche Veröffentlichung ist 1996. MPEG-2-Video wird hauptsächlich für DVDs und Fernsehsendungen verwendet, z. DVB-T- oder Satelliten- und Legacy-Anwendungen, bei denen Kompatibilität wichtig ist. MPEG-2-Videos befinden sich meist in einem . MPG -Container.

MPEG-4 Part 2

Dies ist wahrscheinlich diejenige, die Mitte der 2000er Jahre hauptsächlich zum Codieren von Videos für das Web verwendet wurde, die jedoch inzwischen abgelaufen ist. Es bietet eine gute Qualität bei praktischen Dateigrößen, was bedeutet, dass Sie einen ganzen Film mit einer Länge von 90 Minuten auf eine 600-MB-CD brennen können (während Sie mit MPEG-2 eine DVD benötigt hätten, ) meine antwort hier ). Es funktioniert nicht mehr so ​​gut für HD- oder 4K-Inhalte.

Einige Encoder, die MPEG-4 Part 2-Video ausgeben, sind DivX , seine Open-Source-Abzocke XviD und Nero Digital .

MPEG-4 Part 2-Videos werden meist in einem AVI -Container geliefert, aber MP4 wird auch häufig gesehen.

MPEG-4 Part 10/AVC/H.264

Dies wird auch als MPEG-4 Advanced Video Coding (AVC) oder H.264 bezeichnet. es ist heute der am häufigsten verwendete Codec. Es bietet gute Qualität bei kleinen Dateigrößen und ist daher perfekt für alle Arten von Videos für das Internet oder mobile Geräte geeignet. Sie finden H.264 in fast allen modernen Anwendungen, von Handys bis zu Camcordern. Auf Blu-ray-Disks wird das Video jetzt in H.264 codiert.

Einige Encoder dafür sind: x264 , NVENC (von NVIDIA), Mainconcept . Die Videos kommen meist in MP4 , MKV oder MOV Containern.

HEVC/H.265

Dies wird auch als MPEG-H-Teil 2 bezeichnet und ist der Nachfolger von MPEG-4 Teil 10/AVC/H.264. Es zielt auf höhere Auflösungen (bis zu 8K ) ab und bietet eine bis zu 50% höhere Codierungsleistung (in Bezug auf Qualität vs. Bitrate) als H.264 (siehe dieses Papier zum Beispiel).

Der Standard wurde 2013 veröffentlicht, und langsam wird der Codec zunehmend verwendet, z. B. für IPTV- oder Online-Videoübertragungen. HEVC wird auch von Apple verwendet, um Videos und Bilder (mit HEIF ) auf iOS zu speichern. Die Tatsache, dass mit HEVC mehrere Patentpools verbunden sind, hat jedoch zur Folge, dass viele Unternehmen (fast alle außer Apple) auf lizenzfreie Alternativen umsteigen. HEVC wird auch nicht von allen Browsern nativ unterstützt , sodass es für das Web-Streaming unbrauchbar wird.

Der bekannteste Encoder ist x265 . Es gibt auch NVENC. Die Videos kommen normalerweise in MP4 Containern.

VP9 und AV1

VP9 (der Nachfolger von VP8) ist ein Codec, der hauptsächlich von Google entwickelt wurde. Es ist offen und lizenzfrei und in vielen Browsern implementiert . Die Qualität ist fast so gut wie bei HEVC und manchmal sogar noch besser (siehe dieses Papiers von Netflix). VP9 erhalten Sie, wenn Sie YouTube in einem Browser ansehen, der dies unterstützt.

VP9 kann mit dem libvpx Encoder codiert werden und wird häufig in WebM - oder MKV -Containern geliefert .

Einige Unternehmen haben sich zusammengeschlossen, um einen noch stärkeren Wettbewerber für HEVC zu bilden - aber als gebührenfreie Alternative. AV1 wird der Nachfolger von VP9 sein und basiert auf dem, was VP10 werden sollte. Es wird von der Alliance for Open Media (gegründet von Amazon, Cisco, Google, Intel, Microsoft, Mozilla und Netflix) unterstützt. Lesen Sie hier mehr darüber .

Der libaom - Encoder kann zum Generieren von AV1-Bitstreams verwendet werden, ist jedoch noch experimentell.


Was ist ein Format (Container)?

Bisher haben wir nur den rohen "Bitstream" erklärt, bei dem es sich im Grunde nur um echte Rohvideodaten handelt. Sie könnten das Video tatsächlich mit einem so rohen Bitstream ansehen. Aber in den meisten Fällen ist das einfach nicht genug oder nicht praktikabel.

Daher müssen Sie das Video in einen Container einwickeln. Dafür gibt es mehrere Gründe:

  • Vielleicht möchten Sie etwas Audio zusammen mit dem Video
  • Vielleicht möchten Sie zu einem bestimmten Teil des Videos springen (z. B. "Gehe zu 1: 32: 20.12").
  • Sowohl Audio als auch Video sollten perfekt synchronisiert sein
  • Das Video muss möglicherweise zuvor über ein zuverlässiges Netzwerk übertragen und in Pakete aufgeteilt werden
  • Das Video kann sogar über ein verlustbehaftetes Netzwerk (wie 3G) gesendet und zuvor in Pakete aufgeteilt werden

Aus all diesen Gründen wurden Containerformate erfunden, manche einfach, manche fortgeschrittener. Sie alle "wickeln" den Video-Bitstream in einen anderen Bitstream um.

Ein Container synchronisiert Video- und Audio-Frames gemäß ihrem Presentation Time Stamp (PTS), wodurch sichergestellt wird, dass sie genau zur gleichen Zeit angezeigt werden. Bei Bedarf müssen auch Informationen für Streaming-Server hinzugefügt werden, damit ein Streaming-Server weiß, wann welcher Teil der Datei gesendet werden muss.

Werfen wir einen Blick auf einige beliebte Container.


Beliebte Container

In den folgenden Containern finden Sie Videos, die größtenteils verpackt sind. Es gibt auch andere, weniger beliebte, aber wie ich bereits sagte, sind es meistens diese:

AVI

Audio Video Interleave - Dies ist der grundlegendste Container, der nur zum Interleaven von Audio und Video dient. Es wurde 1992 geschrieben und wird noch heute verwendet, gilt jedoch als Vermächtnis. Verwenden Sie es daher nicht mehr.

MP4

wird auch als MPEG-4 Part 14 bezeichnet und basiert auf dem QuickTime-Dateiformat. Dies ist das Zielformat für H.264-Videos, es umfasst jedoch auch HEVC, MPEG-4 Part 2 und MPEG-2.

Dieser Container kann auch nur Audio umschließen, weshalb Sie so viele .mp4-Dateien finden, bei denen es sich nicht um Videos, sondern um AAC-codiertes Audio handelt in .m4a-Dateien (nur eine andere Erweiterung). Die Erweiterung .m4v wird normalerweise für Video-Bitstreams verwendet.

MKV und WebM

Matroska Video (MKV) ist ein Open-Source- und freies Dateiformat, das heutzutage häufig verwendet wird, da es grundsätzlich jeden Codec von H.264 bis VP9 und natürlich auch viele Audio-Codecs unterstützt.

WebM basiert auf MKV und wird hauptsächlich für VP9-Video und Opus-Audio verwendet - es ist der bevorzugte Container für Web-Streaming-Video, wenn diese Codecs verwendet werden.

Ogg

Der Ogg-Container ist der Container der Wahl für den Theora-Video-Codec (und den Vorbis-Audio-Codec ), der ebenfalls von der Xiph.Org Foundation erstellt wurde. Es ist auch kostenlos und Open Source (genau wie der Codec).

FLV

Das Flash-Videoformat wurde von Adobe für die Verwendung in ihren Streaming-Anwendungen erstellt. Es wird nicht mehr so ​​oft verwendet, da sich die Art und Weise, wie Streaming durchgeführt wird, in den letzten Jahren erheblich verändert hat.


Beliebte Codecs und Formate

Welche der folgenden Codecs sind auch, welche sind Dateiformate und welche sind keine?

  • Quicktime MOV : . Mov ist die Dateierweiterung für das QuickTime-Dateiformat , ein von Apple erstellter Container . Dieser Container wurde später für MP4 angepasst. Es kann alle Arten von Codecs tragen. Quicktime ist eigentlich ein ganzes Media-Framework, es spezifiziert für mich keinen Codec selbst.
  • MPEG (1, 2, 3, 4) : Von der Motion Picture Experts Group definierte Standards. Siehe meinen Beitrag oben für Details.
  • WMV: Windows Media Video. Es ist eigentlich ein Codec , der in einen Advanced Systems Format Container eingebunden ist und den verwendet. Wieder die Erweiterung .wmv . Seltsam, aber so ist es.
  • FFmpeg : Dies ist weder ein Codec noch ein Container. Es ist eine Bibliothek von Videotools, die auch die Konvertierung zwischen verschiedenen Codecs und Containern ermöglichen. FFmpeg verwendet die Open-Source-Bibliotheken libavcodec und libavformat, um Codecs bzw. Container zu erstellen. Die meisten Videotools, die Sie heute finden, basieren darauf.
  • AVC: Synonym für MPEG-4 Part 10 oder H.264.
  • DivX : Eine andere Art von Encoder für MPEG-4 Teil 2-Video.
  • Xvid : Eine Art von Encoder für MPEG-4 Teil 2-Video. Es ist nur die kostenlose Open Source-Version von DivX, die natürlich zu einigen Kontroversen geführt hat.
  • H.264 : Synonym für MPEG-4 Part 10 oder AVC.

Als Randnotiz:

Verwende ich überhaupt die richtige Terminologie?

Ich denke mal, ich würde es vorziehen, "Codec" und "Container" anstelle von "Format" zu verwenden, um Missverständnisse zu vermeiden. Ein Format kann theoretisch alles sein, da beide Codecs und Container ein Format angeben (d. H. Wie Daten dargestellt werden sollen).

Abgesehen davon würde die FFmpeg Terminologie "Format" für den Container verwenden. Dies liegt auch an der Unterscheidung zwischen:

  • libavcodec, die Bibliothek zum Kodieren/Dekodieren
  • libavformat, die Bibliothek für die Container
142
slhck

Im Allgemeinen ist ein Medienformat ein Container, der einen Audiostream (eines Audio-Codecs) und einen Videostream (eines Video-Codecs) und manchmal zusätzliche Informationen enthält. Die meisten 'Dateien' haben einen Dateityp, der auf dem Container und nicht auf dem Codec basiert

FFmpeg ist weder ein Container noch ein Codec - es ist eine vielseitige Suite von Bibliotheken, Codecs und Software für die Konvertierung von Dateien, die vielen Konvertern und Musik-Playern zugrunde liegen.

H.264/AVC und xvid/divx sind Codecs

AVI (welche DivX/XVID-Dateien sind), MP4, MPEG sind Container.

Ich bin mir nicht sicher, ob es sich bei Quicktime Mov um einen Container handelt. Quicktime ist ein Codec.

3
Journeyman Geek

es gibt Codecs und Container (Dateiformate). Der Codec beschreibt, wie die Daten codiert/decodiert werden. Die andere beschreibt, wie die codierten Daten in der Datei platziert werden.

Die meisten Media Player unterstützen mehrere Codec- und Containertypen. Dies ist verwirrend, daher empfehle ich Ihnen, meine Referenzen zu lesen, um mehr Informationen zu erhalten

1
uSlackr