使用 FFmpeg 批量转换视频:结合图像和音频

使用 FFmpeg 批量转换视频:结合图像和音频

我有一个文件夹,里面全是音频文件,扩展名为 .mp3 .amr 和 .wav。我有一个 image.jpg。我想要将 image.jpg 与该文件夹中的每个音频文件合并,然后将它们转换为单独的 vidoe.mp4 文件。如何使用 FFmpge 执行此操作?

答案1

以下回答了另外两个问题,它们应该可以帮助您实现目标。

“使用FFmpeg将一张图片+一个音频文件合并成一个视频”来源:使用 FFmpeg 将一张图片 + 一个音频文件组合成一个视频

命令行中选项的顺序很重要。以下适用于我的情况:

ffmpeg -loop 1 -shortest -y -i image8.jpg -i sound11.amr -acodec copy -vcodec mjpeg result.avi

在更一般的情况下,其中image.jpgaudio.wav是您的输入,您可以使用以下命令,改编自FFmpeg 维基

ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -tune stillimage -c:a aac -strict experimental -b:a 192k -pix_fmt yuv420p -shortest out.mp4

这将使用libx264编码器,为您提供比上面使用的 MJPEG 编解码器更好的压缩。音频是 AAC,带有内置ffmpegAAC 编码器。


“如何在 Windows 命令行中执行 for 循环?”来源:https://stackoverflow.com/questions/11192039/how-to-do-a-for-loop-in-windows-command-line

命令行解释器确实有一个 FOR 结构,您可以从命令提示符或批处理文件中使用它。

为了您的目的,您可能需要类似以下内容的内容:

FOR %i IN (*.ext) DO my-function %i

这将导致当前目录中每个扩展名为 *.ext 的文件的名称被传递给 my-function(例如,可以是另一个 .bat 文件)。

(*.ext) 部分是“文件规范”,可以非常灵活地指定文件集。例如,您可以执行以下操作:

FOR %i IN (C:\Some\Other\Dir\*.ext) DO my-function %i

在不同的目录中执行操作。

对于文件规范和 FOR 来说,有很多选项。请参阅

HELP FOR

从命令提示符获取更多信息。

好的,感谢唐老鸭发来的一条消息,现在内容已经包含在帖子本身中了:D

相关内容