批量将 MP3 转换为 MP4

下面介绍两种使用 ffmpeg 将一批 MP3 文件转换为 MP4 文件的简单方法。第一种方法使用一张静态图片作为视频轨。第二种方法会自动创建一个纯色视频轨。

方案 1:使用静态图片

将一张名为 image.png 的图片放在 MP3 文件所在的同一目录中,然后运行:

for mp3File in *.mp3; do
  outputFile="${mp3File%.mp3}"
  ffmpeg -loop 1 -i image.png -i "$mp3File" 
    -c:v libx264 -c:a copy -shortest 
    "$outputFile.mp4"
done

这会为每个 MP3 文件创建一个对应的 MP4 文件。音频会被直接复制而不重新编码,image.png 会作为整个时长内的静止视频画面。

如果你的文件可能使用 .MP3 或大小写混合的扩展名,请先调整 glob 匹配模式,或先统一文件名。

方案 2:生成纯色视频

如果不需要封面图片,ffmpeg 可以生成一个简单的视频流:

mkdir -p out

for f in *.mp3; do
  ffmpeg -f lavfi -i color=s=160x120:r=2 -i "$f" 
    -c:v libx264 -preset ultrafast -c:a copy -shortest 
    "out/${f%.mp3}.mp4"
done

这会把转换后的文件写入 out/ 目录。生成的视频是一个 160x120、每秒 2 帧的彩色画面;当视频轨只是为了把音频封装进 MP4 容器时,这已经足够。

检查结果

要确认输出文件同时包含音频流和视频流,请运行:

ffprobe "output.mp4"

output.mp4 替换为生成的任意一个文件。你应该能看到来自原始 MP3 的音频流,以及由上面某条命令创建的视频流。

Leave a Reply