【发布时间】:2021-12-16 22:36:49
【问题描述】:
我有这个 ffmpeg 命令:
ffmpeg -y -i 6.mp4 -vf scale=1280:-2,setsar=1:1 -c:v libx264 -c:a copy 720p.mp4
我想通过 python 代码来实现它。为此,我使用了 subprocess 函数,并为此使用了以下代码:
subprocess.call(['ffmpeg.exe','-y','-i', pname1,'-vf','scale=','1280:-2','setsar=','1:1','-c:v', 'libx264', '-c:a', 'copy', pname2])
pname1 和pname2 是输入和输出文件的名称。这个程序运行没有任何错误,但它什么也没产生。你知道是什么问题吗?
【问题讨论】:
-
“运行没有任何错误”——你怎么知道的?如果您不打算存储和检查返回的对象,我还强烈建议您传递
check=True。此外,如果您不设置stdout=subprocess.PIPE和stderr=subprocess.PIPE,您将看不到从 Python 写入的输出,因此需要检查从 Python 进程本身继承的 stdout 和 stderr。 -
在尝试放入 Python 代码之前,您是否验证了您的 ffmpeg 命令是否有效?
标签: python python-3.x ffmpeg