Content pipeline
Authoring
Encode OBJ frames, texture images, and audio into verified OpenVolumetric media.
Inputs
The shared authoring workflow accepts:
- A contiguous numbered image sequence: JPEG, PNG, TIFF, or EXR.
- A matching contiguous numbered OBJ sequence.
- Optional synchronized audio.
- A positive frame rate.
- A fixed MP4 output or adaptive package directory.
Image and OBJ frame numbers must match. The encoder rejects missing frames, mixed padding, mixed extensions, invalid meshes, and mismatched sequence lengths before publishing output.
Platform presets
| Preset | Intended use | Texture codec | Geometry window |
|---|---|---|---|
| Desktop Local | High-quality desktop files | HEVC | Unbounded unless limited manually |
| Desktop Streaming | Bounded desktop delivery | HEVC | Up to 60 geometry frames |
| Quest Local | Standalone XR local files | H.264 | Unbounded unless limited manually |
| Quest Streaming | Bandwidth-conscious XR delivery | HEVC | Up to 30 geometry frames |
Custom settings expose codec, CRF, video keyframe cadence, reference frames, Draco quantization and speed controls. Lower Draco speed values favour compression; higher values favour authoring and decoding speed.
Encoding stages
- Validate matching image and OBJ sequences.
- Encode complete OBJ meshes with the linked Draco library.
- Encode the texture sequence and optional audio through FFmpeg.
- Analyse consecutive canonical meshes for shared topology and UVs.
- Create complete-mesh or position-update geometry packets.
- Add the timed
vvgetrack using the video samples’ actual presentation timestamps and durations. - Reopen the output and verify tracks, packet identity, timestamps, access points, and seeking.
- Atomically publish the verified output and remove temporary files.
Geometry compression
Enable Geometry Compression to reuse matching connectivity and UV data. Disable it to encode every geometry sample as an independently decodable Draco mesh.
Limit Geometry Keyframes bounds a topology window. A value of N means one full reference mesh followed by at most N - 1 position updates. Fragment boundaries can force references earlier. See Geometry compression.
Fragmented MP4
Fragment durations of one, two, and four seconds are supported. Each fragment begins with aligned video and geometry random-access points. Shorter fragments improve seek, switch, and recovery granularity but add container and request overhead.
Adaptive packages
Adaptive authoring is available with the desktop and Quest streaming presets. It produces:
<parent>/<presentation>/
├── manifest.json
├── low.mp4
└── high.mp4
Low and high representations share their timeline, codecs, audio layout, fragment cadence, and compatible access points. The low representation reduces video bitrate and geometry precision. Both files are staged and inspected before the manifest is published; mismatched duration, fragment count, audio layout, or access points fail the job.
FFmpeg
FFmpeg is an authoring dependency only. Select a standalone executable in the Advanced section or make it available through PATH. It must provide:
libx264for H.264 presets.libx265for HEVC presets.- AAC encoding.
Runtime playback links FFmpeg libraries into the plug-in and does not require a separately installed FFmpeg executable.