下面介绍两种使用 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 的音频流,以及由上面某条命令创建的视频流。
