使用 ffmpeg 将图像和音频文件合并制作视频的最快方法

使用 ffmpeg 将图像和音频文件合并制作视频的最快方法

我正在使用 ffmpeg 将图像和音频组合起来,用我的 Python 程序中的这个命令制作视频

process = subprocess.Popen('ffmpeg -loop 1 -i "{picture}" -i "{audio}" -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest "{out_path}"'.format(picture=picture, audio=audio, out_path=out_path), stdout=subprocess.PIPE, shell=False)

但是在我的 PC(配置 1GB Ram 和英特尔氙气处理器)上,这花费了非常长的时间,几乎 30-45 分钟。有没有什么方法可以使这个过程更快,我准备牺牲一些质量(不错)。

答案1

ffmpeg -loop 1 -framerate 1 -i image.png -i audio.m4a -map 0 -map 1:a -c:v libx264 -preset ultrafast -tune stillimage -vf fps=10,format=yuv420p -c:a copy -shortest output.mp4
  • 图像输入的默认帧速率为 25。您可以使用低得多的输入帧速率和正常的输出帧速率。复制帧的成本很低,因此速度更快。

  • 使用更快x264 编码预设

  • 如果输入音频格式与输出格式兼容,则流复制( -c:a copy) 音频,而不是重新编码。否则,用于-c:a aacMP4 输出。

  • 如果输出 MP4,请考虑添加该-movflags +faststart选项。它可以允许视频更快地开始播放以供观众观看。

相关内容