Как сделать видео, используя matplotlib с полем контура, векторным полем и движущейся рамкой? - PullRequest
0 голосов
/ 09 апреля 2020

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

enter image description here

1 Ответ

0 голосов
/ 09 апреля 2020

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

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

При создании каждого кадра обязательно используйте 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), и последний аргумент в конце, который не помечен, но это просто название финального видео, которое вы создаете.

...