Я нашел этот небольшой код, и я могу сохранить видео (случайные цвета изменения в сетке), используя его:Пустой файл .mp4 создан после создания видео с помощью Matplotlib matplotlib.animation
import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from scipy import rand
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='xy'), bitrate=3600)
fig = plt.figure()
frames = []
for add in np.arange(15):
base = rand(10, 10)
frames.append((plt.pcolormesh(base,),))
im_ani = animation.ArtistAnimation(fig, frames, interval=500, repeat_delay=3000,
blit=True)
im_ani.save('Vid.mp4', writer=writer)
I попытался вставить его в мою симуляцию, я не получаю никаких ошибок, но видео пусто, вся фотография белая. Можете ли вы мне помочь? Это самый простой случай, когда я получил его:
class Dummy():
def __init__(self):
self.video=[]
def addFrame(self):
Frame=rand(10,10)
print (Frame)
self.video.append((plt.pcolormesh(Frame),))
def saveVideo(self):
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='XY'), bitrate=3600)
fig = plt.figure()
im_ani = animation.ArtistAnimation(fig, self.video, interval=500, repeat_delay=3000,
blit=True)
im_ani.save('myVid.mp4', writer=writer, dpi=dpi)
Вы можете попробовать это:
from scipy import rand
foo=Dummy()
for i in range(20):
foo.addFrame()
foo.saveVideo()
Я подозрительно, что 'self.video.append ((plt.pcolormesh (Frame),))' строка неверна. Я не понимаю разделитель **, ** и круглую скобку ». если их устранить, ошибки, и в этом примере это тоже так. – user3598726