Python 为什么我保存的动画视频是空白的?

Python 为什么我保存的动画视频是空白的?,python,matplotlib,ffmpeg,Python,Matplotlib,Ffmpeg,这应该很简单,但我不知道 Python和FFmpeg的新手。正在尝试从ArtistAnimation保存测试视频,但得到了空白视频 在我尝试制作视频之前,我可以通过plt.show()看到动画(不带“matplotlib.use”(“Agg”))。我已经在Anaconda中安装了FFmpeg 为了确保我的FFmpeg正常工作,我使用了来自的代码并制作了一个看起来完美的视频。(我想这意味着我的FFmpeg从现在起可以正常工作?) 然后,我只把数字改成了我的版本。通过比较数字部分,我没有发现明显的错

这应该很简单,但我不知道

Python和FFmpeg的新手。正在尝试从ArtistAnimation保存测试视频,但得到了空白视频

在我尝试制作视频之前,我可以通过plt.show()看到动画(不带“matplotlib.use”(“Agg”))。我已经在Anaconda中安装了FFmpeg

为了确保我的FFmpeg正常工作,我使用了来自的代码并制作了一个看起来完美的视频。(我想这意味着我的FFmpeg从现在起可以正常工作?)

然后,我只把数字改成了我的版本。通过比较数字部分,我没有发现明显的错误。但在我版本保存的视频中,它是空白的

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as ani
import numpy as np
import pandas as pd


fig = plt.figure()
ims = []
for i in range(10):
    ax1 = plt.subplot2grid((2, 2), (0, 0), colspan=2, rowspan=2)
    data = np.random.normal(0, 1, i+1)
    pd.DataFrame(data).plot(kind='bar', ax=ax1)
    ims.append([ax1])



# Set up formatting for the movie files
Writer = ani.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)

anim = ani.ArtistAnimation(fig, ims, interval=500, repeat_delay=3000, blit=True)
anim.save('textmovie.mp4', writer=writer)
plt.show()
我找到了一个解决方案

有一种方法可以使用ims.append创建动画,但我找不到

要使解决方案起作用,需要将
ax1=plt.subplot2grid((2,2)、(0,0),colspan=2,rowspan=2)
放在循环之前

代码如下:

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as ani
import numpy as np
import pandas as pd
from celluloid import Camera

fig = plt.figure()
camera = Camera(fig) #  https://pypi.org/project/celluloid/
ax1 = plt.subplot2grid((2, 2), (0, 0), colspan=2, rowspan=2)
for i in range(10):
    data = np.random.normal(0, 1, i+1)
    pd.DataFrame(data).plot(kind='bar', ax=ax1)
    camera.snap()

# Set up formatting for the movie files
Writer = ani.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)

# anim = ani.ArtistAnimation(fig, ims, interval=500, repeat_delay=3000, blit=True)
anim = camera.animate(interval=500, repeat_delay=3000, blit=True)
anim.save('textmovie.mp4', writer=writer)
结果:

您确定已安装ffmpeg吗?另一种方法是尝试使用。向ffmpeg发出的命令是什么?显示ffmpeg进程的完整日志。我使用了[matplotlib example](),它可以在我的电脑中生成正常的视频。因此,我猜这意味着ffmpeg安装正确?您能告诉我如何显示ffmpeg进程的完整日志吗?我在用PyCharm。谢谢@patrickxya我对python或PyCharm一无所知,但ffmpeg将把日志输出到stderr,或者添加
-report
选项,并在工作目录中输出一个额外的详细日志文件。