Introduction
1. What is video generation?
Model-Prime's video generators create HLS video streams from sequences of images in your robologs. These video streams can be watched from a robolog's details page.
The video generation process is either triggered by ingestion of new robologs, or manually. The video streams are stored in your Model-Prime data lake and made accessible to authorized users via our data lake files content delivery network (CDN).
2. Terminology
Generator
A resource that must have a unique name and an optional description to help you and your team understand the type of video(s) created by the generator. Each generator has its own set of associated generator versions.
Generator definition
A YAML file that specifies the output videos' characteristics and the channel(s) used for each output. An optional robolog gating criteria may be defined to control which robologs are processed by the generator at run-time.
Generator version
An iteration of a generator definition used to keep track of how you modify a generator over time.
Each version begins as a draft that you can save and return to before publishing it. A validation mechanism intended to help catch common configuration errors runs automatically while you draft a version.
A generator version is made usable - and its definition made immutable - by publishing it. The generator's functionality may then be changed by drafting and publishing a new version of the generator.
Outputs
The videos that will be generated. Each output specifies the channel(s) to use as inputs along with optional output frame height and rotation angle to apply to each input channel.
Channels listed in the output must have a type that is supported by the video generation system. The current set of supported channel types are:
sensor_msgs/Image
- ROS 1 image messages.sensor_msgs/msg/Image
- ROS 2 image messages.
Please notify us if you need support for additional channel types.
Generator invocation
The process of generating a video for one or more robologs using the definition provided by a specific generator version. There are three types of invocations: test, normfill, and backfill.
Normfill invocations are automatically invoked for each enabled generator whenever a new robolog is ingested, while test and backfill invocations may be manually invoked by you or your team.
Test
Using test invocations, you may verify that a generator version's definition is working as expected by running it against a small number of robologs. While our platform considers it a successful test if the invocation did not fail at runtime, you need to verify whether or not the test invocation generated the video(s) as intended.
A generator version must be successfully tested before it may be used for normfill or backfill invocations.
Normfill
Normfill invocations are automatically kicked off for each newly ingested robolog using each enabled generator's latest, tested version.
Backfill
Backfill invocations may be used to retroactively generate videos for robologs that had already been ingested before the generator was created and enabled, or if a normfill invocation failed to generate videos for a robolog.
Video generator service
The REST service that supports the creation, management, validation, and invocation of generators, generator versions, and invocations.
3. Generated outputs
Files generated by the video generation process for each output defined in a video generator definition include: HLS video streams, segment files, a thumbnail, and a details file.
4. Output storage
Generated output files are stored in your Model-Prime data lake. They are made available through our content delivery network (CDN) for streaming. The files are also registered as supplementary robologs of the input robolog for easy access and management.
Via the web UI, the generated videos may be accessed from the robolog details page of the robolog that was used to generate them.