首页 > 解决方案 > ffmpeg 使用 python 子进程设置文件名模式

问题描述

在命令行上运行时,我使用以下代码:

ffmpeg -i video-frame-%06d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4

但是我试图在 python 脚本中运行它,并且我没有收到这样的文件或目录错误 ,我认为是因为图像文件名数字的格式类型-%06d

如何连接或使用在命令行中运行的相同文件模式以在我的 python 脚本中使用它

subprocess.Popen(['ffmpeg -i dir/video-frame-%06d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4', shell=True])

文件夹内的示例图像文件名是:

  1. 视频帧-00001.png
  2. 视频帧-00002.png
  3. 视频帧-00003.png

标签: pythonregexffmpegsubprocess

解决方案


我相信如果你想运行子进程,你有两个选择:

  • 一行命令并使用不推荐的 shell=True。
  • 或使用适当的列表。

尝试这个:

cmd = 'ffmpeg -i dir/video-frame-%06d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4'
subprocess.run(cmd.split())

推荐阅读