Как сделать видео с помощью matplotlib с контурным полем, векторным полем и движущимся прямоугольником?

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

https://i.stack.imgur.com/VcPI1.png

1 ответ

Я так же делаю видео с matplotlibдля моего канала на YouTube.

Сохраните кадры отдельно как png файлы с использованием zfillдля дополнения нулями идентификационных номеров, которые различают кадры. В вашем коде Python вы можете использовать переменную счетчика илиfor фиктивная переменная цикла для создания идентификаторов кадров.

При создании каждого кадра обязательно используйте plt.close() чтобы объекты, нарисованные на предыдущих холстах, также не были на текущем холсте, который вы печатаете.

Затем используйте ffmpeg, чтобы сшить кадры вместе с желаемой частотой кадров. Пример взят изhamelot.io следующее:

ffmpeg -r 60 -f image2 -s 1920x1080 -i pic%04d.png -vcodec libx264 -crf 25  -pix_fmt yuv420p test.mp4

Некоторые из параметров, которые вы, возможно, захотите настроить в приведенном выше примере: -r которая является частотой кадров (60 кадров в секунду в приведенном выше примере), -s разрешение размера финального видео, -i образец строки для ваших рамок в png формат (вы можете изменить его на другие форматы, включая jpeg), и последний аргумент в конце, который не отмечен флажком, а просто имя окончательного видео, которое вы создаете.

Другие вопросы по тегам