Mp3

添加新的自定義元數據標籤

  • September 6, 2016

我知道如何更改標籤值,以及如何從元數據中提取文件的標籤值,是的,我們有很棒的工具,如id3tagexiftoolffmpeg等。

但我需要添加一個全新的標籤,而不是更改現有的標籤。

例如,假設我們有一個**.mp3**文件,它的元數據有 4 個標籤:

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

我需要的是添加一個名為 Audio Bitrate 的新標籤(第五個標籤)。是否可以?如果是的話,應該怎麼做?

提前致謝

TL;DR您不能定義自己的 ID3Tag,您必須使用規範中定義的 ID3Tag 。由於未定義*音頻比特率的標籤,因此您不走運。*這對其他音頻容器(使用不同標籤/評論系統的容器)來說不是問題。

您的主要問題是 ID3 標籤是固定規範。UserDefinedText你能得到的最好的就是在標籤裡面寫。讓我們用 來試試這個ffmpeg,讓我們用我覺得很有趣的巴西國歌(而且它是無版權的)作為例子:

$ 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)

好的,我們已經有一些標籤了。ffmpeg時間:

$ 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)

為了與更靈活的格式進行比較(您實際上應該使用一些編碼器參數來獲得不錯的音頻,但我們對音頻不感興趣):

$ 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)

現在標記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)

我們有標籤。這是因為 Vorbis 註釋可以是任何東西,這與 ID3Tags 不同,ID3Tags 只有一些允許的值(標籤名稱)。

您不需要ffmpeg使用 Vorbis 註釋。 vorbiscomment使用起來要簡單得多,例如:

$ 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)

額外說明:FLAC 也使用 vorbis 註釋。

參考:

引用自:https://unix.stackexchange.com/questions/307963