我的输入是多个 FLAC 和 OGG 文件。
我想将它们全部转换为 mp3。 (脚本进行批量转换,ffmpeg 命令只需要处理一个输入文件)。
我还想保留标签(歌曲艺术家、轨道名称、专辑名称……)。
我当前执行此操作的命令是:
ffmpeg -vn -n -i $INFILE -c:a libmp3lame -q:a 1 -ar 44100 -map_metadata 0:s:0 -id3v2_version 3 $OUTFILE.mp3
现在的问题是:当输入文件是 OGG 文件时它可以工作。但如果输入是 FLAC 文件,它就不起作用。
我还找到了 FLAC 输入文件的命令:
ffmpeg -vn -n -i $INFILE -c:a libmp3lame -q:a 1 -ar 44100 $OUTFILE.mp3
(这是相同的,但没有 map_metadata 选项。所以 FLAC 标签在没有该选项的情况下被复制。但没有它们,它不适用于 OGG 输入文件。并且使用选项它不适用于 FLAC 输入文件。
如何在不需要不同命令的情况下处理两种输入格式并保留两者的标签?
最佳答案
利用
ffmpeg -n -i $INFILE -c:a libmp3lame -q:a 1 -ar 44100 -map_metadata 0 -map_metadata 0:s:0 -id3v2_version 3 -vn $OUTFILE.mp3
这既映射了全局元数据,也映射了流元数据。
-vn
属于输出。
关于audio - 如何转换音频并跟踪所有格式的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52354427/