Timeline reference
A timeline is made of tracks, clips, and keyframes. The JSON file on disk is the single source of truth.
Structure
A timeline has three units.
- Track: a layer of video, audio, or subtitles. Upper tracks render on top.
- Clip: one rectangle on a track, with start/end times, source path, and transition info.
- Keyframe: a property value at a specific time inside a clip (position, scale, opacity, volume).
Add a track
- Click the + button on the left of the timeline and pick video / audio / subtitle.
- Drag to reorder. Higher rows render in front during compositing.
- Use the ☰ menu on each row for solo / mute / lock toggles.
Clip operations
- Move: drag the body of the clip
- Trim: drag the edge handles (start/end time)
- Split: hover the playhead and press S, or right-click → Split
- Delete: select then Delete
- Duplicate: Ctrl/⌘ + D
Multi-select and group move
Drag in empty space to box-select. The clips inside move and delete together.
Hold Shift and click clips to toggle them into the selection.
Zoom and snap
- Mouse wheel — zoom in/out around the playhead
- Magnet (snap) icon — auto-align to clip edges, playhead, markers
- Home / End — jump to the start or end of the timeline
Keyframe animation
Select a clip and change a property in the right inspector — a keyframe is recorded at the current playhead. Values between keyframes interpolate using the chosen curve.
- Linear — constant speed
- Ease In / Out — slow start or end
- Hold — keep the value until the next keyframe
Fade-in: opacity 0 at start, opacity 1 one second later, linear interpolation.
Edit the JSON directly
Open ~/.bom/timelines/<project>.json in any editor. FileSystemWatcher reloads the editor as soon as you save.
{
"version": 1,
"tracks": [
{
"type": "video",
"clips": [
{ "source": "intro.mp4", "in": 0, "out": 3.0, "start": 0 }
]
}
]
}
The schema is owned by src/Bom.Core/Constants/BomAvTimelineProtocol.cs. Invalid keys are moved to the .backup folder automatically.
Backups & recovery
Every 5 minutes the timeline is auto-backed-up to ~/.bom/timelines/.backup/. Copy a backup over the live file to restore.