[FFmpeg-devel] [PATCH] avformat/mov: parse 3gpp titl from media or track udta
Jan Ekström
jeebjp at gmail.com
Wed Jul 21 20:30:46 EEST 2021
On Wed, Jul 21, 2021 at 8:28 PM Jan Ekström <jeebjp at gmail.com> wrote:
>
> Seems to be:
> * Utilized by Handbrake for track titling
> * Actually defined as "title for the media"
>
> Definition from 3GPP TS 26.244 follows:
>
> Field Type Details Value
> BoxHeader.Size Unsigned int(32) BOX_SIZE
> BoxHeader.Type Unsigned int(32) 'titl'
> BoxHeader.Version Unsigned int(8) 0
> BoxHeader.Flags Bit(24) 0
> Pad Bit(1) 0
> Language Unsigned int(5)[3] Packed ISO-639-2/T language code
> Title String Text of title
>
> Semantics:
>
> Language: declares the language code for the following text. See
> ISO 639-2/T for the set of three character codes. Each character
> is packed as the difference between its ASCII value and 0x60.
>
> The code is confined to being three lower-case letters, so these
> values are strictly positive.
>
> Title: null-terminated string in either UTF-8 or UTF-16 characters,
> giving a title information. If UTF-16 is used, the string shall
> start with the BYTE ORDER MARK (0xFEFF).
> ---
A sample for this sort of metadata can be seen with
https://0x0.st/-zjq.m4v , which was posted at
https://github.com/mpv-player/mpv/issues/8488 .
The sample contains both "name" and "titl" boxes:
[udta: User Data Box]
position = 3991500
size = 71
[name]
position = 3991508
size = 28
[titl]
position = 3991536
size = 35
...out of which if I read QTFF documentation correctly "name" should
not be utilized for user-facing naming, and "titl" is actually a
user-facing metadata box. Thus I implemented the latter.
Jan
More information about the ffmpeg-devel
mailing list