A video labeling tool built with PySide6 that allows you to mark and annotate periods of action in videos. This tool is designed for efficient video loading and low memory usage.
- Fast video loading with minimal memory footprint
- Frame-by-frame navigation and playback with adjustable speed
- Timeline visualization with zooming support
- Create, edit, and delete labels for time periods in videos
- Support for overlapping labels with multi-track display
- Customize label colors
- Export labels to JSON format
There is a requirements.txt file.
-
Run the application:
python main.py -
Open a video file using the "Open Video" button in the toolbar.
-
Use the video player controls to navigate through the video:
- Play/Pause: Toggle video playback
- Previous/Next frame buttons: Move one frame at a time
- Seek slider: Jump to a specific position
- Timeline: Click to jump to a position
-
Two operating modes are available (toggle with keyboard shortcuts):
- View Mode (C): For navigating and playing labeled segments
- Clicking on a label plays that segment with Left Mouse
- Creating/editing labels is disabled
- Edit Mode (X): For creating and adjusting labels
- Create labels by clicking and dragging on the timeline with Right Mouse
- Adjust label boundaries by dragging the handles at the start or end with Left Mouse
- Move labels by dragging the middle section with Left Mouse
- View Mode (C): For navigating and playing labeled segments
-
Label format and management:
- Labels are formatted as "1. action_name" for clarity
- Labels are automatically assigned to separate tracks when they overlap
- Edit label properties in the Labels panel
- Delete labels by selecting them and pressing Delete
-
Save your project using the "Save Project" button to preserve your work.
-
Export labels to JSON format using the "Export Labels" button for use in other applications.
- Space: Toggle play/pause
- Left/Right arrow keys: Move one frame backward/forward
- Delete key: Delete the selected label
- X: Switch to Edit Mode (for creating and adjusting labels)
- C: Switch to View Mode (for navigation and playing labeled segments)
The application includes playback speed control ranging from 0.25x to 8.0x normal speed. This allows for:
- Slow-motion analysis of critical moments (0.25x, 0.5x)
- Normal playback (1.0x)
- Fast review of lengthy content (1.5x, 2.0x, 4.0x, 8.0x) (BUG)
Choose the appropriate speed from the dropdown in the video player controls.
This project is licensed under the MIT License - see the LICENSE file for details.
For better video playback performance, you might also want to install platform-specific dependencies:
For Windows:
pip install opencv-python-headless[ffmpeg]