我试图用Tkinter建立一个GUI,其中一组图像被转换,通过按下一个按钮,到一个。mp4视频。
当我从命令行运行以下命令时,一切正常:
> "ffmpeg -r 5 -i ptimage%03d -crf 20 animation.mp4"
然而,在Python中,下面给出了一个错误,我认为这与在参数中传递%
有关:
commandString = "ffmpeg -r 5 -i ptimage%03d -crf 20 animation.mp4"
args = shlex.split(commandString)
p = subprocess.run(args)
我得到的错误是ptimage%03d: No such file or directory
。我有99%的把握从正确的目录运行命令;当我运行相同的命令将ptimage%03d
替换为ptimage000.jpg
(列表中的特定图像)时,我成功地获得了一个(非常短的)视频。
我试过用%
转义%
,但是没有用。
任何想法?
您忽略了文件扩展名。使用ptimage%03d.jpg
,而不是ptimage%03d
。对于ptimage%03d
, ffmpeg期望文件名为ptimage000
,ptimage001
等
ffmpeg -framerate 5 -i ptimage%03d.jpg -crf 20 animation.mp4
无关的注意事项:一些播放器(YouTube除外)无法处理如此低的帧,所以考虑添加-r 10
输出选项。与色度子采样相同:考虑添加-vf format=yuv420p
输出选项。