【问题标题】:Using FFmpeg and IPython使用 FFmpeg 和 IPython
【发布时间】:2013-12-06 21:59:07
【问题描述】:

我对 Python 比较陌生(我使用 MATLAB 的次数更多)。我本质上希望能够制作和保存动画。所以我去检查了它是如何完成的,发现了这个: http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/

我直接将代码复制/粘贴到 IPython Notebook 中。

我知道必须安装 ffmpeg,我认为我已经安装了(根据http://www.wikihow.com/Install-FFmpeg-on-Windows)。路径是 C:/ffmpeg。当我在命令提示符下尝试 ffmpeg -version 时,它确实有效。它也适用于 WinPython 的命令提示符。我不知道它是否有帮助,但 Ipython 的路径是: C:\Users\Sal\WinPython-32bit-3.3.2.3\python-3.3.2\Scripts /

但是,它仍然不起作用。给出的错误是: AttributeError:“str”对象没有“保存”属性 这个错误当然发生在 .save 命令中。 我什至尝试添加以下内容。不会做任何额外的事情。 作家 = 'ffmpeg'

我使用的是 Windows 7,WinPython3.3。

非常感谢

【问题讨论】:

  • 贴出出现错误的代码相关部分
  • 你用的是什么版本的mpl?动画编写器支持是(相对)新的。
  • @Kreger51 您成功保存动画了吗?我遇到同样的问题!!我不知道为什么我无法使用命令 anim.save('mymovie.mp4',writer=mywriter) 生成 avi 文件,而是收到一条错误消息!谢谢

标签: python matplotlib ffmpeg


【解决方案1】:

当我开始使用完全相同的示例开始处理动画时,我遇到了完全相同的错误。首先,

我使用的是 Windows 7、Python 2.7.6、matplotlib 1.3.1

简答:尝试自己设置FFMpegWriter

mywriter = animation.FFMpegWriter()
anim.save('mymovie.mp4',writer=mywriter)

长答案:我很确定matplotblib.animation.save 中存在 错误 有下面一行

if is_string_like(writer):

捕获用户定义的编写器实际上不是编写器函数而只是其名称的情况。然后实例化该编写器的实例(如果可用)

if writer in writers.avail:
     writer = writers[writer](fps, codec, bitrate,
                              extra_args=extra_args,
                              metadata=metadata

但是,这里有一个错误,如果用户定义的编写器不在writers.avail 中,它只会使用

writer = writers.list()[0]

它本身返回一个字符串,其中包含要使用的编写器的 name。然而,这个字符串并没有用于实际实例化写入器对象!

【讨论】:

  • 您的简短回答对我有用。一个小评论:为了与example cited in the original question保持一致,应该是animation.FFMpegWriter()而不是animator.FFMpegWriter()
  • @Sascha 你能指定哪种方法是正确的吗?我在一个程序中尝试了简短的(上面的两行)来保存用 Python 创建的动画,但我没有成功!谢谢
  • @Strömungsmechanik 如果您正确安装了 ffmpeg,那么简短的回答应该可以工作。但是,阅读您有关动画问题的其他帖子,您似乎没有这里讨论的问题。你试过上面的教程例子吗?
  • @Sascha 这个错误是否列在 matplotlib github 站点上? (我看了,没有找到。)如果没有,请报告它,以便它得到修复。
  • @Stretch 我几个月前报告了这个错误,并且正在修复。但是,它将在尚未设置截止日期的 matplotlib 版本 1.4.0 中发布。问题编号是#2651。 github.com/matplotlib/matplotlib/issues/2651
猜你喜欢
  • 2011-02-08
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多