Lossless .avi Matplotlib plot/movie sequences
A large time series of line plots or images using Matplotlib is shared most easily as a movie file.
In matplotlib_writeavi.py,
just four added lines of code do the AVI writing.
First line tells Matplotlib to use
FFmpeg.
Second line tells Matplotlib to make a lossless FFV1 video at 15 frames/sec.
One can optionally use codec='mpeg4'
, but lossy encoding can wash out details of plots.
Third line says to use 100 DPI (smaller DPI–smaller file and movie size).
import matplotlib.animation as anim
#...
Writer = anim.writers['ffmpeg']
writer = Writer(fps=15, codec='ffv1')
# ...
with writer.saving(fg, fn, 100):
# ...
writer.grab_frame(facecolor='k')
For problems playing back the .avi file, try omitting the codec='ffv1'
parameter.
Minimum AVI frame rate: less than 3 fps can invoke bugs on VLC. VLC has trouble with slow frame rate video from any source.