Adicione uma nova tag de metadados personalizada

3

Eu sei como alterar um valor de tag e como extrair valores de tag de um arquivo de seus metadados, e sim, temos ótimas ferramentas como id3tag , exiftool , ffmpeg e etc.

Mas preciso adicionar uma tag completamente nova, não alterar uma existente.

Por exemplo, considere uma situação em que temos um arquivo .mp3 e ele tem 4 tags para seus metadados:

1. Artist
2. Album
3. Genre
4. File Size

O que eu preciso é adicionar uma nova tag (quinta tag) chamada Audio Bitrate. É possível? Se sim, como deve ser feito?

Obrigado antecipadamente

    
por Parsa Samet 05.09.2016 / 14:03

1 resposta

3

TL; DR Você não pode definir seus próprios ID3Tags, você deve nos os definidos na especificação . Como uma tag para Taxa de bits de áudio não está definida, você está sem sorte. Isso não é um problema com outros recipientes de áudio (aqueles que usam um sistema diferente de tag / comentário).

Seu maior problema é que as tags ID3 são uma especificação fixa. O melhor que você pode obter é escrever dentro da tag UserDefinedText . Vamos tentar isso usando ffmpeg , vamos usar o hino do Brasil que eu acho bastante divertido (e é livre de direitos autorais) como um exemplo:

$ wget -O brazil.mp3 http://www.noiseaddicts.com/samples_1w72b820/4170.mp3
$ exiftool -s brazil.mp3
...
Emphasis                        : None
ID3Size                         : 4224
Title                           : 2rack28
Artist                          : 
Album                           : 
Year                            : 
Comment                         : 
Genre                           : Other
Duration                        : 0:01:10 (approx)

OK, já temos algumas tags lá. ffmpeg time:

$ ffmpeg -i brazil.mp3 -c:a copy -metadata Artist=Someone -metadata MyOwnTag=123 brazil-tags.mp3
$ exiftool -s brazil-tags.mp3 
ExifToolVersion                 : 10.20
...
Emphasis                        : None
ID3Size                         : 235
Title                           : 2rack28
Artist                          : Someone
UserDefinedText                 : (MyOwnTag) 123
EncoderSettings                 : Lavf57.41.100
Album                           : 
Year                            : 
Comment                         : 
Genre                           : Other
Duration                        : 0:01:11 (approx)

Para fazer uma comparação com um formato mais flexível (você deve usar alguns parâmetros de codificador para obter um áudio decente, mas não estamos interessados em áudio):

$ ffmpeg -i brazil.mp3 brazil.ogg
$ exiftool -s brazil.ogg
...
Vendor                          : Lavf57.41.100
Encoder                         : Lavc57.48.101 libvorbis
Title                           : 2rack28
Duration                        : 0:00:56 (approx)

E agora marcando com ffmpeg :

$ ffmpeg -i brazil.ogg -c:a copy -metadata MyOwnTag=123 -metadata MyExtraThing=Yay brazil-tags.ogg
$ exiftool -s brazil-tags.ogg 
...
Vendor                          : Lavf57.41.100
Encoder                         : Lavc57.48.101 libvorbis
Title                           : 2rack28
Myowntag                        : 123
Myextrathing                    : Yay
Duration                        : 0:00:56 (approx)

E nós temos as tags. Isso ocorre porque os Comentários do Vorbis podem ser qualquer coisa, ao contrário do ID3Tags, que possui apenas um número de valores permitidos (nomes de tags).

Você não precisa de ffmpeg para usar os Comentários do Vorbis. vorbiscomment é muito mais simples de usar, por exemplo:

$ vorbiscomment -a -t EvenMoreStuff=Stuff brazil-tags.ogg
$ exiftool -s brazil-tags.ogg 
...
Vendor                          : Lavf57.41.100
Encoder                         : Lavc57.48.101 libvorbis
Title                           : 2rack28
Myowntag                        : 123
Myextrathing                    : Yay
Evenmorestuff                   : Stuff
Duration                        : 0:00:56 (approx)

Nota extra: o FLAC também usa comentários do vorbis.

Referências:

por 06.09.2016 / 04:15