【问题标题】:Is there a way to save a matplotlib animation as a video (with ffmpeg) so that the last frame is held for N seconds?有没有办法将 matplotlib 动画保存为视频(使用 ffmpeg),以便最后一帧保持 N 秒?
【发布时间】:2020-12-03 04:46:58
【问题描述】:
我正在使用 FFMpegWriter 将 matplotlib 动画保存为视频。我想在视频结束时将最后一帧保持几秒钟。
作为一种解决方法,您可以通过重复最后一帧的一些额外步骤来修改动画本身。该步数可以根据所需的“保持持续时间”和动画的间隔/fps 来计算。
尽管如此,我想知道是否有一种更简洁的方法可以做到这一点,而无需人为地修改动画本身,而是为作者使用一些额外的参数(在我的情况下使用 ffmpeg)。不幸的是,我对 ffmpeg 了解不多,所以我想得到一些帮助。
谢谢。
【问题讨论】:
标签:
matplotlib
animation
ffmpeg
【解决方案1】:
回答我自己的问题。在使用 matplotlib 保存视频后,我最终运行了一个 ffmpeg 命令(使用 subprocess.run):
ffmpeg \
-i <your-input-file> \
-vf tpad=stop_mode=clone:stop_duration=<your-stop-duration> \
<your-output-file>
我没有尝试是否可以直接将此过滤器传递给FFMpegWriter。