Mp3
添加新的自定義元數據標籤
我知道如何更改標籤值,以及如何從元數據中提取文件的標籤值,是的,我們有很棒的工具,如id3tag、exiftool、ffmpeg等。
但我需要添加一個全新的標籤,而不是更改現有的標籤。
例如,假設我們有一個**.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 註釋。
參考: