-
Release v0.1.0-dev17 - Thumbnail Generation Module
released this
2025-12-13 23:39:35 +00:00 | 326 commits to master since this releaseNew Module: Thumbnails
- Generate individual thumbnails or contact sheets from videos
- FFmpeg-based frame extraction with timestamp overlays
- Configurable thumbnail count, size, and grid layout
- Auto-open generated files in system file browser
Features:
- Thumbnail Count: 3-50 thumbnails (default: 24 for contact sheets)
- Thumbnail Width: 160-640 pixels (maintains aspect ratio)
- Contact Sheet Mode: Generate single image with grid layout
- Grid Configuration: 2-12 columns and rows (default: 4x6)
- Timestamp Overlay: Automatic timestamp burned into each thumbnail
- Metadata Header: Video information header on contact sheets
- Quality Settings: JPEG (85% quality) or PNG lossless
- Even Distribution: Thumbnails evenly spaced across video duration
Technical Implementation:
- internal/thumbnail package with comprehensive generator
- FFprobe integration for video metadata
- FFmpeg tile filter for contact sheets
- Select filter for precise frame extraction
- Evenly distributed timestamps using: step = duration / (count + 1)
- Temporary directory management
- Cross-platform file browser integration
UI Features:
- Clean settings interface with real-time controls
- Slider controls: Count (3-50), Width (160-640px)
- Contact sheet toggle with dynamic grid controls
- Grid sliders: Columns/Rows (2-12)
- Progress feedback during generation
- Success dialog with "Open Folder" option
Integration:
- Orange "Thumb" tile in Screenshots category
- Proper module routing and state management
- Fyne threading compliance
- Consistent UI patterns with other modules
Use Cases:
- Individual Screenshots: Generate 20-30 evenly-spaced frames for preview
- Contact Sheets: Create video overview with metadata (filename, size, FPS, resolution, codecs, duration)
- Video Cataloging: Quick visual reference for video library
Module fully implemented with 20-30 thumbnail range optimized for typical use. Ready for testing.
🤖 Generated with Claude Code
Downloads