场景文件写入器¶
限定名称: manim.scene.scene\_file\_writer.SceneFileWriter
- class SceneFileWriter(renderer, scene_name, **kwargs)[来源]¶
基础:
objectSceneFileWriter 是实际将播放的动画写入视频文件的对象,使用 FFMPEG。 这主要是供 Manim 内部使用。除非你正在调整 Manim 的核心结构,否则你很少需要使用这个类的方法。
- sections_output_dir¶
章节视频存储在哪里
- Type:
pathlib.Path
- output_name¶
电影名称(不带扩展名)以及视频片段名称的基础
- Type:
字符串
- Some useful attributes are:
- “write_to_movie” (bool=False)
是否将动画写入视频文件。
- “movie_file_extension” (str=”.mp4”)
输出视频的文件类型扩展名。
- “partial_movie_files”
所有部分电影文件的列表。
方法
此方法从AudioSegment类型对象和适当的参数中添加一个音频段。
将新的部分电影文件路径添加到scene.partial_movie_files并从哈希中获取当前部分。
此方法从声音文件中添加一个音频片段。
manim内部使用,用于将动画流式传输到FFMPEG以进行显示或写入文件。
将通过删除最旧的partial_movie_files来清理缓存。
Manim内部使用,用于优雅地停止写入FFMPEG的输入缓冲区
combine_filesManim内部使用,用于将组成场景的单独部分电影文件合并为该场景的单个视频文件。
为每个部分连接部分电影文件。
创建一个空的、无声的音频片段。
Manim内部使用,用于优雅地停止向FFMPEG流式传输。
完成写入FFMPEG缓冲区或将图像写入输出目录。
如果当前部分为空,则删除它。
删除所有缓存的电影部分文件
直接获取包含视频文件的分辨率目录的名称。
准备写入器以向电影添加音频。
初始化输出目录。
将检查是否存在名为hash_invocation的文件。
在此处创建分段切割。
Manim内部使用,用于初始化FFMPEG并开始写入FFMPEG的输入缓冲区。
output_imageoutput_image_from_array将“文件准备就绪”消息打印到STDOUT。
这个名字用词不当。
Manim 内部使用,用于将帧写入 FFMPEG 输入缓冲区。
write_opengl_frame写入子标题文件。
属性
force_output_as_scene_name- add_audio_segment(new_segment, time=None, gain_to_background=None)[source]¶
此方法从AudioSegment类型对象和合适的参数中添加一个音频片段。
- Parameters:
new_segment (AudioSegment) – 要添加的音频片段
时间 (浮点数 | 无) – 应该添加声音的时间戳。
gain_to_background (float | None) – 从背景中获取的段的增益。
- add_partial_movie_file(hash_animation)[source]¶
将新的部分电影文件路径添加到scene.partial_movie_files并从哈希值中获取当前部分。 此方法将从哈希值计算路径。此外,它还将新动画添加到当前部分。
- Parameters:
hash_animation (str) – 动画的哈希值。
- add_sound(sound_file, time=None, gain=None, **kwargs)[来源]¶
此方法从声音文件中添加一个音频片段。
- Parameters:
sound_file (str) – 声音文件的路径。
time (float | None) – 音频应添加的时间戳。
gain (float | None) – 给定音频片段的增益。
**kwargs – 此方法使用 add_audio_segment,因此在那里使用的任何关键字参数都可以在这里引用。
- begin_animation(allow_write=False, file_path=None)[source]¶
manim内部使用,用于将动画流传输到FFMPEG以进行显示或写入文件。
- Parameters:
allow_write (bool) – 是否写入视频文件。
- end_animation(allow_write=False)[来源]¶
Manim 内部使用,用于优雅地停止向 FFMPEG 流式传输。
- Parameters:
allow_write (bool) – 是否写入视频文件。
- get_resolution_directory()[source]¶
直接获取包含视频文件的分辨率目录的名称。
此方法获取直接包含视频文件的目录名称。该名称为
。例如,如果您正在渲染一个854x480像素的动画,帧率为15fps,那么直接包含视频文件的目录名称将为p 480p15。文件结构应该类似于:
MEDIA_DIR |--Tex |--texts |--videos |--<name_of_file_containing_scene> |--<height_in_pixels_of_video>p<frame_rate> |--<scene_name>.mp4
- Returns:
目录的名称。
- Return type:
str
- init_output_directories(scene_name)[source]¶
初始化输出目录。
注释
目录是从
config中读取的,例如config['media_dir']。如果目标目录尚不存在, 它们将被创建。
- is_already_cached(hash_invocation)[source]¶
将检查是否存在名为hash_invocation的文件。
- Parameters:
hash_invocation (str) – 对应于调用 scene.play 或 scene.wait 的哈希值。
- Returns:
文件是否存在。
- Return type:
bool
- next_section(name, type, skip_animations)[来源]¶
在此处创建分段切割。
- Parameters:
名称 (字符串)
类型 (字符串)
skip_animations (bool)
- Return type:
无
- save_final_image(image)[来源]¶
这个名字是一个误称。此方法将传递给它的图像保存为默认图像目录中的图像。
- Parameters:
image (ndarray) – 要保存的图像的像素数组。