Videos¶
Adding videos¶
| How | Where |
|---|---|
| Drag and drop onto the window | Anywhere |
| The video dropzone in New Project | New projects |
| The dropzone in the Videos panel — drag files onto it, or click it to browse | Open projects |
| File ▸ Add Video from URL… | Videos served over https:// |
Both dropzones list the picked files with a Grayscale checkbox per file (and All grayscale / All RGB for several at once). From the Videos panel this list appears in an Import Videos dialog. Choose before you click Import or Create Project — it can't be changed afterwards.
Supported formats¶
| Extension | Opened with |
|---|---|
.mp4 |
mp4box.js |
.webm, .mkv, .mov, .ogg, .ogv, .ts |
MediaBunny |
.avi, .wmv, .mpeg, .mpg |
web-demuxer |
.seq |
the app's SEQ reader |
The container only gets the file open; the codec inside it still has to be one the app can decode — see Codecs.
.pkg.slp projects carry their frames inside the file, so they open with no
video files needed at all.
Playback¶
Video decoding uses WebCodecs.
The file is demuxed by mp4box.js (MP4), MediaBunny (WebM, MKV, MOV, Ogg,
MPEG-TS), or web-demuxer (AVI, WMV, MPEG), which gives frame-accurate seeking
rather than the approximate seeking you get from an HTML <video> element.
Playback speed runs from 0.25× to 8×.
Codecs¶
WebCodecs decodes, at 8-bit:
- H.264, HEVC/H.265
- VP8, VP9
- AV1
MJPEG works too — the app decodes it as per-frame JPEGs.
Everything else needs converting first: MPEG-½, MPEG-4 ASP (Xvid/DivX), MS-MPEG4, WMV 1–3, VC-1, and 10-bit H.264/HEVC, which WebCodecs rejects even though it handles the 8-bit form.
Transcoding (desktop only)¶
When the desktop app opens a video in a codec it cannot decode, it offers to transcode it to H.264 MP4 once and reuse the result thereafter.
The conversion runs disk-to-disk in a native ffmpeg sidecar process — the source bytes never enter the app's memory — so a multi-gigabyte legacy file converts at a flat, small memory cost. The result is cached, keyed on the source file, and written atomically, so an interrupted transcode never leaves a half-file behind.
File ▸ Clear Video Transcode Cache… frees that space when you no longer need it.
In the browser
There is no transcoding in the browser build. Convert the file first:
-pix_fmt yuv420p matters — it is what forces 8-bit output.
When videos move¶
A .slp project stores paths to its videos. Move the videos, or open the project
on another machine, and those paths stop resolving.
- File ▸ Replace Videos… ▸ (video name), or Replace Video in the Videos panel, re-points one video at a new file.
- Locate All Missing in the Videos panel (shown only when videos are missing) finds them all at once. In Chrome / Edge you pick one folder and the app matches each missing video by file name anywhere inside it; elsewhere you pick the files.
- The app also looks for the file near the project and next to the old path before asking you.
For remote jobs there is a dedicated path resolution dialog that maps every file the job needs onto a path the worker can see — including auto-detecting the rest of a folder and cascade-filling once it works out the prefix difference. See Remote Compute.
Removing videos¶
The Videos panel lists the project's videos; Remove Video removes the selected one. Removing a video removes its labeled frames with it, so if it has any, the app confirms first.
Exporting a labeled clip¶
File ▸ Export ▸ Labeled Clip (Video)… renders a video with the pose overlay burned in — for talks, for figures, or for showing a collaborator what the data actually looks like. You choose the frame range, which videos to include, and the display settings, with a live preview before rendering.