macos – python ffmpeg无法保存gif,但可以保存mp4
发布时间:2020-12-20 13:19:17 所属栏目:Python 来源:网络整理
导读:我在mac中使用 python(jupyter)ffmpeg,主要代码如下: import numpy as npfrom matplotlib import pyplot as pltfrom matplotlib import animationplt.rcParams['animation.ffmpeg_path'] = '/Users/water/anaconda/bin/ffmpeg'fig = plt.figure()ax = plt.a
我在mac中使用
python(jupyter)ffmpeg,主要代码如下:
import numpy as np from matplotlib import pyplot as plt from matplotlib import animation plt.rcParams['animation.ffmpeg_path'] = '/Users/water/anaconda/bin/ffmpeg' fig = plt.figure() ax = plt.axes(xlim=(0,2),ylim=(-2,2)) line,= ax.plot([],[],lw=2) def init(): line.set_data([],[]) return line,def animate(i): x = np.linspace(0,2,1000) y = np.sin(2 * np.pi * (x - 0.01 * i)) line.set_data(x,y) return line,anim = animation.FuncAnimation(fig,animate,init_func=init,frames=200,interval=20,blit=True) mywriter = animation.FFMpegWriter() anim.save('mymovie.mp4',writer=mywriter) plt.show() 这是对的,没有错误. anim.save('mymovie.gif',writer=mywriter) 我得到的错误如下: 37 except (AttributeError,TypeError,ValueError): 38 raise ValueError("Invalid file object: " ---> 39 "{!r}".format(fileobj)) from None 40 if fd < 0: 41 raise ValueError("Invalid file descriptor: {}".format(fd)) ValueError: Invalid file object: <_io.BufferedReader name=70> 任何人都可以告诉为什么GIF是错误,mp4是oK?以及如何解决这个问题 解决方法
这是一个奇怪的错误.我不知道你为什么要这样做;但我能够创建一个解决方法,它基本上采用.mp4,并将其转换为.gif.这是代码:
import numpy as np from matplotlib import pyplot as plt from matplotlib import animation import os plt.rcParams['animation.ffmpeg_path'] = '/Users/water/anaconda/bin/ffmpeg' fig = plt.figure() ax = plt.axes(xlim=(0,blit=True) mywriter = animation.FFMpegWriter() anim.save('in.mp4',writer=mywriter) codeBASH = "ffmpeg -i in.mp4 -filter_complex 'fps=10,scale=320:-1:flags=lanczos,split [o1] [o2];[o1] palettegen [p]; [o2] fifo [o3];[o3] [p] paletteuse' out.gif" os.system(codeBASH) os.remove("in.mp4") print("saved as gif and cleaned up") plt.show() 由于我不熟练使用matplotlib,我不确定如何在matplotlib框架中显示gif. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |