MPEG-4 Definitionsproblem

  • Ich beschäftige mich schon lange Zeit mit dem allgemeinen Thema, die letzten paar Tage sogar sehr intensiv. Aber eines ist mir noch immer nicht ganz klar:
    WAS ist MPEG-4 und was ist MPEG-4 NICHT?

    Also MPEG-4 ist der dritte Standard der MPEG-Gruppe - nach MPEG-1 und -2. --> MPEG-4 ist ein Standard für Videos.
    Zitat Wiki: "MPEG-4 besteht neben den bekannten Audio- [14496-3] und Video-Codecs [14496-2] auch noch aus den Teilen: [...]" - MPEG-4 besteht also auch aus Audio- & Video-Codecs? Wie soll ich das verstehen?

    Noch dazu wurde mir gerade erst vor kurzem erklärt, um ein Video in das MPEG-1 oder MPEG-2 Format zu konvertieren, ist ein "Encoder" notwendig, und kein Codec. Wenn das bei MPEG-4 auch der Fall ist, dann widerspricht sich das ganze ja irgendwie.

    Weiterhin stellt MPEG-4 auch ein Containerformat dar. In diesem Containerformat können Audio- & Videoströme gespeichert werden, falls ich das richtig verstanden habe.
    Oder gibt es doch mehrere Container-Formate, wie zB. mp4, m4a, m4v, aac (laut Wiki).

    Entweder ich bin zu dumm für diese (MPEG-)Welt, oder es gibt einfach zu viele unvollständige, widersprüchliche Informationen zu diesem Thema....

    Auf einen Retter hoffend, der mir dieses Informations-Wirrwarr entwirren kann, verbleibe ich nun.
    Eldarion

  • thx, ich werds mal versuchen :)

    edit
    OK, das hilft mir schon mal viel weiter, sehr guter Guide!

    Aber eine Frage ist jetzt gerade aufgetaucht: Ist DVD-Video ein eigenes Containerformat? Das wäre ja eigentlich MPEG-2, meines Wissens nach. (Wikipedia hat diese Behauptung in die Welt gesetzt... ich seh schon, ich sollte mich wohl nicht so viel auf diese Seite verlassen)

  • Ich versuche mal deine mpeg-4 Welt mit ein paar Sätzen zurechtzurücken:

    MPEG-4 ist ein Standard (von der MPEG). Darin sind verschiedene Codecs enthalten (audio und video). (Überblick(en))

    bergH hatte mit "codec" die VfW-Codecs gemeint, die ins System eingebunden werden. Mit "encoder" meinte er Programme, die in ein bestimmtes encoden.

    Mit Codec werden aber auch allgemein Implementierungen dieser Art gemeint.

    Beim DivX-Codec wird zum Beispiel ein Encoder und ein Decoder installiert (VfW).

    Beispiel x264:
    Das ist eine Implementierung des MPEG-4-AVC-Standards. Es gibt da eine VfW-Version und eine CLI-Version (eine EXE).
    Beide Versionen können nur encoden, es fehlt also das "dec" von "codec", trotzdem spricht man vom x264-Codec.

    Da momentan die CLI-Tools auf dem Vormarsch sind (mein Eindruck) tritt hier also eine Verwaschung des ursprünglichen Begriffs "Codec" ein.

    Verwirrt genug?

    MPEG-4 als Kontainer zu bezeichnen ist falsch, das Teil heißt "MP4" (obwohl das wohl für MPEG-4-Kontainer stehen soll). Das eine ist ein Standard, das andere ein Kontainer. Keine Ahnung ob der auch im Standard definiert ist.

    Und ja, es gibt jede Menge unvollständige, unverständliche Informationen zum Thema MPEG-4 und jetzt gibt es eine mehr. :)

    Um in MPEG-1/2 zu encoden gibt es keine (ich kenne keine) VfW-Codecs. Dazu braucht man ein Programm, das das kann.

    Hm. Um das nochmals zu verdeutlichen: XviD, DivX, x264 sind Implementierungen eines Teils des MPEG-4-Standards.

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • Huiii, das ist ja viel Information auf einem Haufen...
    Ich quäle mich neben dem englischen doom9-Forum auch noch durch diese Seite:
    http://www.chiariglione.org/mpeg/standards/mpeg-4/mpeg-4.htm

    Sehr interessant muss ich sagen. ;D

    Und ich glaube, schön langsam wird mir die MPEG-4-Welt immer klarer, auch durch eure Posts.

    Aber jetzt eine andere Frage: x.264 ist ein AVC-Codec. MPEG-4 ist unterteilt in mehrere (genau genommen 16) Parts. In diesen Parts geht es immer um einen bestimmten Bereich, für den Standards festgelegt wurden, zB. Audio, Video, etc....
    AVC ist einer dieser Parts (genau genommen der 10te) und bedeutet Advanced Video Coding. AVC ist unterteilt in Profiles, die für verschiedene Anwendungsgebiete geeignet sind (zB. welche für Streaming, für DVD-Backups, also welche für gorße bzw. kleine Dateien...).
    Darunter gibt es auch das Advance Simple Profile (ASP).
    XviD, DivX und 3ivx gehören genau HIER HIN (zum ASP).
    Stimmt das alles? Wenn ja, dann hab ich es glaub ich verstanden :D

  • Zitat von Eldarion


    [...]
    AVC ist einer dieser Parts (genau genommen der 10te) und bedeutet Advanced Video Coding. AVC ist unterteilt in Profiles, die für verschiedene Anwendungsgebiete geeignet sind (zB. welche für Streaming, für DVD-Backups, also welche für gorße bzw. kleine Dateien...).

    Bis hierhin stimmt's fast. Zu den Profilen schreib ich unten was.

    Zitat von Eldarion

    Darunter gibt es auch das Advance Simple Profile (ASP).
    XviD, DivX und 3ivx gehören genau HIER HIN (zum ASP).

    ASP ist kein Profil von AVC (MPEG-4 part 10) sonder MPEG-4 part 2 und hat ebenfalls Profile.

    In den Profilen ist definiert, welche Techniken benutzt werden dürfen. Zum Beispiel kann man mit einem Decoder (egal ob Software oder Hardware), der das main profile von AVC decoden kann keine Videodateien abspielen, die Funktionen enthalten, die nur im high profile aber nicht im main profile erlaubt sind (z.B. 8x8 intra prediction).

    Je höher das Profil, desto höher auch die Rechenleistung, die zum En-/Decoden benötigt wird.

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • Zitat von nexustheoriginal

    ASP ist kein Profil von AVC (MPEG-4 part 10) sonder MPEG-4 part 2 und hat ebenfalls Profile.

    Ich wage es, dir zu widersprechen... :)

    http://www.chiariglione.org/mpeg/mpeg_general.htm - ungefähr Mitte der Seite: "The full list of MPEG-4 parts is: [...] Part 2: Visual" - laut dieser Seite hat Part 2 eine andere Bezeichnung.

    http://www.chiariglione.org/mpeg/standards…/mpeg-4.htm#5.1 - Kapitel 5.1, nr. 16 - Advanced Simple Profiile

    Oder meinst du, dass ASP ein Profil von Part 2 ist und wiederum Unterprofile hat?

  • Darfst du. :)

    Hast auch recht. ASP ist ein profile von part 2 und das was du "Unterprofile" nennst heißt "levels".


    Hier ist eine Übersicht über die Profile von part 2, das vorletzte in der Tabelle ist ASP.

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • OK, dann ist ja jetzt alles klar :)
    Und ich kenne mich endlich aus *freu*

    Herzlichen Dank auch!

    edit:
    Ok, neue Frage (damit euch hier nicht langweilig wird... :zunge: ):
    DivX und XviD sind Codecs, die MPEG-4 Datenstrom erstellen. AVI ist ein Containerformat, dass alle möglichen Streams speichern kann, so zum Beispiel auch MPEG-4 Formate.

    Aber wenn DivX und XviD MPEG-4-Videos erstellen, kann man die dann nicht auch als mpeg (bzw. genauer .mp4) abspeichern?

  • Zitat von Eldarion

    Aber eine Frage ist jetzt gerade aufgetaucht: Ist DVD-Video ein eigenes Containerformat?

    DVD-Video ist sogar mehr: genau gesagt alles. Die DVD-Video-Spezifikation legt vom Videocodec über den Container bis hin zur Dateistruktur und den Eigenschaften des physischen Mediums (der DVD) alles fest. Der eigentliche auf der DVD verwendete Container schimpft sich VOB.

    Zitat von Eldarion

    Aber wenn DivX und XviD MPEG-4-Videos erstellen, kann man die dann nicht auch als mpeg (bzw. genauer .mp4) abspeichern?

    Kann man, wenn man xvid_encraw verwendet: Rohdatenstrom erzeugen und mit MP4Box in eine MP4 muxen. Beim XviD-VfW-Encoder (die übliche VDub-Methode) gilt das gleiche wie für DivX.

    DivX hat leider nur einen VfW-Encoder, muss also zuerst in eine AVI gepackt werden. Und da MPEG-4 mit B-Frames nur auf eine Weise in AVI gespeichert werden kann, die den MPEG-4-Standard verletzt, muss dieser verbogene Strom erst einmal wieder geradegerückt werden. Da MP4Box das kann, ist auch DivX in MP4 einfach: Nach AVI encodieren und die AVI mit MP4Box in eine MP4 re-muxen.

    Der nicht AVI/VfW-verhuntzte standardkonforme MPEG-4-Stream wird üblicherweise als "native MPEG-4" bezeichnet.

    Für x264 gibt es auch eine VfW-Version, die verbogene AVI-Streams erzeugt und einen Kommandozeilenencoder, der auch native kann. Ob MP4Box die verbogenen AVI-AVC-Streams auch geraderücken kann, weiß ich gerade nicht.

    Und um dem ganzen noch die Krone aufzusetzen: Der Matroska-Container erlaubt sogar beides: verbogene und native Streams.

    Brother John
    ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
    DVD nach MPEG-4 klappt nicht? Verzweifelt? Auf zum Encodingwissen!

  • Zitat von Brother John

    Ob MP4Box die verbogenen AVI-AVC-Streams auch geraderücken kann, weiß ich gerade nicht.

    Das geht. Erst x264 als raw aus der avi extrahieren, dann in mp4 muxen, beides mit der mp4box.

    Gruß

    akapuma

    Wer weiß, wovon er redet, kann es sich leisten, sich verständlich auszudrücken.
    Besucht auch meine Homepage: http://akapuma.info

  • Also kurz gesagt: DivX bzw. XviD in eine MPEG-Container speichern ist zwar möglich, aber eher kompliziert und wird daher (fast) nie angewendet. Sollte so stimmen, oder?

    Also dann noch einmal herzlichen Dank an alle, die mir geholfen haben!:daumen:

  • Und weil es mit MKV den besseren Kontainer gibt. SCNR

    Eldarion: Was meinst du mit "MPEG-Container"? MP4 oder MPG?

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • Zitat von Selur

    "Und weil es mit MKV den besseren Kontainer gibt. SCNR"
    Ansichtssache ;)

    Stimm. In der SA-Welt wird der wohl nicht unterstützt werden. Aber ich lebe zum Glück in einer anderen Welt. :cool:

    "Diejenigen, die grundlegende Freiheiten aufgeben würden, um geringe vorübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit."
    Benjamin Franklin (1706-1790)

    Meine Erfahrungen in der Open Source-Welt: blog.bugie.de

  • Zitat von nexustheoriginal

    Eldarion: Was meinst du mit "MPEG-Container"? MP4 oder MPG?

    In diesem Fall MP4 - soviel ich weiß ist MPG kein MPEG-4-Container sondern einer für MPEG-1 bzw. 2, da DivX oder XviD hinein zu speichern würde ja sowieso nicht klappen.

  • Am besten ist es, den MP4-Container auch MP4 zu nennen, nicht irgendwie anders. Die Begriffsverwirrung ist auch so schon groß genug. In der Dateiendung MPG habe ich tatsächlich noch nichts anderes als MPEG-1/2 gesehen.

    Also ich kann mit dem Gespann aus Matroska und MP4 als AVI-Ersatz bestens leben (brrrrr, AVI! ;)). Zuerst war ich MP4 gegenüber ja äußerst skeptisch, weil alles noch sehr kompliziert und Baustelle war. Seit MeGUI und MP4Box hat sich das Thema allerdings dermaßen rasant entwickelt, dass MP4 heute auch nicht unbequemer zu verwenden ist als Matroska. Stellt sich dann nur die Frage: Wer braucht noch OGM?

    Brother John
    ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
    DVD nach MPEG-4 klappt nicht? Verzweifelt? Auf zum Encodingwissen!

  • Ok, dann ist ja alles klar :)

    Aber was haben bloß alle gegen AVI? OK, der Container ist inzwischen schon etwas in die Jahre gekommen, und kommt von M$, aber gibt es auch Nachteile, die man im täglichen Leben zu spüren bekommt?
    Und OGM hab ich sowieso noch nie gesehen und verwendet - wird wahrscheinlich auch in Zukunft so bleiben, denke ich.. :hm:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!