Video Playback
Master Annotator can display an MP4 video recording alongside the 3D robot viewer, synchronized frame-by-frame with your CSV data. This gives annotators a real-world visual reference to complement the 3D model.
Overview
Many robot data collection setups include a camera recording the workspace during teleoperation. By uploading this video alongside your CSV trajectory data, you get a side-by-side view: the 3D robot model on one side and the camera feed on the other. Both stay in sync as you navigate through frames.
Video playback is optional. If no video is uploaded with a dataset, the labeling interface displays only the 3D viewer (or just the timeline and graphs if no robot configuration is set either).
Supported Formats
Master Annotator supports MP4 video files. The video is uploaded as part of the dataset — each dataset can have one associated video file.
- Format: MP4 (H.264 codec recommended for best browser compatibility).
- Resolution: Any resolution works, though the video panel scales it to fit the available space.
- Duration: Should match or exceed the duration of your CSV data for full synchronization coverage.
H.264 codec
Most browsers handle H.264-encoded MP4 files reliably. If your video uses a different codec (e.g., H.265, VP9), consider re-encoding to H.264 before uploading to avoid playback issues.
FPS Synchronization
The video and CSV data are synchronized using FPS (frames per second). The system maps each CSV frame index to a timestamp in the video using the configured FPS value:
video_time = frame_index / fps
For example, at 30 FPS, frame 150 corresponds to the 5-second mark in the video. The FPS value is configured in the Annotation Settings and should match the recording frame rate of your data collection setup.
If your CSV includes a timestamp column (timestamp, time, t, or elapsed_time), the system can auto-detect the FPS from the data. You can still override this value manually if needed.
Offset Adjustment
In many data collection setups, the CSV recording and the video recording do not start at exactly the same moment. The offset adjustment lets you compensate for this misalignment.
- Positive offset — Shifts the video forward in time relative to the CSV. Use this when the CSV recording started before the video.
- Negative offset — Shifts the video backward in time relative to the CSV. Use this when the video started before the CSV recording.
To calibrate the offset, find a recognizable event (e.g., the robot starting to move) in both the 3D viewer and the video, then adjust the offset until they align.
Offset is per-dataset
The offset value is stored per dataset. Different datasets in the same project can have different offsets to account for varying recording conditions.
Playback Controls
Video playback shares controls with the main frame navigation system. When you interact with any of the following, both the video and the 3D viewer update together:
- Play / Pause — Press
Spaceto start or stop synchronized playback. Both the video and the 3D viewer animate together. - Timeline scrubber — Dragging the timeline seeks the video to the corresponding timestamp.
- Arrow keys — Stepping forward or backward updates the video position to match the current CSV frame.
- Frame input — Jumping to a specific frame also seeks the video to the matching timestamp.
Video-Only Mode
If your project has no robot configuration set, the 3D viewer panel is hidden. In this case, the video panel expands to take the primary position in the labeling interface. This is useful for annotation workflows that rely on visual inspection of camera footage rather than 3D robot visualization.
In video-only mode, you still have access to:
- The timeline scrubber with label color segments.
- All labeling modes (Single, Auto-Advance, Range, Keyframe).
- Joint angle graphs (if column mapping is configured).
- All keyboard shortcuts for navigation and labeling.
Troubleshooting
- Video does not play — Check that the file is an MP4 with H.264 encoding. Try opening the file directly in your browser to confirm it plays outside of Master Annotator.
- Video and robot are out of sync — Adjust the offset value. Find a clear reference point in both views and calibrate from there.
- Video appears black or blank — The video may still be processing after upload. Wait a moment and refresh the page.
- Wrong playback speed — Verify that the FPS setting matches your data collection frame rate. An incorrect FPS causes the video to run too fast or too slow relative to the CSV frames.