Was ist 3GP?

3GP ist der Multimedia-Container, den 3GPP als Ausprägung des ISO Base Media File Format (MPEG-4 Teil 12) definiert und für mobiles Messaging und Streaming über 3G entwickelt hat. Eine 3GP-Datei kann Video in H.263, H.264 oder H.265, Audio aus der AMR-Familie oder in AAC sowie zeitgesteuerten Text enthalten.

So funktioniert 3GP

Eine 3GP-Datei speichert zeitbezogene Medienspuren in der Box-Struktur des ISO Base Media File Format und gehört damit zur selben Familie wie MP4. Ihre Dateityp-Box enthält Brand-Kennungen aus vier Zeichen, die das 3GPP-Release und das Profil angeben, denen die Datei entspricht, etwa 3gp4 für eine Datei nach Release 4 oder 3gr6 für eine Datei zum progressiven Download nach Release 6. Die aktuelle Spezifikation registriert Video in H.263, H.264 und H.265; Audio in AMR, AMR-WB, AMR-WB+, EVS, IVAS, Enhanced aacPlus und AAC; sowie zeitgesteuerten Text. Video in MPEG-4 Teil 2 steht nicht mehr auf dieser Liste (der Änderungsverlauf dokumentiert die Entfernung in Release 16), kann aber weiterhin in älteren Dateien enthalten sein. Die Anforderungen beim Decodieren ergeben sich aus den enthaltenen Codecs, nicht aus dem Container. Ein Importsystem sollte daher jede Spur analysieren, bevor es entscheidet, ob Remuxing ausreicht oder Transkodierung erforderlich ist.

Wichtige Fakten

  1. video/3gpp belegt nicht, dass eine Videospur vorhanden ist: Laut Registrierung gilt diese Kennzeichnung für jede 3GP-Datei, auch für reine Audiodateien. audio/3gpp ist die strengere Kennzeichnung, die Dateien ohne visuelles Material vorbehalten ist. Zeitgesteuerter Text zählt dabei als visuell. Analysieren Sie die Spuren, bevor Sie eine Datei als Audio oder Video weiterleiten.
  2. Für 3GP ist keine magische Zahl registriert. Eine konforme Datei beginnt mit einer Dateityp-Box, die unter ihren kompatiblen Brand-Kennungen eine 3GPP-Kennung wie 3gp4 oder 3gp6 aufführt. Leseprogrammen wird vorgegeben, diese Liste zu prüfen, statt sich auf die Hauptkennung zu verlassen. FFmpeg gibt diese Werte beim Öffnen einer Datei als major_brand und compatible_brands aus. Eine Datei kann sowohl 3GP- als auch MP4-Kennungen enthalten. Die Endung .3gp oder .mp4 allein klärt daher nicht, welchen Regeln sie folgt.
  3. 3G2 ist das 3GPP2-Gegenstück, kein Alias für 3GP. Es hat eigene Registrierungen (video/3gpp2 und audio/3gpp2, übliche Endung .3g2), muss eine 3GPP2-Brand-Kennung aufführen und darf Sprache enthalten, die mit dem Vocoder 13K oder mit EVRC codiert wurde. Die 3GP-Spezifikation registriert diese nicht. Die MP4 Registration Authority registriert 3g2a als 3GPP2-Brand-Kennung. Der 3G2-Muxer von FFmpeg 8.0 schreibt 3g2a oder bei einer Spur in H.264 die Kennung 3g2b. Beide gehören zur ISO-Dateifamilie, sodass ein Parser beide lesen kann (FFmpeg verwendet für beide denselben Demuxer). Die erforderlichen Decoder können sich jedoch unterscheiden.
  4. Beim Kopieren der Streams einer 3GP-Datei in MP4 mit FFmpeg akzeptiert der MP4-Muxer Spuren in H.264, H.265, MPEG-4 Teil 2 und AAC. Für H.263, AMR oder AMR-WB hat er jedoch kein Sample-Entry-Tag und bricht mit der Fehlermeldung „codec not currently supported in container“ ab. Diese Spuren müssen für die MP4-Ausgabe neu codiert werden. Dies gilt nur für die genannten Codecs und beschreibt die Muxer-Tabellen von FFmpeg, wie sie in Release 8.0 geprüft wurden, nicht jedes Packaging-Tool. Ein Tag ist für das Kopieren erforderlich, garantiert es aber nicht. Eine kopierte Spur ist dadurch auch nicht automatisch im Browser abspielbar.

Wann 3GP relevant ist

Behalten Sie den 3GP-Import für Aufnahmen älterer Mobiltelefone und Archive älterer mobiler Nachrichten bei. Konvertieren Sie für die Auslieferung im Web in MP4 mit Video in H.264 und Audio in AAC. MDN führt diese Kombination in MP4 als unterstützt in Chrome, Edge, Firefox und Safari auf (Firefox nutzt die Decoder des Betriebssystems). Liefern Sie die 3GP-Datei selbst nicht aus: Der Containerformat-Index von MDN nennt nur Firefox für Android als Browser mit 3GP-Unterstützung. Die Codec-Leitfäden von MDN berichten, dass kein großer Browser jemals einen Decoder für H.263 ausgeliefert hat, und kennzeichnen AMR in Chrome und Firefox als nicht unterstützt. Auch das Kopieren einer Spur in MP4 macht sie nicht abspielbar: Codieren Sie Video in MPEG-4 Teil 2 neu, das MDN in Chrome, Edge, Opera und Safari als nicht unterstützt aufführt, und prüfen Sie H.265 für Ihre Zielbrowser, da MDN dessen Unterstützung an Browserversion, Betriebssystem und Hardware knüpft. Bewahren Sie auch das Original auf, denn AMR-Schmalbandaudio ist Sprachaudio mit 8 kHz, und erneutes Codieren verbessert die Kompatibilität, nicht die Wiedergabetreue.

So hilft Transloadit bei 3GP

Transloadits Tabelle der Audio- und Videoformate, die FFmpeg-basierte Robots wie /video/encode abdeckt, führt 3gp und 3g2 als Formate auf, die diese Robots schreiben können. In beiden Zeilen steht unter „Lesen“ der Wert „Nein“, weil jede Zeile den gleichnamigen FFmpeg-Muxer beschreibt und FFmpeg diese Dateien über einen separaten, gemeinsamen Demuxer liest. Wie die FFmpeg-Formatdokumentation beschreibt, verarbeitet dieser eine Demuxer die gesamte MOV-, MP4- und 3GP-Familie. Beim Öffnen einer solchen Datei meldet FFmpeg ihn unter dem kombinierten Namen mov,mp4,m4a,3gp,3g2,mj2, der sowohl 3gp als auch 3g2 umfasst.

Die Tabelle zeigt, was jede FFmpeg-Stack-Version lesen und schreiben kann, kein getestetes Ergebnis für jeden Codec in einem 3GP-Upload. Das in den wichtigsten Fakten beschriebene Verhalten beim Kopieren von Streams wurde im Quellcode von FFmpeg 8.0 geprüft, nicht auf einem Transloadit-Stack. Lassen Sie eine repräsentative ältere Datei durch Ihre Assembly laufen, bevor Sie sich darauf verlassen.

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