Composite + per-participant recording
Every session can record the full composite (operator + field side-by-side, with annotations burned in) and per-participant audio + video files. Stored in your S3 bucket, lifecycle-managed to Glacier at 90 days, retrievable for 7 years to clear eIDAS retention.
Two recording shapes, one egress pipeline
One MP4, what the operator saw
Single side-by-side composition rendered by LiveKit egress. Operator tile on the left, field tile on the right; annotation strokes drawn during the session are burned in. Good for case files where "what did the agent see" is the question.
N tracks, isolated
One MP4 per participant, audio + video separable, no compositing. Annotation overlays burn in per tile so a single participant's stream still carries the marks. Good for forensic re-analysis: zoom on the field-side raw frames without the operator's tile in the way.
Multi-party works the same way
Up to 7 participants per session as of 2026-05-19 — late joiners get their own egress request that joins the recording without re-starting the composite. Grids of 4-on-1 inspections (claims adjuster + field + two appraisers + supervisor) record cleanly: composite renders an N-up grid, per-participant track per person, all anchored together in the audit chain.
Post-processing
Egress output (raw MP4) goes through a CPU encode to libx264 medium / crf20 — smaller files, predictable quality, no GPU dependency. Annotation overlays are rasterised per-frame so they survive the re-encode. The post-processed file is what lands in S3; the raw egress file is dropped after.
| Stage | Output |
|---|---|
| LiveKit egress | Raw MP4 + annotation JSON. Lands in scratch S3 prefix. |
| Annotation burn-in | Per-tile strokes rasterised onto frames matching the recording timeline. |
| Re-encode | libx264 medium / crf20. Smaller, audit-friendly, no GPU. |
| Anchor + persist | SHA-256 lands in the audit chain; final MP4 moves to the org's evidence prefix. |
Storage, retention, cost
S3 lifecycle rules transition objects to Glacier Instant Retrieval at 90 days, then Deep Archive at 1 year. The retention window itself stays at 7 years (or whatever your org configured) — eIDAS-aligned, no platform default that surprises legal. Glacier retrieval is sub-12-hour for the rare case an auditor needs the full bytes; the SHA-256 in the audit chain doesn't need the bytes to verify the receipt is unforged.
Cost is the obvious thing: a 30-minute composite at 720p ≈ 250 MB; per-participant doubles or quadruples that. Glacier-at-90d is non-negotiable in our hosting cost model — it's the difference between hosting feeling like a SaaS line item and hosting feeling like a tax.
Recording is opt-in per session
The operator decides at session start whether to record — no default-on surprise. The field user sees a banner when recording is active. Both consent moments land in the audit chain.