python - 子进程未创建 ffmpeg 命令的输出文件
问题描述
我正在尝试运行一个 ffmpeg 命令来记录我的屏幕并在 python 中创建一个记录的 .mp4 文件。该命令在我的 shell 中运行时有效,但在我使用子进程在 Python 脚本中运行时无效。
问题是使用子进程运行它时,不会创建 output.mp4 文件。
这是命令:
timeout 10 ffmpeg -video_size 1920x1080 -framerate 60 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i pulse -acodec aac -strict experimental output.mp4
这是python代码:
os.chdir('/home/user/Desktop/myProject/')
subprocess.run('timeout 5 ffmpeg -video_size 1920x1080 -framerate 60 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i pulse -acodec aac -strict experimental out.mp4')
是否需要添加额外的配置以便子进程可以写入输出文件?
解决方案
timeout
您可以使用此处-t
发布的选项来代替使用。
添加-t 00:00:05
参数,并删除timeout
:
subprocess.run('ffmpeg -video_size 1920x1080 -framerate 60 -f x11grab -i :0.0+0,0 -f alsa -ac 2 -i pulse -acodec aac -strict experimental -t 00:00:05 out.mp4')
timeout
我认为使用命令参数比使用终止进程更优雅。
推荐阅读
- node.js - Discord.js v12.0.1 频道未定义
- hadoop - HUE 在创建/删除表执行后清除表名过滤器
- typescript - 如何在 TypeScript 中获取函数应用程序的类型?
- terraform - 使用 Terraform 设置 Istio,而不是使用 Helm
- r - 使用 dfm 进行结构模型
- java - JAX-WS 拦截运行时异常以进行日志记录
- excel - 如何使用 VBA 在工作表中查找匹配的标题?
- google-cloud-platform - 更新或删除数据流谷歌云中的输出目录
- android - findNavController().navigate(direction) 不适用于 Interstitial.setAdListener 的 Override 方法,但它适用于点击侦听器 (Android)
- javascript - 未捕获的类型错误:无法读取未定义的属性“文件”