Qu’est-ce que 3GP ?
3GP est le conteneur multimédia que le 3GPP définit comme une instance du format ISO Base Media File Format (MPEG-4 partie 12), créé pour la messagerie et le streaming mobiles 3G. Un fichier 3GP peut contenir de la vidéo H.263, H.264 ou H.265, de l’audio de la famille AMR ou AAC, ainsi que du texte synchronisé.
Fonctionnement de 3GP
Un fichier 3GP stocke des pistes multimédias synchronisées dans la structure en boîtes du format ISO Base Media File Format, de la même famille que MP4. Sa boîte de type de fichier contient des marques de quatre caractères qui indiquent la version 3GPP et le profil auxquels le fichier est conforme, par exemple 3gp4 pour un fichier conforme à la version 4 ou 3gr6 pour un fichier à téléchargement progressif conforme à la version 6. La spécification actuelle enregistre la vidéo H.263, H.264 et H.265 ; l’audio AMR, AMR-WB, AMR-WB+, EVS, IVAS, Enhanced aacPlus et AAC ; ainsi que le texte synchronisé. La vidéo MPEG-4 partie 2 ne figure plus dans cette liste (l’historique des modifications consigne sa suppression dans la version 16), même si des fichiers plus anciens peuvent encore en contenir. Les exigences de décodage dépendent des codecs contenus dans le fichier, et non du conteneur : un système d’ingestion devrait donc analyser chaque piste avant de décider si un remultiplexage suffit ou si un transcodage est nécessaire.
Points clés
video/3gppne prouve pas la présence d’une piste vidéo : son enregistrement autorise son utilisation pour tout fichier 3GP, y compris les fichiers uniquement audio.audio/3gppest la désignation plus stricte, réservée aux fichiers sans contenu visuel, le texte synchronisé étant considéré comme visuel. Analysez les pistes avant d’orienter un fichier vers le traitement audio ou vidéo.- Aucun nombre magique n’est enregistré pour 3GP. Un fichier conforme commence par une boîte de type de fichier qui répertorie une marque 3GPP, telle que
3gp4ou3gp6, parmi ses marques compatibles, et les lecteurs doivent vérifier cette liste plutôt que se fier à la marque principale. FFmpeg affiche ces valeurs sous les nomsmajor_brandetcompatible_brandslorsqu’il ouvre un fichier. Un même fichier peut contenir des marques 3GP et MP4 : un suffixe.3gpou.mp4ne suffit donc pas à déterminer les règles qu’il suit. - 3G2 est l’équivalent 3GPP2, et non un autre nom de 3GP. Il possède ses propres enregistrements (
video/3gpp2etaudio/3gpp2, suffixe habituel.3g2), doit répertorier une marque 3GPP2 et peut contenir de la parole encodée avec le vocodeur 13K ou EVRC, que la spécification 3GP n’enregistre pas. La MP4 Registration Authority enregistre3g2acomme marque 3GPP2, et le multiplexeur 3G2 de FFmpeg 8.0 écrit3g2a, ou3g2blorsqu’une piste est en H.264. Les deux formats appartiennent à la famille de fichiers ISO : un même analyseur peut donc lire les deux (FFmpeg utilise un seul démultiplexeur pour les deux), mais les décodeurs nécessaires peuvent différer. - Lors d’une copie de flux d’un fichier 3GP vers MP4 avec FFmpeg, le multiplexeur MP4 accepte les pistes H.264, H.265, MPEG-4 partie 2 et AAC, mais ne dispose d’aucune balise d’entrée d’échantillon pour H.263, AMR ou AMR-WB et s’arrête avec l’erreur « codec not currently supported in container ». Ces pistes doivent être réencodées pour une sortie MP4. Cela concerne uniquement les codecs cités et décrit les tables des multiplexeurs de FFmpeg telles qu’elles ont été vérifiées dans la version 8.0, et non tous les outils de conditionnement. Une balise est nécessaire pour une copie, sans la garantir, et une piste copiée n’est pas pour autant lisible dans un navigateur.
Quand 3GP est utile
Conservez l’ingestion de fichiers 3GP pour les enregistrements issus de téléphones anciens et les archives de messagerie mobile ancienne. Pour la diffusion sur le Web, convertissez-les en MP4 avec de la vidéo H.264 et de l’audio AAC, que MDN répertorie comme pris en charge dans MP4 par Chrome, Edge, Firefox et Safari (Firefox s’appuie sur les décodeurs du système d’exploitation). Ne diffusez pas le fichier 3GP lui-même : l’index des formats de conteneurs de MDN ne cite que Firefox pour Android comme prenant en charge 3GP, et les guides des codecs de MDN indiquent qu’aucun grand navigateur n’a intégré le décodage H.263 et qu’AMR n’est pas pris en charge dans Chrome et Firefox. Copier une piste dans MP4 ne la rend pas non plus lisible : réencodez la vidéo MPEG-4 partie 2, que MDN indique comme non prise en charge dans Chrome, Edge, Opera et Safari, et vérifiez H.265 sur vos navigateurs cibles, car MDN lie sa prise en charge à la version du navigateur, au système d’exploitation et au matériel. Conservez aussi l’original, car l’AMR à bande étroite est un format audio de parole 8 kHz et son réencodage améliore la compatibilité, pas la fidélité.
Comment Transloadit vous aide avec 3GP
Le tableau des formats audio/vidéo de Transloadit, qui couvre les Robots fondés sur FFmpeg tels que /video/encode, répertorie 3gp et 3g2 comme formats que ces Robots peuvent écrire. Les deux lignes indiquent « Non » pour la lecture, car chacune correspond au multiplexeur FFmpeg de ce nom, et FFmpeg lit ces fichiers à l’aide d’un démultiplexeur distinct et partagé. Comme l’explique la documentation des formats FFmpeg, ce démultiplexeur unique gère toute la famille MOV, MP4 et 3GP, et FFmpeg le signale sous le nom combiné mov,mp4,m4a,3gp,3g2,mj2, qui comprend à la fois 3gp et 3g2, lorsqu’il ouvre un tel fichier.
Le tableau indique ce que chaque version de la pile FFmpeg peut lire et écrire, et non un résultat testé pour chaque codec contenu dans un fichier 3GP téléversé. Le comportement de copie de flux présenté dans les points clés a été vérifié dans le code source de FFmpeg 8.0, et non sur une pile Transloadit. Faites passer un fichier ancien représentatif dans votre Assembly avant de vous fier à ce traitement.
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression
Références
- ETSI TS 126 244 V19.1.0 (3GPP TS 26.244) : format de fichier 3GPP (3GP)
- RFC 3839 : enregistrements des types MIME pour les fichiers multimédias 3GPP
- RFC 4393 : enregistrements des types MIME pour les fichiers multimédias 3GPP2
- RFC 4867 : format de charge utile et de stockage de fichiers AMR et AMR-WB (fréquences d’échantillonnage des codecs)
- MP4 Registration Authority : marques enregistrées (codes des marques 3GPP et 3GPP2)
- Documentation des formats FFmpeg : démultiplexeur mov/mp4/3gp et multiplexeurs ISOBMFF
- FFmpeg 8.0 movenc.c, lignes 8749–8821 : tables des balises de codecs pour les multiplexeurs 3GP et MP4
- FFmpeg 8.0 movenc.c, lignes 5934–5973 : marques de type de fichier écrites par les multiplexeurs 3GP et 3G2
- Ticket FFmpeg #10864 : échec de la copie de flux AMR-NB vers MP4 et 3GP (signalé avec FFmpeg 4.4.4 et 6.1.1)
- MDN : formats de conteneurs multimédias (prise en charge de 3GP par les navigateurs ; codecs pris en charge dans MP4)
- MDN : guide des codecs vidéo pour le Web (prise en charge de H.263, MPEG-4 partie 2 et H.265 par les navigateurs)
- MDN : guide des codecs audio pour le Web (prise en charge d’AMR par les navigateurs)