【发布时间】:2021-05-10 12:59:34
【问题描述】:
我正在尝试运行一个 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与失败示例中的不同;如果命令花费的时间超过 5 秒但不到 10 秒,这就是解释。 -
在您的示例中,
ffmpeg完全负责编写输出文件。您可以轻松地将stdout参数添加到subprocess以写入您选择的文件句柄,但这不是问题所在。
标签: python ffmpeg subprocess