Was ist ein Codec (z.B. DivX?), und wie unterscheidet es 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/Video-Format?
(Verwende ich überhaupt die richtige Terminologie?)

I. e.: Was ist der Unterschied zwischen sagen, etwas ist "MPEG-4" und etwas zu sagen mit dem "DivX" - codec? Warum führt Windows Media Player manchmal .mpg - Dateien aus und manchmal nicht?

Welche der folgenden sind Codecs, welche sind Dateiformate und welche nicht?

  • Quicktime MOV -
  • MPEG (1, 2, 3, 4)
  • }
  • FFmpeg
  • AVC
  • Xvid
  • DivX (wie unterscheidet es sich von seinem Palindrom, Xvid?)
  • H. 264
Author: user541686, 2011-06-23

4 answers

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 zu einem Container zusammengeführt werden.
  • Ein Container (z. B. MP4, MKV) ist dafür verantwortlich, sie zusammenzuhalten, und dies ist auch das, was Sie normalerweise in Ihrem Media Player Ihrer Wahl öffnen.
  • Ein bestimmter Encoder (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 ein paar Dinge erklären.

Was ist ein codec?

A codec ist die Abkürzung für Encoder / Decoder, was im Grunde nur Folgendes bedeutet: Daten, die von einem Encoder generiert werden, können immer von einem geeigneten Decoder decodiert werden. Dies gilt zufällig für Video, Audio, aber Sie können auch über Kryptographie nachdenken (ein Encoder benötigt einen geeigneten Decoder, um ein verschlüsseltes anzuzeigen Nachricht).

Wenn heutzutage ein Videocodec angegeben wird, geben die Institutionen, die daran teilnehmen, normalerweise 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-decoder, aber wie ein Encoder dann so geschrieben wird, dass er vollständig zu einem solchen Format passt, liegt bei den Herstellern.

Dies ist der Grund, warum Sie so viele Encoder finden werden für den gleichen Codec, und einige von ihnen sogar kommerziell.

Ein Fallbeispiel-H. 264

Bevor wir Terminologie verwechseln, nehmen wir ein Beispiel. Betrachten Sie den Fall für H. 264. Der Name des Standards 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, macht für einen Wettbewerb hier. Beide Encoder liefern einen standardisierten Bitstrom, der immer von einem H. 264-kompatiblen Decoder decodiert werden kann.

Zusammenfassend

Also, alles in allem, sagen wir einfach, dass ein Encoder:

  • nehmen Sie video-frames
  • erzeugt einen gültigen Bitstream

Der Bitstream wird dann in einen Container multiplext.

Der Decoder wird:

  • nimm diesen gültigen Bitstream
  • Rekonstruieren Sie die Videobilder aus es

Beide entsprechen einem codec-standard. Das ist alles!


Aktuelle Codecs

Heutzutage werden Sie wahrscheinlich nur Videos finden, die mit den Codecs codiert sind, die ich unten erwähnen werde. Interessanterweise wurden fast alle von der [[72]}Motion Picture Experts Group [[36]} (MPEG) erstellt. Es gibt aber auch einige andere, gebührenfreie Codecs, z. B. solche, die von Google oder der Alliance for Open Media erstellt wurden und Konkurrenten des MPEG sind Normen.

Beachten Sie, dass sich "MPEG" sowohl auf Codecs als auch auf Container beziehen kann, wie Sie unten sehen werden. Dies erhöht die Verwirrung, aber ich weiß nur, dass" MPEG "allein nichts bedeutet, zB" Ich habe eine Datei im MPEG-Format"ist sehr mehrdeutig".

MPEG-2

MPEG-2 ist ziemlich alt. Seine erste öffentliche Veröffentlichung ist von 1996. MPEG-2-Video wird hauptsächlich für DVDs und Fernsehsendungen verwendet, z. B. DVB-T oder Satellit, und ältere Anwendungen, bei denen Kompatibilität wichtig ist. MPEG-2-Videos werden meist in einem gefunden.- 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, aber inzwischen ersetzt wurde. Es bietet eine gute Qualität bei praktischen Dateigrößen, was bedeutete, dass Sie einen ganzen Film von 90 Minuten Länge auf eine 600 MB CD brennen konnten (während Sie mit MPEG-2 eine DVD benötigt hätten, siehe meine Antwort hier). Es funktioniert nicht so gut für HD - oder 4K-Inhalte mehr.

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

MPEG-4 Part 2 Videos kommen meist in einem AVI Container, aber MP4 wird auch oft gesehen.

MPEG-4 Teil 10 / AVC / H. 264

Dies ist auch bekannt als MPEG-4 Advanced Video Coding (AVC) oder H. 264; es ist der am häufigsten verwendete codec heute. Es bietet gute qualität bei kleinen Dateigrößen und eignet sich daher perfekt für alle Arten von Videos für das Internet oder mobile Geräte. Sie finden H. 264 in fast allen modernen Anwendungen, von Telefonen bis zu Camcordern. Auf Blu-ray-Disks wird 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 Container.

HEVC / H. 265

Auch MPEG-H Teil 2 genannt, ist dies der Nachfolger von MPEG-4 Teil 10 / AVC / H. 264. Es zielt auf höhere Auflösungen ab (bis zu 8K) und kann im Vergleich zu H. 264 eine bis zu 50% höhere Codierungsleistung (in Bezug auf Qualität vs. Bitrate) bieten (siehe zum Beispiel dieses Papier).

Der Standard wurde 2013 veröffentlicht, und langsam wird der Codec immer mehr verwendet, z. B. für IPTV-oder Online-Videoübertragungen. HEVC wird auch von Apple verwendet, um speichern Sie Videos und Bilder (mit HEIF) auf iOS. Die Tatsache, dass mit HEVC mehrere Patentpools verbunden sind, führt jedoch dazu, dass viele Unternehmen (fast alle außer Apple) auf gebührenfreie Alternativen umsteigen. HEVC wird auch nicht nativ von allen Browsern unterstützt, was es für Web-Streaming unbrauchbar macht.

Der bekannteste Encoder ist x265. Es gibt auch NVENC. Die Videos kommen in der Regel in MP4 Container.

VP9-und AV1

VP9 (der Nachfolger von VP8) ist ein codec, der hauptsächlich von Google entwickelt. Es ist offen und gebührenfrei und in vielen Browsern implementiert. Seine Qualität ist fast so gut wie HEVC, und manchmal sogar noch besser (siehe dieses Papier von Netflix). VP9 ist das, was Sie erhalten, wenn Sie YouTube in einem Browser ansehen, der es unterstützt.

VP9 kann mit dem Kodierer libvpx codiert werden und wird häufig in WebM oder MKV Behälter.

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

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


Was ist ein format (container)?

Bis jetzt haben wir nur den rohen "Bitstream" erklärt, der im Grunde nur wirklich rohe Videodaten ist. Sie könnten das Video tatsächlich mit einem solchen rohen Bitstream ansehen. Aber in den meisten Fällen ist das einfach nicht genug oder nicht praktisch.

Daher müssen Sie das Video in einen Container wickeln. Es gibt mehrere Gründe, warum:

  • Vielleicht möchten Sie etwas Audio zusammen mit dem Video
  • Vielleicht möchten Sie springe zu einem bestimmten Teil im Video (wie "gehe zu 1:32:20.12")
  • Sowohl Audio als auch Video sollten perfekt synchronisiert sein
  • Das Video muss möglicherweise über ein zuverlässiges Netzwerk übertragen und in Pakete aufgeteilt werden, bevor
  • Das Video könnte sogar über ein verlustbehaftetes Netzwerk (wie 3G) gesendet und in Pakete aufgeteilt werden, bevor

Aus all diesen Gründen wurden Containerformate erfunden, einige einfach, einige fortgeschrittener. Was sie alle tun, ist, den Video-Bitstream in einen anderen zu" wickeln - bitstream.

Ein Container synchronisiert Video-und Audio-Frames entsprechend ihrem Präsentationszeitstempel (PTS), wodurch sichergestellt wird, dass sie genau zur gleichen Zeit angezeigt werden. Es würde auch darauf achten, bei Bedarf Informationen für Streaming-Server hinzuzufügen, damit ein Streaming-Server weiß, wann welcher Teil der Datei gesendet werden soll.

Schauen wir uns einige beliebte Container an.


Beliebte Container

Hier finden Sie Videos meist verpackt in die folgenden Container. Es gibt auch andere weniger beliebte, aber wie gesagt, meistens sind es diese:

AVI

Audio Video Interleave-dies ist die grundlegendste Container, es ist nur da, um Audio und Video interleave. Es wurde 1992 geschrieben und wird heute noch verwendet, gilt aber als Vermächtnis, also benutze es nicht mehr.

MP4 -

Wird auch als MPEG-4 Part 14 bezeichnet und basiert auf dem QuickTime-Dateiformat. Dies ist das Go-to-Format für H. 264-Video, aber es wickelt auch HEVC, MPEG-4 Part 2 und MPEG-2.

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

MKV - und WebM

Matroska Video (MKV) ist ein Open Source und kostenloses Dateiformat, das heutzutage häufig zu finden ist unterstützt grundsätzlich jeden Codec, 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 Container der Wahl für Web-Streaming-Videos, wenn diese Codecs verwendet werden.

Ogg -

Der Ogg-Container ist der Container der Wahl für den Theora-Videocodec (und den Vorbis Audio-Codec ), der ebenfalls vom Xiph.Org Stiftung. Es ist auch kostenlos und Open Source (genau wie die 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 geändert hat.


Beliebte Codecs und Formate

Welche der folgenden sind Codecs, welche sind Dateiformate und welche nicht?

  • Quicktime MOV: .mov ist die Datei erweiterung für das QuickTime-Dateiformat, bei dem es sich um einen von Apple erstellten Container handelt. Dieser Container wurde später für MP4 angepasst. Es kann alle Arten von Codecs tragen. Quicktime ist eigentlich ein ganzes Medien-Framework, es gibt keinen Codec selbst an, soweit es mich betrifft.
  • MPEG (1, 2, 3, 4): Standards definiert, die von der Motion Picture Experts Group. Siehe meinen Beitrag oben für Details.
  • WMV: Windows Media Video. Es ist eigentlich ein Codec, der in einen Advanced Systems Format Container gewickelt ist, der den verwendet.wmv Erweiterung erneut. Seltsam, aber so ist es eben.
  • FFmpeg : Dies ist weder ein Codec noch ein Container. Es ist eine Bibliothek von Video-Tools, die auch die Konvertierung zwischen verschiedenen Codecs und Containern ermöglichen. FFmpeg stützt sich auf die Open-Source-Bibliotheken libavcodec und libavformat zum Erstellen von Codecs bzw. Die meisten Video-Tools, die Sie heute finden, basieren auf es.
  • AVC: Synonym für MPEG-4 Part 10 oder H. 264.
  • DivX: eine Andere Art von encoder für MPEG-4 Part 2-video.
  • Xvid: Eine Art von encoder für MPEG-4 Part 2-video. Es ist nur die Open-Source, kostenlose Version von DivX, die natürlich zu einigen Kontroversen geführt.
  • H. 264: Synonym für MPEG-4 Part 10 oder AVC.

Nebenbei bemerkt:

Verwende ich überhaupt die richtige Terminologie?

I guess once würde es vorziehen, speziell "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 (dh wie Daten dargestellt werden sollen).

Davon abgesehen würde die Terminologie FFmpeg darin bestehen, "format" für den Container zu verwenden. Dies liegt auch an der Unterscheidung zwischen:

  • libavcodec, die Bibliothek zum Codieren/Decodieren
  • libavformat, die Bibliothek für die Container
 159
Author: slhck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-08-17 18:59:15

Im Allgemeinen ist ein Medienformat wirklich ein Container, der einen Audiostream (eines Audiocodecs) und einen Videostream (eines Videocodecs) und manchmal zusätzliche Informationen enthält. die meisten 'Dateien', die Sie haben, haben einen Dateityp basierend auf Container und nicht Codec

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 liegt.

H. 264 / AVC und xvid/divx sind codecs

AVI (die divx / xvid-Dateien sind), mp4, mpeg sind Container.

Ich bin nicht sicher, über quicktime-mov - .mov ist ein Container, Quicktime ist ein Codec.

 3
Author: Journeyman Geek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-06-23 02:18:03

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

Die meisten Media Player unterstützen mehrere Codec-und Containertypen. Das ist verwirrend, also schlage ich vor, Sie lesen meine Referenzen für weitere informstion

 1
Author: uSlackr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-06-23 02:20:13

Ein Format ist der Name eines bestimmten Dateiformattyps und Komprimierungstyps (das meiste Video wird komprimiert, um die Größe niedrig zu halten), und der Codec kann es tatsächlich komprimieren, lesen und in das Video übersetzen, das Sie sehen, indem Sie es dekomprimieren. Mit anderen Worten, einer ist ein Dateityp, der andere jedoch eine Software.

Wir beziehen uns normalerweise auf die meisten Videos mit dem Formatnamen, daher sind Quicktime MOV, MPEG und WMV Formate.

FFmpeg (ich hatte noch nie davon gehört) scheint zu sein der name einer software zum konvertieren verschiedener Formate in andere Formate.

AVC und H. 264 sind die gleichen, und sind ein format für encoding HD video.

DivX ist ein kommerziell verkaufter Codec.

Xvid ist ein codec für MPEG-4.

 -1
Author: KCotreau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-06-23 02:27:24