python - 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])
文件夹内的示例图像文件名是:
- 视频帧-00001.png
- 视频帧-00002.png
- 视频帧-00003.png
解决方案
我相信如果你想运行子进程,你有两个选择:
- 一行命令并使用不推荐的 shell=True。
- 或使用适当的列表。
尝试这个:
cmd = 'ffmpeg -i dir/video-frame-%06d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4'
subprocess.run(cmd.split())
推荐阅读
- azure-service-fabric - 如何使用 VMScaleSet 将 NodeTypes 添加到 ServiceFabric,并将特定配置(例如使用数据磁盘)添加到现有 Service Fabric 群集?
- asp.net-core - 如何更改 Visual Studio 2017 中调试的默认浏览器?
- python - 从 Python 中的函数访问类变量
- tween.js - 在循环范围 tween.js 的最短方向上补间
- laravel - Laravel:如何在没有 $hidden 属性的情况下建立关系?
- python - 创建 Keras 输入数组,numpy.append 无法正常工作
- node.js - nodejs服务器脚本未知结果
- ms-access - 如何阻止 MS 访问覆盖以前的记录?
- javascript - 当 css 绑定的属性为空时,KnockoutJS 与默认类绑定
- java - 使用 Spring 数据的多级一对多关系