Replay
ProRes instant replay — buffer recording, event marking, clip playback, and multi-angle switching.
LiveWing records every active camera angle to a rolling ProRes buffer on your SSD. You mark events during the show and play back any clip at any speed. Because ProRes is an intraframe codec, every frame is independently decodable — seek operations are near-instant.
The replay buffer
Each active angle gets its own replay buffer manager. The buffer writes continuous ProRes .mov segment files to ~/Movies/LiveWing/ReplayBuffer/cam_<angleID>/ (configurable). When a segment reaches its configured duration (default 30 seconds), the buffer rotates to a new file in the background — no frames are lost during rotation. When total disk usage across all angles exceeds the budget, the oldest segments are deleted automatically while keeping at least 2 segments per angle (to avoid deleting a file the playback engine may be reading).
ProRes codec options
| Codec | Approximate bitrate at 1080p60 |
|---|---|
| ProRes 422 Proxy (default) | ~90 Mbps |
| ProRes 422 LT | ~200 Mbps |
| ProRes 422 | ~350 Mbps |
The default is ProRes 422 Proxy — good quality, lightest on storage. Change the codec in the replay storage settings.
Disk budget
The default budget is 30 GB shared across all active angles, split proportionally. Available presets: 10, 20, 30, 50, 75, 100, 150, or 200 GB. The UI shows remaining recording time estimated from the current codec bitrate and active angle count.
Replay recording requires a valid license. The buffer starts clean at the beginning of each session — segments from previous sessions are cleared so playback is never confused by mismatched timestamps.
Angle assignments
Up to four angles can be designated as replay source slots. In the preset, each of the four replay slots holds an angle ID (or nil for auto-assignment). The replay system only records angles that are assigned to a replay slot.
Marking events
Press the Mark button during a live production to create an event at the current moment. Each event records:
- A buffer timestamp (position in the recording timeline)
- A label (editable, with predefined label autocomplete for common calls like "Goal" or "Highlight")
- Tags
- Per-angle labels and enabled state (you can exclude specific angles from a mark)
- Playback speed (default 1.0×)
- In/out trim points (set after marking)
Events are organized in bins. Multiple bins let you separate different types of events — goals vs. fouls vs. highlights — or organize events by period or half.
Predefined labels are saved in the preset so your most common event calls are always available in autocomplete.
Playing a clip
Select an event from the event list to load it. Set in and out trim points to define the exact clip duration. Choose your playback speed. The available speeds are any float value — 0.5 for half speed, 0.25 for quarter speed, 2.0 for double speed, and so on. Frame delivery is driven by a timer: at 0.25× with 30 fps content, the timer fires every ~133 ms, producing smooth slow motion with no re-encoding.
Send the event to program with the Play button, or use replay.playEvent from the API. Replay playback goes through the same output path as any live source — it appears on program, gets encoded into streams, and appears on display outputs.
Switching angles mid-clip
While a clip is playing, switch to any available angle using the angle selector. The new angle plays back the same moment in its own ProRes recording. You can cut between angles of the same event as freely as live cameras.
Quick replay
replay.quickReplay plays back the last marked event immediately at the current playback speed. Useful for calling an instant replay with a single button press without navigating the event list.
Replay and live program
Common workflows:
- Full-screen replay — send replay to program; have a live camera staged on preview ready to cut back
- ISO replay output — route the replay engine's output to a separate output channel, keep program on the switched output
- Delay fill — use replay to cover breaks or dead time in the broadcast
API control
The replay system is fully controllable via the WebSocket API. Key commands:
replay.enterMode/replay.exitMode— enter and exit replay modereplay.quickEvent— mark an event at the current momentreplay.markIn/replay.markOut— set trim pointsreplay.play/replay.pause/replay.stop— transport controlreplay.setSpeed— set playback speed (float, e.g. 0.5)replay.seek/replay.seekToLiveEdge— timeline navigationreplay.switchAngle— change the active angle mid-clipreplay.playEvent/replay.playLastEvent— play a specific event or the most recent onereplay.listEvents— list all events in the current binreplay.getAngleAssignments/replay.setAngleAssignment— manage slot assignments
This is the same API used by dedicated replay hardware controllers and operator companion apps. See the API Reference for the complete command set.