writer

class janim.render.writer.VideoWriter(anim: TimelineAnim)

基类:object

将时间轴动画生成视频输出到文件中

可以直接调用 VideoWriter.writes(MyTimeline().build()) 进行输出

主要流程在 write_all() 中:

  • 首先调用 ffmpeg,这里用它生成视频(先输出到 _temp 文件中)

  • 然后遍历动画的每一帧,进行渲染,并将像素数据传递给 ffmpeg

  • 最后结束 ffmpeg 的调用,完成 _temp 文件的输出

  • 将 _temp 文件改名,删去 "_temp" 后缀,完成视频输出

static writes(anim: TimelineAnim, file_path: str, *, quiet=False) None
write_all(file_path: str, *, quiet=False, _keep_temp: bool = False) None

将时间轴动画输出到文件中

  • 指定 quiet=True,则不会输出前后的提示信息,但仍有进度条

open_video_pipe(file_path: str) None
close_video_pipe(_keep_temp: bool) None
class janim.render.writer.AudioWriter(anim: TimelineAnim)

基类:object

static writes(anim: TimelineAnim, file_path: str, *, quiet=False) None
write_all(file_path: str, *, quiet=False, _keep_temp: bool = False) None
open_audio_pipe(file_path: str) None
close_audio_pipe(_keep_temp: bool) None
janim.render.writer.merge_video_and_audio(ffmpeg_bin: str, video_path: str, audio_path: str, result_path: str, remove: bool = True) None
class janim.render.writer.SRTWriter

基类:object

static writes(anim: TimelineAnim, file_path: str) None
static t_to_srt_time(t: float)

将秒数转换为 SRT 时间格式:HH:MM:SS,mmm