2017-04-06 45 views
0

试图在python中设置一个字符串的动画效果,我认为我的代码很好,但是文件编写器有问题。我的代码(基于关闭https://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/):Python中的FFMPEG文件编写器2.7

import numpy as np 
import scipy as sci 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 
plt.rcParams['animation.ffmpeg_path'] = 'C:\FFMPEG\bin\ffmpeg' 


s1=10.15 
gamma=(np.pi*np.sqrt(2))/2 
gamma=sci.special.jn_zeros(0,10) 
gamma1=gamma[9] 
gamma2=gamma[8] 
print gamma1,gamma2 

sigma=np.linspace(0,2*s1,10000) 

def xprime(sigma,t): 
    alpha = gamma1*(np.cos(np.pi*t/s1)*np.cos((np.pi*sigma)/s1)) 
    beta = gamma1*(np.sin(np.pi*t/s1)*np.sin((np.pi*sigma)/s1)) 
    xprime=np.cos(alpha)*np.cos(beta) 
    return xprime 

def yprime(sigma,t): 
    alpha = gamma2*(np.cos(np.pi*t/s1)*np.cos((np.pi*sigma)/s1)) 
    beta = gamma2*(np.sin(np.pi*t/s1)*np.sin((np.pi*sigma)/s1)) 
    yprime=np.cos(alpha)*np.sin(beta) 
    return yprime 

fig = plt.figure() 
ax = plt.axes(xlim=(-0.4, 0.4), ylim=(-3, 3)) 
line, = ax.plot([], [], lw=2) 

def init(): 
    line.set_data([], []) 
    return line, 

def animate(i): 
    sigma=np.linspace(0,2*s1,10000) 
    t = (i*2*s1)/200 
    yint=sci.integrate.cumtrapz(yprime(sigma,t),sigma) 
    xint=sci.integrate.cumtrapz(xprime(sigma,t),sigma) 
    line.set_data(xint, yint) 
    return line, 


anim = animation.FuncAnimation(fig, animate, init_func=init, 
          frames=200, interval=20, blit=True) 

FFwriter=animation.FFMpegWriter() 
anim.save('basic_animation.mp4', writer=FFwriter, fps=30, extra_args=['-vcodec', 'libx264']) 

plt.show() 

目前收到错误消息

RuntimeError: Passing in values for arguments for arguments fps, codec, bitrate, extra_args, or metadata is not supported when writer is an existing MovieWriter instance. These should instead be passed as arguments when creating the MovieWriter instance.' 

我觉得我的错误是在呼叫或FFmpeg的文件位置,但我不能确定什么我”做错了。可能非常明显,但目前看不到它/不确定错误信息的实际含义。

回答

0

你有没有试过错误说的?通过在构造函数中的参数:

FFwriter=animation.FFMpegWriter(fps=30, extra_args=['-vcodec', 'libx264']) 
anim.save('basic_animation.mp4', writer=FFwriter) 
+0

进展!现在我刚刚得到一个Windows错误'WindowsError:[错误2]系统找不到指定的文件'我认为这是与我的FFMpeg文件的位置 – byBanachTarskiIamcorrect

+0

是的,这是一个不同的错误与您的文件的位置有关,但现在代码工程:P – lapinkoira