尝试保存动画会产生错误:OSError:将动画保存到文件时出错(原因:[Errno 22]无效的参数)

时间:2019-10-18 08:53:09

标签: python matplotlib animation ffmpeg

我正在尝试保存动画,但出现错误:

OSError:将动画保存到文件时出错(原因:[Errno 22]无效的参数)Stdout:b''StdError:b''。将日志记录级别设置为DEBUG可能有助于重新运行。

我已经安装了ffmpeg,并且还在我的代码中添加了路径。如果我添加print(animation.writers.list()),它也会在列表中显示'ffmpeg',因此我确定我的计算机可以找到正确的文件。

在我的代码顶部,我有:

import matplotlib.pyplot as plt
plt.rcParams['animation.ffmpeg_path'] = 'C:/FFmpeg/bin/ffmpeg.exe'

保存动画时,我有:

SubplotAnimation_1 = SubplotAnimation(F_vector, eta_atm, Pkid, Tb_sky)
Writer = animation.FFMpegWriter(fps=20, metadata=dict(artist='Me'), extra_args=['--verbose-debug'])
file_string = r'C:/Users/Esmee/Documents/Animations/animation_tryout.mp4'
print(file_string)
SubplotAnimation_1.save(file_string, writer=Writer)

我已经在字符串前面添加了r,所以file_string中的/a没有问题。文件夹C:/ Users / Esmee / Documents / Animations /确实存在,因此也不应该成为问题。 我也尝试过

Writer = animation.writers['ffmpeg']
mywriter = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)

但是它也不起作用。

我看过animation save gets errrorHow can I overcome this key word errorNo Moviewriters available,但是它们都不为我的问题提供解决方案。

有人知道这个问题可能是什么吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

最后,下面的代码起作用了:

Writer = animation.FFMpegWriter(fps=20, metadata=dict(artist='Me'))
file_string = r'C:/Users/Esmee/Documents/Animations/animation_tryout.mp4'
SubplotAnimation_1.save(file_string, writer=Writer)

我认为extra_args=['--verbose-debug']命令中的参数animation.FFMpegWriter(是我从另一个解决方案中得到的)导致程序崩溃。我没有在程序顶部的import语句中进行任何更改。

我希望这篇文章可以帮助任何有类似问题的人!