The Visual Pipeline and Platform Evaluation Tool includes a video generator that creates composite videos from images stored in subdirectories. This guide is intended for developers working directly with the source code.
Important: Intel provides six images for demo purposes only. You must provide your own images to run the video generator or to create videos.
Build and start the tool:
make run-videogenerator-
Change input images:
Custom images can be used instead of the default sample images as follows:
-
Navigate to the
imagesfolder and create subfolders for new image categories, then place the relevant images inside those subfolders. -
Open the
config.jsonfile located atvideo_generator/config.json. -
Update the
object_countssection to reference the new image folders. Existing categories (for example,carsorpersons) should be replaced with the names of the new categories defined in theimagesfolder:{ "background_file": "/usr/src/app/background.gif", "base_image_dir": "/usr/src/app/images", "output_file": "output_file", "target_resolution": [1920, 1080], "frame_count": 300, "frame_rate": 30, "swap_percentage": 20, "object_counts": { "cars": 3, "persons": 3 }, "object_rotation_rate": 0.25, "object_scale_rate": 0.25, "object_scale_range": [0.25, 1], "encoding": "H264", "bitrate": 20000, "swap_rate": 1 }
-
-
Configure parameters:
The program uses a
config.jsonfile to customize the video generation process. Below is an example configuration:{ "background_file": "/usr/src/app/background.gif", "base_image_dir": "/usr/src/app/images", "output_file": "output_file", "target_resolution": [1920, 1080], "frame_count": 300, "frame_rate": 30, "swap_percentage": 20, "object_counts": { "cars": 3, "persons": 3 }, "object_rotation_rate": 0.25, "object_scale_rate": 0.25, "object_scale_range": [0.25, 1], "encoding": "H264", "bitrate": 20000, "swap_rate": 1 }Parameters in the
config.jsonfile can be configured as follows:-
background_file: Path to a background image (GIF, PNG, and so on) used in composite frames. -
base_image_dir: Path to the root directory containing categorized image subdirectories. -
output_file: Base name for the generated video file. It is recommended not to provide a file extension and not to include.in the filename (for example,output_file). -
target_resolution: Resolution of the output video in[width, height]format. -
duration: Total duration of the generated video in seconds. -
frame_count: Total number of frames in the generated video. -
swap_percentage: Percentage of images that are swapped between frames. -
object_counts: Dictionary specifying the number of images per category in each frame. -
object_rotation_rate: Rate at which objects rotate per frame (for example,0.25means a quarter rotation per frame). -
object_scale_rate: Rate at which the size of objects changes per frame (for example,0.25means the object size changes by 25% per frame). -
object_scale_range: List specifying the minimum and maximum scale factors for the objects (for example,[0.25, 1]means objects can scale between 25% and 100% of their original size). -
encoding: Video encoding format (for example,H264). -
bitrate: Bitrate for video encoding, measured in kbps. -
swap_interval: Frequency of image swapping within frames, in seconds. -
Supported encodings and video formats:
Encoding Video Format H264 .mp4 HEVC .mp4 VP8 .webm VP9 .webm AV1 .mkv MPEG4 .avi ProRes .mov Theora .ogg
-
- Verify build success:
-
Logs should be checked for confirmation messages indicating that the microservice started successfully:
docker compose logs videogenerator -f
-
- Expected result: An MP4 file is created under the
shared/videos/video-generatorfolder.