A 3GP file is an ISO base media file: the same boxes as MP4
(see its box structure), with the rules and
extra boxes of 3GPP TS 26.244. What makes a file 3GP is the ftyp box and its
brands. These pages follow TS 26.244 Release 19, read clause by clause, and the
MP4 Registration Authority brand list.
ftyp in a 3GP file
| Offset | Size | Name | Rule |
|---|---|---|---|
| 8 | 4 | major brand | The file’s best use; should match the file extension. For a .3gp file, one of the profile brands below. |
| 12 | 4 | minor version | For a brand 3gLZ (L a letter, Z a digit) the file conforms to version Z.x.y of the specification, and the minor version is x × 256 + y. |
| 16 | 4 × n | compatible brands | Every profile the file conforms to. A file that also meets earlier releases should list 3gp4 to 3gp8 as well; without 3gp4 a Release 4 reader will not open it. |
Readers should look through the compatible brands for one they know and not rely on the major brand. A typical file starts:
00 00 00 18 66 74 79 70 33 67 70 34 00 00 02 00 ....ftyp3gp4....
69 73 6F 6D 33 67 70 34 isom3gp4
That is major brand 3gp4, minor version 0x200 (version 4.2.0 under the rule
above), compatible with isom and 3gp4.
Release 9 profiles
| Brand | Profile | Constraints |
|---|---|---|
3gg9 | General | Fewest restrictions; may hold alternative tracks. A superset of the other profiles, for files that fit none of them. |
3gp9 | Basic | Self-contained (no external media); at most one video (or scene description), one audio and one text track; one sample entry per video and audio track; no references between tracks. |
3gs9 | Streaming server | Hint tracks for every media track, following 3GPP streaming; SDP for the session and media; streaming-server extensions (track selection) should be used. |
3gr9 | Progressive download | moov directly after ftyp; media tracks interleaved with a depth of one second or less. |
3ge9 | Extended presentation | Contains an extended presentation (TS 26.244 clause 11). |
3gt9 | Media stream recording | Recorded streams in RTP (or, protected, SRTP) reception hint tracks or media tracks, with RTCP or SRTCP hint tracks, key message tracks and SDP. |
3gf9 | File-delivery server | Uses file delivery hint tracks and the file delivery extensions of ISO/IEC 14496-12, for sending over FLUTE. |
3gh9 | Adaptive streaming | moov after ftyp (and any pdin), with no samples in it (stts, stsc, stco entry counts 0) and an mvex; then moof and mdat pairs, each moof with at least one track fragment, using default-base-is-moof addressing. |
3gm9 | Media segment | Labels segments of this release; the segment rules are in TS 26.247. |
All 3GPP and 3GPP2 brands
| Brand | Meaning |
|---|---|
3gp4 | Release 4 |
3gp5 | Release 5 |
3gp6 | Release 6 basic profile |
3gg6 | Release 6 general profile |
3gr6 | Release 6 progressive-download profile |
3gs6 | Release 6 streaming-server profile |
3ge6 | Release 6 extended-presentation profile |
3gp7 | Release 7 |
3ge7 | Release 7 extended-presentation profile |
3gp8 | Release 8 |
3gt8 | Release 8 media stream recording profile |
3gp9 | Release 9 basic profile |
3gg9 | Release 9 general profile |
3gr9 | Release 9 progressive-download profile |
3gs9 | Release 9 streaming-server profile |
3ge9 | Release 9 extended-presentation profile |
3gt9 | Release 9 media stream recording profile |
3gf9 | Release 9 file-delivery server profile |
3gh9 | Release 9 adaptive streaming profile |
3gm9 | Release 9 media segment profile |
3gmA | Media segment in the 3GP-DASH media segment format |
3gtv | TV over 3GPP services |
3gvr | 3GPP VR presentation |
3vra | 3GPP VR advanced video media profile |
3vrb | 3GPP VR basic video media profile |
3vrm | 3GPP VR main video media profile |
3g2a | 3GPP2 file (.3g2), defined by 3GPP2 C.S0050 |
The Release 9 profile brands are the ones TS 26.244 Release 9 and later define; later
releases keep these codes. 3GPP2’s .3g2 files follow 3GPP2’s own specification,
which is not covered here beyond its brand and its sample entries.
styp
A segment starts with a segment type box, styp, laid out like
ftyp. Its brands should include those of the ftyp before the
moov, and may add others such as 3gm9. A styp that is
not first in its file may be ignored, and may be dropped when segments are joined.