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

  1. Validate matching image and OBJ sequences.
  2. Encode complete OBJ meshes with the linked Draco library.
  3. Encode the texture sequence and optional audio through FFmpeg.
  4. Analyse consecutive canonical meshes for shared topology and UVs.
  5. Create complete-mesh or position-update geometry packets.
  6. Add the timed vvge track using the video samples’ actual presentation timestamps and durations.
  7. Reopen the output and verify tracks, packet identity, timestamps, access points, and seeking.
  8. 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:

  • libx264 for H.264 presets.
  • libx265 for HEVC presets.
  • AAC encoding.

Runtime playback links FFmpeg libraries into the plug-in and does not require a separately installed FFmpeg executable.