визуализировать html видео с анимацией matplotlib - PullRequest
0 голосов
/ 27 мая 2020

В своей записной книжке я получаю данные из URL, провожу некоторый анализ и рисую.
Я хочу также создать анимацию html, используя FuncAnimation из matplotlib.animation. Итак, в преамбуле я делаю

import matplotlib.animation as manim
plt.rcParams["animation.html"] = "html5"
%matplotlib inline

(что-то еще ... def init()..., def animate(i)...), затем

anima = manim.FuncAnimation(fig, 
                         animate, 
                         init_func=init, 
                         frames=len(ypos)-d0, 
                         interval=200, 
                         repeat=False,
                         blit=True)

Чтобы визуализировать, я затем вызываю

FFMpegWriter = manim.writers['ffmpeg']
writer = FFMpegWriter(fps=15)

link = anima.to_html5_video()

from IPython.core.display import display, HTML
display(HTML(link))

, потому что я хочу, чтобы клип отображался как аккуратное html видео в записной книжке

Хотя это хорошо работает на моем компьютере, в Watson-Studio я получаю следующую ошибку:

RuntimeError: Requested MovieWriter (ffmpeg) not available

Я проверил, что ffmpeg доступен в виде Python пакета
(!pip freeze --isolated | grep ffmpeg дает ffmpeg-python==0.2.0)

Вопрос is: как я могу указать matplotlib.animation.writers использовать код c в ffmpeg-python?

Большое спасибо всем респондентам и сторонникам

1 Ответ

0 голосов
/ 27 мая 2020

В настоящее время в Watson Studio on Cloud не установлен ffmpeg. Упомянутый вами пакет ffmpeg-python является просто оболочкой Python, но он не будет работать без фактического ffmpeg.

Вы можете установить ffmpeg из conda:

!conda install ffmpeg

Один раз у вас есть полный список дополнительных пакетов, которые нужны вашему ноутбуку, я рекомендую создать настраиваемую среду . Тогда вам не нужно помещать команды установки в реальный блокнот.

Настройка может выглядеть так:

dependencies:
- ffmpeg=4.2.2
- pip
- pip:
  - ffmpeg-python==0.2.0
...