Was ist eine DivX-Datei?

Eine DivX-Datei enthält Video, das mit einem DivX-Codec codiert wurde, häufig mit MPEG-4 Teil 2 oder einer späteren DivX-Variante. Der codierte Stream wird oft in einem AVI- oder MKV-Container gespeichert, statt in einem Container, der ausschließlich für DivX bestimmt ist.

So funktionieren DivX-Dateien

DivX ist eine Marke, die mehrere Codec-Generationen und Geräteprofile umfasst, keine einzelne Dateistruktur. DivX 3 basierte auf dem Codec MPEG-4 v3 von Microsoft, den Decoder als eigenständigen Codec getrennt vom Standard MPEG-4 Teil 2 behandeln. Der Encoder DivX 5 ist als Implementierung von MPEG-4 Teil 2 dokumentiert (Simple und Advanced Simple Profile). Laut DivX verwendeten die Versionen 3 bis 6 AVI als Container. DivX 6 führte das DivX Media Format ein, das die Dateiendung .divx verwendet und XSUB-Untertitel, Menüs, Kapitelmarken und alternative Audiospuren ergänzt. Spätere Generationen änderten beide Ebenen: DivX beschreibt DivX-Plus-Video als auf H.264 basierend und verwendet MKV für DivX-Plus- und DivX-HEVC-Video. Welchen Decoder eine Datei benötigt, ergibt sich daher aus ihrem Stream, während der Container Zeitinformationen und Spuranordnung liefert.

Wichtige Fakten

  1. Als DivX gekennzeichnete AVI-Dateien benötigen nicht alle denselben Decoder. FFmpeg ordnet die FourCCs DIVX und DX50 seinem Decoder für MPEG-4 Teil 2 zu. Dagegen ordnet es DIV3, DIV4, DIV5 und DIV6 dem Decoder msmpeg4v3 zu, der Variante MPEG-4 v3 von Microsoft, auf der DivX 3 basierte. Der FourCC ist nur eine Kennzeichnung im Stream-Header, und die Tabelle von FFmpeg enthält auch Einträge für fehlerhafte AVI-Dateien. Bestätigen Sie den Codec daher durch Decodieren einer Probe, statt nur die Kennzeichnung auszulesen.
  2. Das Kopieren eines DivX-Videostreams aus AVI ohne erneutes Encoding kann eine Datei erzeugen, die Standarddecoder ablehnen. FFmpeg dokumentiert gepackte B-Frames im DivX-Stil als nicht gültiges MPEG-4 und warnt vor Problemen beim Kopieren in MP4 oder MPEG-PS/TS. Sein Decoder für MPEG-4 protokolliert beim Auftreten solcher Frames eine Meldung und empfiehlt den Bitstream-Filter mpeg4_unpack_bframes „without encoding but stream copy“: Der Filter korrigiert den Stream während des Kopierens. Das dokumentierte Beispiel von FFmpeg kopiert dabei von einer AVI-Datei in eine andere. Ein erneutes Encoding benötigt den Filter nicht, weil der Decoder gepackte B-Frames selbst verarbeitet.
  3. Nicht jeder Stream aus der DivX-Ära lässt sich mit FFmpeg ohne erneutes Encoding in MP4 kopieren. Die Codec-Tag-Tabelle seines MP4-Muxers enthält Einträge für MPEG-4 Teil 2, H.264 und HEVC, jedoch keine für msmpeg4v3 oder XSUB-Untertitel. Fehlt ein Tag für den Codec eines Streams, bricht der Muxer mit einem Fehler ab. Video, das als msmpeg4v3 decodiert wird, muss daher erneut codiert werden, um in eine von FFmpeg geschriebene MP4-Datei zu gelangen. XSUB-Untertitel lassen sich nicht mitkopieren.
  4. Die Dateiendung identifiziert den Codec nicht und deutet den Container nur an, ohne ihn zu bestätigen. Laut DivX basieren Dateien mit der Endung .divx auf dem AVI-Container, und .mkv ist die Matroska-Endung. Die Profiltabelle führt .avi und .divx für Profile aus der Ära von MPEG-4 sowie .mkv, .avi und .divx für DivX Plus HD auf. Ein Filter für .divx übersieht daher DivX-Video, das als .avi oder .mkv gespeichert ist. Keine Dateiendung klärt abschließend, welcher Codec enthalten ist.
  5. Dass eine Datei per Software decodiert werden kann, bedeutet nicht, dass ein DivX-Certified-Gerät sie wiedergibt. Die Profiltabelle legt für jede Geräteklasse eigene Obergrenzen für Bildgröße, Bitrate, Anzahl der B-Frames und Quantisierungsmethode fest: Das Home-Theater-Profil nennt beispielsweise Quantisierung nach H.263 und einen B-Frame, während DivX HD 1080p zwei B-Frames und Quantisierung nach H.263, MPEG oder einem benutzerdefinierten Verfahren aufführt.

Wann DivX-Dateien relevant sind

Unterstützen Sie DivX, wenn Sie ältere Videosammlungen verarbeiten oder für neuere Wiedergabeumgebungen konvertieren. Ermitteln Sie sowohl Codec als auch Container, da die Dateiendung allein möglicherweise nicht erkennen lässt, welcher Decoder oder Demuxer benötigt wird.

So hilft Transloadit bei DivX-Dateien

Transloadits Videocodec-Referenz, die auf FFmpeg basierende Robots wie /video/encode abdeckt, führt mpeg4 (MPEG-4 Teil 2, mit Encodern wie mpeg4 und libxvid) sowie msmpeg4v3 als lesbar und schreibbar auf. Dies sind die beiden Codecs, denen FFmpeg die obigen FourCCs zuordnet.

Die Referenz führt Codecs auf. Sie deckt keine Funktionen des DivX Media Format wie Menüs oder XSUB-Untertitel ab. Testen Sie daher Dateien, die darauf angewiesen sind.

Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren