2017-04-06 17 views
0

Pythonで文字列をアニメーションしようとすると、私のコードは問題ないと思いますが、ファイルライターには問題があります。私のコードは、(https://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/をオフに基づいて)されていますPythonのFFMPEGファイルライター2.7

現在のエラーメッセージ

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.' 

を取得

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() 

私は私のエラーが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