[FFmpeg-user] how to display metadata?

sean darcy seandarcy2 at gmail.com
Sun Mar 27 20:32:19 CEST 2011


On 03/25/2011 03:21 PM, Pushkar Pradhan wrote:
> On Fri, Mar 25, 2011 at 12:04 PM, Pushkar Pradhan<pradhan.pushkar at gmail.com
>> wrote:
>
>>
>>
>> On Fri, Mar 25, 2011 at 11:43 AM, sean darcy<seandarcy2 at gmail.com>  wrote:
>>
>>> On 03/25/2011 02:37 PM, sean darcy wrote:
>>>
>>>> On 03/25/2011 11:27 AM, James Darnley wrote:
>>>>
>>>>> On 25/03/2011, sean darcy<seandarcy2 at gmail.com>  wrote:
>>>>>
>>>>>> I've prepared a speech:
>>>>>>
>>>>>> ffmpeg -i "speech_1.wav" -metadata track="1" -metadata title="My
>>>>>> Speech"
>>>>>> -acodec aac -ab 128000 -strict experimental speech_1.aac
>>>>>>
>>>>>> which seems to work fine, the track and title show on the console
>>>>>> output.
>>>>>>
>>>>>> But:
>>>>>>
>>>>>> ffmpeg -i speech.aac
>>>>>> Input #0, aac, from 'speech_1.aac':
>>>>>> Duration: 00:01:44.95, bitrate: 128 kb/s
>>>>>> Stream #0.0: Audio: aac, 44100 Hz, stereo, s16, 128 kb/s
>>>>>>
>>>>>
>>>>> That suggests the output format doesn't actually support metadata
>>>>>
>>>>
>>>> Huh? aac doesn't support metadata?
>>>>
>>>> It certainly looks like it does:
>>>>
>>>> ffmpeg -i "Track 1.wav" -metadata track=1 -metadata title="Test Track"
>>>> -acodec aac -ab 128000 -strict experimental Track_1.aac
>>>> ...............
>>>> Input #0, wav, from 'Track 1.wav':
>>>> Duration: 00:02:01.88, bitrate: 1411 kb/s
>>>> Stream #0.0: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
>>>> Output #0, adts, to 'Track_1.aac':
>>>> Metadata:
>>>> title : Test Track
>>>> track : 1
>>>> encoder : Lavf52.73.0
>>>> Stream #0.0: Audio: aac, 44100 Hz, 2 channels, s16, 128 kb/s
>>>> .......
>>>>
>>>> But:
>>>>
>>>> ffprobe Track_1.aac
>>>> Input #0, aac, from 'Track_1.aac':
>>>> Duration: 00:01:44.95, bitrate: 128 kb/s
>>>> Stream #0.0: Audio: aac, 44100 Hz, stereo, s16, 128 kb/s
>>>>
>>>>
>>>> So I guess the question is whether the aac encoder is creating the
>>>> metadata, or is ffprobe not reading it?
>>>>
>>>> And shouldn't EasyTag be able to read it if the metadata were there?
>>>>
>>>> sean
>>>>
>>>
>>> Well, it seems the aac encoder just isn't writing the metadata:
>>>
>>> ffmpeg -i "Track 1.wav" -metadata track=1 -metadata title="Test Track"
>>> -acodec libmp3lame -ab 128000  Track_1.mp3
>>> .........
>>>
>>> ffprobe Track_1.mp3
>>> Input #0, mp3, from 'Track_1.mp3':
>>>   Metadata:
>>>     TIT2            : Test Track
>>>     TRCK            : 1
>>>     TSSE            : Lavf52.73.0
>>>   Duration: 00:02:01.91, start: 0.000000, bitrate: 127 kb/s
>>>     Stream #0.0: Audio: mp3, 44100 Hz, 2 channels, s16, 128 kb/s
>>>
>>>
>>> sean
>>>
>>>
>>> _______________________________________________
>>> ffmpeg-user mailing list
>>> ffmpeg-user at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>>
>>
>> MP3 definitely supports metadata in the form of ID3 Tags.
>> When I looked at the ADTS container format I didn't see a way to add
>> metadata: http://wiki.multimedia.cx/index.php?title=ADTS
>> Unless it can be prepended to the AAC samples itself?
>>
>> To verify if the metadata is being injected in the AAC stream you can use a
>> hex editor and search for your string.
>>
>> --
>> pushkar
>>
>> You can probably even use grep (or findstr in windows) to verify the
> metadata is inserted in the stream
>
>

For anyone else looking create metadata for an .aac (aka m4a and m4b) 
stream, I did it using neroAacTag which is free, but not open source, on 
the Nero web site.

sean



More information about the ffmpeg-user mailing list