[英]How to make icecast relay the metadata of mp3 stream from ffmpeg?
[英]How to stop ffmpeg from manipulating mp3 metadata?
我正在使用 ffmpeg 來更改我的 mp3 文件的比特率。 它運作良好,但有一件事非常令人沮喪。
ffmpeg 會自動更改一些元數據字段。 具體來說,它將 ID3v2.3 轉換為 ID3v2.4,但它做錯了。 例如,它寫入了TYER
中實際不存在的 TYER 字段。 但最令人沮喪的是,它將USLT
字段轉換為lyrics-LANGCODE
(如lyrics-eng
)。 大多數音樂播放器不識別此標簽!
我不希望 ffmpeg 弄亂元數據字段。 我只是想讓它改變比特率。 有沒有告訴 ffmpeg 它不應該觸及任何元數據字段?
我在 Windows 64 位上運行 ffmpeg 4.0.2。 選項是:
ffmpeg -i input.mp3 -codec:a libmp3lame -b:a 128k output.mp3
不, -id3v2_version 3
沒有幫助。 它糾正了TYER
問題,但不是歌詞問題。
我無法用ffmpeg
解決歌詞問題,但能夠將歌詞從LYRICS-ENG
元數據字段復制到USLT
字段。
我使用Mp3tag工具批量復制數據。
它具有用於批處理操作的操作功能。
我做了什么:
我在 ffmpeg 和這個問題的第一個答案之間混合使用:由於下面的 cmd 循環,我首先轉換了一個完整的文件文件夾(在這種情況下將 .flac 文件轉換為 .mp3)。 現在我正在改變我整個 iTunes 資料庫的比特率,以減少它的位置,而 ffmpeg 確實改變了歌詞的標簽。 但是使用 mp3tag 並創建此操作允許我將它們切換回 iTunes 知道的標簽。 這是一種非常快速的方法,我找了很長時間!
FOR /F "tokens=*" %G IN ('dir /b *.flac') DO ffmpeg -i "%G" -ab 320k -acodec mp3 "3%~nG.mp3"
我很確定我已經找到了解決歌詞問題的方法...
$ ffmpeg -i input.mp3 ... -metadata "lyrics-eng=" -metadata "unsyncedlyrics=eng||{lyrics}" output.mp3
-metadata "lyrics-eng="
防止設置不正確的元數據,而-metadata "unsyncedlyrics=eng||{lyrics}"
設置正確的元數據,希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.