如何在 ffmpeg 中添加 .mp3 和图像

如何在 ffmpeg 中添加 .mp3 和图像

所以我尝试合并 .mp3 和图像并添加文本,然后使用 ffmpeg 将其转换为 .mp4,这个命令是什么。

我试过:ffmpeg -i audio.mp3 -i background.jpg -filter_complex "[0:v][1:v]overlay=10:10,drawtext=text='Hello World'" -c:a copy -movflags +faststart output.mp4

但它给了我这个错误:Stream specifier ':v' in filtergraph description [0:v][1:v]overlay=10:10,drawtext=text='Hello World' matches no streams.

此外我该如何改变文本的字体?

答案1

无需使用叠加。只需将图像用作绘图文本过滤器

ffmpeg -i audio.mp3 -loop 1 -framerate 10 -i background.jpg -filter_complex "[1:v]drawtext=text='Hello World':fontfile=/path/to/your/font.ttf:fontsize=24:fontcolor=white:x=10:y=10,format=yuv420p[v]" -map "[v]" -map 0:a -c:a copy -movflags +faststart -shortest output.mp4

其他变化:

  • 图像必须循环播放,因此-loop 1添加了输入选项。由于图像会无限循环播放,因此-shortest还添加了输出选项,这样音频停止时文件也会停止播放。
  • 已添加-framerate 10设置图像帧速率的功能。默认值为 25。使用低于 10 的 fps 可能会给某些播放器带来问题。
  • 使用选项选择字体fontfile
  • 如何定位 drawtext 文本作为xy位置的示例。
  • 添加了格式过滤器以设置 yuv420p 像素格式以实现兼容性。
  • 考虑更改-c:a copy-c:a aac以实现兼容性。

答案2

我不熟悉 ffmpeg,但我认为您应该按照以下顺序执行此操作:

  1. 将 mp3 转换为 mp4
  2. 添加图片
  3. 添加文字

Mp3 是一种音频格式,这就是为什么我认为您不能添加文本(因此它看起来像视频)。当然,您可以编辑 ID3 标签。

相关内容