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?)
Dh: 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
video
codec
file-format
video-codecs
Mehrdad
quelle
quelle
Antworten:
Einige Hauptdefinitionen:
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 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", "Das
0x810429AAB
Hier wird in das übersetzt" usw. Oft liefern sie einen Referenzcodierer und -decodierer, aber wie ein Codierer dann geschrieben wird, um einem solchen zu entsprechen Format komplett ist Sache der Hersteller.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, während 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:
Der Bitstrom wird dann in einen Container gemultiplext.
Der Decoder wird:
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 aber auch einige andere gebührenfreie Codecs, z. B. die von Google oder der Alliance for Open Media erstellten, die den MPEG-Standards Konkurrenz machen.
Beachten Sie, dass "MPEG" sowohl auf Codecs als auch auf Container verweisen kann, wie Sie unten sehen werden. Dies trägt zur Verwirrung bei, weiß aber nur, dass "MPEG" allein nichts bedeutet, z. B. "Ich habe eine Datei im MPEG-Format" ist sehr mehrdeutig ".
MPEG-2
MPEG-2 ist ziemlich alt. Die erste Veröffentlichung ist im Jahr 1996. MPEG-2-Video wird hauptsächlich für DVDs und Fernsehsendungen, z. B. DVB-T oder Satellit, sowie für Legacy-Anwendungen verwendet, bei denen Kompatibilität wichtig ist. MPEG-2-Videos befinden sich meist in einem MPG- Container.
MPEG-4 Teil 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 von 90 Minuten Länge auf eine 600-MB-CD brennen können (während Sie mit MPEG-2 eine DVD benötigt hätten, siehe meine Antwort hier ). Es funktioniert nicht mehr so gut für HD- oder 4K-Inhalte.
Einige Encoder, die MPEG-4 Part 2-Videos ausgeben, sind DivX , das Open-Source-Ripoff XviD und Nero Digital .
MPEG-4 Part 2-Videos werden meist in einem AVI- Container geliefert , MP4 wird jedoch 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
Auch als MPEG-H Part 2 bezeichnet, ist dies der Nachfolger von MPEG-4 Part 10 / AVC / H.264. Es zielt auf höhere Auflösungen (bis zu 8 KB ) ab und bietet im Vergleich zu H.264 eine um bis zu 50% höhere Codierungsleistung (in Bezug auf Qualität und Bitrate) (siehe z. B. dieses Dokument ).
Der Standard wurde 2013 veröffentlicht, und langsam wird der Codec immer häufiger verwendet, z. B. für IPTV- oder Online-Videoübertragungen. HEVC wird von Apple auch zum Speichern von Videos und Bildern (mit HEIF ) unter iOS verwendet. 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 werden normalerweise in MP4- Containern geliefert .
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 Papier 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:
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 meistens 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 aber 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 gängige Format für H.264-Videos, es werden jedoch auch HEVC, MPEG-4 Part 2 und MPEG-2 eingeschlossen.
Dieser Container kann auch nur Audio umschließen, weshalb Sie so viele .mp4-Dateien finden, die keine Videos, sondern AAC-codiertes Audio sind, auch 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 unterstützt, von H.264 bis VP9, und natürlich auch viele Audio-Codecs.
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 Behälter der Wahl für den Theora - Video - Codec (und der Vorbis Audio- Codec ), die auch von der Xiph.Org Stiftung erstellt. 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
libavcodec
undlibavformat
Bibliotheken zum Erstellen von Codecs bzw. Containern. Die meisten Videotools, die Sie heute finden, basieren darauf.Als Randnotiz:
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 sowohl Codecs als auch Container ein Format angeben (dh 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 / Dekodierenlibavformat
, die Bibliothek für die Containerquelle
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.
quelle
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
quelle
Ein Format ist der Name eines bestimmten Dateiformats und Komprimierungstyps (das meiste Video wird komprimiert, um die Größe gering zu halten), und der Codec ist das, was es tatsächlich komprimieren, lesen und in das Video übersetzen kann, das Sie sehen, indem Sie es dekomprimieren . Mit anderen Worten, einer ist ein Dateityp, der andere ist eine Software.
Wir bezeichnen die meisten Videos normalerweise mit dem Formatnamen, daher sind Quicktime MOV, MPEG und WMV Formate.
FFmpeg (ich hatte noch nie davon gehört) scheint der Name einer Software zu sein, mit der verschiedene Formate in andere Formate konvertiert werden können.
AVC und H.264 sind identisch und ein Format zum Codieren von HD-Videos.
DivX ist ein im Handel erhältlicher Codec.
Xvid ist ein Codec für MPEG-4.
quelle