Video ranges, frames and propagation

A video can carry ordinary annotations on individual frames, object tracks across keyframes or whole-frame classification labels over a range. These are separate data models: propagation copies one frame’s ordinary annotations forward, frame extraction creates still images, ranges classify spans, and tracks preserve object identity through interpolation.

Annotating individual frames

Open a supported CFR or VFR video to start at frame 0, step frame-by-frame or play at the selected rate when its codec supports playback. Frame count and frame rate come from the file, and frame selection uses its actual presentation timestamps rather than an assumed 30 FPS. Every image annotation tool works on the current decoded frame. Ordinary annotations are stored against the video id and frame number. Propagate copies the current ordinary annotations to the next frame, either replacing or merging with what is already there; it does not move a track-owned shape.

Extracting frames as images

Use Frames in a video tile’s menu to extract one image per second, twenty evenly spaced images or every frame, as PNG or JPEG. Choose the destination dataset and optionally delete the video afterwards. When the source has frame annotations or tracks, Copy annotations transfers the visible result at each extracted frame — including interpolated track positions — as ordinary image annotations before any requested deletion occurs.

Preview and accept video predictions

With an available prediction model in AI mode, precompute predictions before playback and inspect the overlays. Predictions are sampled and can be interpolated, so playback speed is not an inference-rate guarantee. The preview is cached; Accept offers the current frame or cached predictions across the video unless a remembered scope or Auto accept setting applies. Saved results become ordinary annotations, not object-identity tracks.

Classification ranges

In any of the three Classification project types, a range applies one or more whole-frame labels from a start frame through an end frame. It has no geometry and no object identity. Use ranges for activities, states or scene categories that last over time; use per-frame regional annotations or tracks when the label belongs to an object rather than the whole frame.

How tracks differ

FeatureOrdinary frame annotationRangeTrack
MeaningOne shape on one frameWhole-frame label over a spanOne object identity over time
GeometryYesNoYes, at keyframes and interpolated frames
PropagationCan copy to the next frameExtends by editing the rangeUses keyframes and disappearance markers
Native identity exportNo identity beyond the frame rowClassification metadataSupervisely Video and MOT; other formats bake frames

Important limits

  • Variable-frame-rate video is supported. FPS is an average; frame indices are exact and original bytes and timing remain unchanged.
  • MP4, MOV, M4V and WebM still depend on platform codecs. AVI/MKV frame extraction is desktop-native; Play may be unavailable even while frame annotation works.
  • Legacy videos without verified timing remain blocked from opening, playback and extraction. Their ids and annotations are unchanged; a fresh import does not automatically migrate old labels.
  • There is no automatic tracker: the user defines keyframes and disappearance; interpolation is arithmetic.
  • Available prediction models can precompute sampled video predictions for playback, with interpolation between sampled frames. This is not a real-time prediction on every frame or automatic identity tracking. Accept can save the current frame or cached predictions across the video; a remembered preference or Auto accept AI annotations changes the prompt behaviour.
  • COCO, YOLO and VOC exports are image-oriented; extract frames when those formats are the destination.
  • Project export preserves the original video bytes, frame annotations, native tracks and timing metadata. Annotated dataset sidecars verify saved frame rate and frame count on import; a mismatch fails, and legacy unmarked annotations stay protected rather than silently remapped.

See also

Video tutorial

AnnotateIt tutorial