| # Editing Framework Module Documentation | |
| The `editing_framework` module provides a set of classes and functions for editing videos and images. This module is part of the `shortGPT` project and is designed to be used with the `CoreEditingEngine` class to generate videos and images based on a specified editing schema. | |
| ## Module Files | |
| The `editing_framework` module consists of three files: | |
| 1. `rendering_logger.py`: This file contains the `MoviepyProgressLogger` class, which is used for logging the progress of the rendering process. | |
| 2. `editing_engine.py`: This file contains the `EditingStep` and `Flow` enums, as well as the `EditingEngine` class, which is the main class for managing the editing process. | |
| 3. `core_editing_engine.py`: This file contains the `CoreEditingEngine` class, which is responsible for generating videos and images based on the editing schema. | |
| ## `rendering_logger.py` | |
| This file defines the `MoviepyProgressLogger` class, which is a subclass of `ProgressBarLogger` from the `proglog` module. It provides a callback function for logging the progress of the rendering process. The `MoviepyProgressLogger` class has the following methods: | |
| ### `__init__(self, callBackFunction=None)` | |
| - Initializes a new instance of the `MoviepyProgressLogger` class. | |
| - Parameters: | |
| - `callBackFunction`: An optional callback function that will be called with the progress string. | |
| ### `bars_callback(self, bar, attr, value, old_value=None)` | |
| - This method is called every time the logger progress is updated. | |
| - It calculates the rendering progress and the estimated time left. | |
| - It calls the callback function with the progress string or prints the progress string if no callback function is provided. | |
| - Parameters: | |
| - `bar`: The progress bar name. | |
| - `attr`: The progress attribute name. | |
| - `value`: The current progress value. | |
| - `old_value`: The previous progress value. | |
| ### `format_time(self, seconds)` | |
| - Formats the given time in seconds to the format "mm:ss". | |
| - Parameters: | |
| - `seconds`: The time in seconds. | |
| - Returns: | |
| - The formatted time string. | |
| ## `editing_engine.py` | |
| This file defines the `EditingStep` and `Flow` enums, as well as the `EditingEngine` class, which is responsible for managing the editing process. The `EditingEngine` class has the following methods: | |
| ### `__init__(self)` | |
| - Initializes a new instance of the `EditingEngine` class. | |
| - It initializes the editing step tracker and the editing schema. | |
| ### `addEditingStep(self, editingStep: EditingStep, args: Dict[str, any] = {})` | |
| - Adds an editing step to the editing schema with the specified arguments. | |
| - Parameters: | |
| - `editingStep`: The editing step to add. | |
| - `args`: The arguments for the editing step. | |
| - Raises: | |
| - `Exception`: If a required argument is missing. | |
| ### `ingestFlow(self, flow: Flow, args)` | |
| - Ingests a flow into the editing schema with the specified arguments. | |
| - Parameters: | |
| - `flow`: The flow to ingest. | |
| - `args`: The arguments for the flow. | |
| - Raises: | |
| - `Exception`: If a required argument is missing. | |
| ### `dumpEditingSchema(self)` | |
| - Returns the current editing schema. | |
| ### `renderVideo(self, outputPath, logger=None)` | |
| - Renders the video based on the editing schema and saves it to the specified output path. | |
| - Parameters: | |
| - `outputPath`: The path to save the rendered video. | |
| - `logger`: An optional logger object for logging the rendering progress. | |
| ### `renderImage(self, outputPath)` | |
| - Renders the image based on the editing schema and saves it to the specified output path. | |
| - Parameters: | |
| - `outputPath`: The path to save the rendered image. | |
| ## `core_editing_engine.py` | |
| This file defines the `CoreEditingEngine` class, which is responsible for generating videos and images based on the editing schema. The `CoreEditingEngine` class has the following methods: | |
| ### `generate_image(self, schema:Dict[str, Any], output_file)` | |
| - Generates an image based on the editing schema and saves it to the specified output file. | |
| - Parameters: | |
| - `schema`: The editing schema. | |
| - `output_file`: The path to save the generated image. | |
| - Returns: | |
| - The path to the saved image. | |
| ### `generate_video(self, schema:Dict[str, Any], output_file, logger=None)` | |
| - Generates a video based on the editing schema and saves it to the specified output file. | |
| - Parameters: | |
| - `schema`: The editing schema. | |
| - `output_file`: The path to save the generated video. | |
| - `logger`: An optional logger object for logging the rendering progress. | |
| - Returns: | |
| - The path to the saved video. | |
| ### `process_common_actions(self, clip: Union[VideoFileClip, ImageClip, TextClip, AudioFileClip], actions: List[Dict[str, Any]])` | |
| - Processes common actions for the given clip. | |
| - Parameters: | |
| - `clip`: The clip to process. | |
| - `actions`: The list of actions to apply to the clip. | |
| - Returns: | |
| - The processed clip. | |
| ### `process_common_visual_actions(self, clip: Union[VideoFileClip, ImageClip, TextClip], actions: List[Dict[str, Any]])` | |
| - Processes common visual clip actions for the given clip. | |
| - Parameters: | |
| - `clip`: The clip to process. | |
| - `actions`: The list of actions to apply to the clip. | |
| - Returns: | |
| - The processed clip. | |
| ### `process_audio_actions(self, clip: AudioFileClip, actions: List[Dict[str, Any]])` | |
| - Processes audio actions for the given audio clip. | |
| - Parameters: | |
| - `clip`: The audio clip to process. | |
| - `actions`: The list of actions to apply to the audio clip. | |
| - Returns: | |
| - The processed audio clip. | |
| ### `process_video_asset(self, asset: Dict[str, Any])` | |
| - Processes a video asset based on the asset parameters and actions. | |
| - Parameters: | |
| - `asset`: The video asset to process. | |
| - Returns: | |
| - The processed video clip. | |
| ### `process_image_asset(self, asset: Dict[str, Any])` | |
| - Processes an image asset based on the asset parameters and actions. | |
| - Parameters: | |
| - `asset`: The image asset to process. | |
| - Returns: | |
| - The processed image clip. | |
| ### `process_text_asset(self, asset: Dict[str, Any])` | |
| - Processes a text asset based on the asset parameters and actions. | |
| - Parameters: | |
| - `asset`: The text asset to process. | |
| - Returns: | |
| - The processed text clip. | |
| ### `process_audio_asset(self, asset: Dict[str, Any])` | |
| - Processes an audio asset based on the asset parameters and actions. | |
| - Parameters: | |
| - `asset`: The audio asset to process. | |
| - Returns: | |
| - The processed audio clip. | |
| ### `__normalize_image(self, clip)` | |
| - Normalizes the image clip. | |
| - Parameters: | |
| - `clip`: The image clip to normalize. | |
| - Returns: | |
| - The normalized image clip. | |
| ### `__normalize_frame(self, frame)` | |
| - Normalizes the given frame. | |
| - Parameters: | |
| - `frame`: The frame to normalize. | |
| - Returns: | |
| - The normalized frame. |