a beautiful teacher, pointing at the blackboard, telling some lesson about FFmpeg

方法1:使用FFmpeg命令

ffmpeg -i "concat:file1.mp3|file2.mp3|file3.mp3" -c copy output.mp3

其中file1.mp3等为要合并的文件名(按顺序,如有),|为多文件中间的分隔符,output.mp3为输出文件名,可自定义。

但此命令不接受中文等特殊字符的文件名,为解决此问题,可如下操作:

解决方法 1:改用 concat 文件模式

  1. 创建一个包含文件路径的文本文件(例如 filelist.txt):
    内容如下(每行以 file 开头,后接文件路径):

    1
    2
    file 'xy046 飞将军.MP3'
    file 'xy047 李广为什么.MP3'
  2. 执行以下命令:

    1
    ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp3
    • -f concat:指定使用文件列表模式。
    • -safe 0:忽略特殊字符或路径问题。

解决方法 2:使用引号处理中文文件名

直接在命令中用单引号或双引号包裹每个文件路径,例如:

1
ffmpeg -i "concat:file1.MP3|file2.MP3" -c copy output.mp3
  • 注意:管道符 | 是有效的连接符,但文件路径需用引号包裹,避免特殊字符引起错误。

解决方法 3:重命名文件

将文件名重命名为简单的英文和数字组合(避免中文和特殊字符),例如:

1
2
file1.mp3
file2.mp3

然后执行以下命令:

1
ffmpeg -i "concat:file1.mp3|file2.mp3" -c copy output.mp3

补充说明

  • 如果文件包含元数据,

    FFmpeg 在合并时可能会报错。此时需要重新编码:

    1
    ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec libmp3lame output.mp3

方法二:MP3 Joiner

专门的 MP3 文件合并工具,图形界面更适合不熟悉命令行的用户。

方法三:在线工具

一些在线工具(如 Online Audio Joiner)也可以快速合并 MP3 文件,但需要上传文件,适合小文件操作。