如何使用ffmpeg将output.mp3转换为mp4?

Ali*_*xxx 4 ffmpeg mp3

我使用此命令合并目录中的许多 mp3 文件:

ffmpeg -f concat -safe 0 -i <(for f in ./*.mp3; do echo "file '$PWD/$f'"; done) -c copy ./output.mp3
Run Code Online (Sandbox Code Playgroud)

现在我想将output.mp3 转换为mp4 格式。我希望我的电视接收器能够读取该 mp4。我能做些什么?

llo*_*gan 8

使用图像

ffmpeg -loop 1 -i input.jpg -i input.mp3 -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:-1:-1:color=black,setsar=1,format=yuv420p" -shortest -fflags +shortest output.mp4
Run Code Online (Sandbox Code Playgroud)

该命令使用scale + pad过滤器使图像适合1920x1080,使用setsar过滤器设置正常的样本长宽比,然后格式过滤器将色度子采样设置为YUV 4:2:0以实现播放兼容性。

有关更多信息和示例,请参阅使用 ffmpeg 调整视频大小以适应特定大小。

生成彩色背景

如果您想要纯色背景,请使用滤色器:

ffmpeg -f lavfi -i color=c=blue:s=1280x720 -i input.mp3 -shortest -fflags +shortest output.mp4
Run Code Online (Sandbox Code Playgroud)

添加文字

您可以使用drawtext过滤器添加文本:

ffmpeg -f lavfi -i color=c=blue:s=1280x720 -i input.mp3 -vf "drawtext=fontfile=/path/to/font.ttf:text='Your Text':fontcolor=white:fontsize=24:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2" -shortest -fflags +shortest output.mp4
Run Code Online (Sandbox Code Playgroud)

有关更多示例,请参阅使用 ffmpeg 的视频上的文本。

可视化(波形等)

请参阅如何将音频转换为视频(即在视频中显示波形)?


小智 5

在一些图像编辑器中制作一张黑色图像,将其另存为image.jpg并使用这个;

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:a copy -c:v libx264 -shortest output.mp4

(参见ffmpeg 维基