How jusas/gopromax-conversion-tools works
MAX Video Converter is a desktop tool for turning GoPro MAX 360 footage into equirectangular video. The user adds media, inspects metadata and previews frames, adjusts rotation and crop, optionally checks a keyframe render, then queues full renders with selected output settings. Conversion uses ffmpeg filters and writes spherical-video tags with ExifTool; libVLC provides the 360 preview. Some UI wiring and unsampled subsystem details are not shown, so those connections are omitted or marked unverified.
Main entry points: VideoConverterService.cs Video conversion · MediaSelectionViewModel.cs Media selection · ConversionPreviewViewModel.cs Preview editing · VideoPreviewService.cs Preview generation
Components 21
Media intake
- Main window
src/VideoConversionApp/ViewModels/MainWindowViewModel.cs - Media selection
src/VideoConversionApp/ViewModels/MediaSelectionViewModel.cs - Video metadata
src/VideoConversionApp/Services/VideoInfoService.cs - Media pool
src/VideoConversionApp/Services/VideoPoolManager.cs
Preview and editing
- Preview editing
src/VideoConversionApp/ViewModels/ConversionPreviewViewModel.cs - Preview generation
src/VideoConversionApp/Services/VideoPreviewService.cs - AV filter factory
src/VideoConversionApp/Services/AvFilterFactory.cs - 360 preview player
src/VideoConversionApp/Views/Components/VideoPlayerView.axaml.cs - Player state
src/VideoConversionApp/Models/PreviewVideoPlayerState.cs
Conversion
- Render settings
src/VideoConversionApp/ViewModels/RenderSettingsViewModel.cs - Render queue
src/VideoConversionApp/ViewModels/RenderQueueViewModel.cs - Video conversion
src/VideoConversionApp/Services/VideoConverterService.cs
App services
- Configuration
src/VideoConversionApp/Services/ConfigManager.cs - Global settings
src/VideoConversionApp/ViewModels/GlobalSettingsViewModel.cs - Storage access
src/VideoConversionApp/Services/StorageServiceProvider.cs - Logging
src/VideoConversionApp/Services/Logger.cs
Other components
- Video editor
- ffmpeg
- ExifTool
- Equirectangular video
- libVLC
Connections 19
- Video editor → Media selection: adds videos
- Media selection → Video metadata: inspects media
- Media selection → Media pool: adds to pool
- Video editor → Preview editing: adjusts preview
- Preview editing → Preview generation: requests previews
src/VideoConversionApp/ViewModels/ConversionPreviewViewModel.cs - Preview generation → AV filter factory: builds filters
src/VideoConversionApp/Services/VideoPreviewService.cs - Preview generation → ffmpeg: generates frames
src/VideoConversionApp/Services/VideoPreviewService.cs - Preview editing → Player state: updates state
src/VideoConversionApp/ViewModels/ConversionPreviewViewModel.cs - 360 preview player → libVLC: plays preview
- Video editor → Render settings: chooses settings
- Video editor → Render queue: queues renders
- Render queue → Video conversion: starts rendering
- Video conversion → AV filter factory: builds filters
src/VideoConversionApp/Services/VideoConverterService.cs - Video conversion → ffmpeg: renders video
src/VideoConversionApp/Services/VideoConverterService.cs - Video conversion → ExifTool: writes tags
src/VideoConversionApp/Services/VideoConverterService.cs - Video conversion → Equirectangular video: writes result
- Global settings → Configuration: saves settings
- Main window → Storage access: uses storage
src/VideoConversionApp/App.axaml.cs - Video metadata → Configuration: reads paths
src/VideoConversionApp/Services/VideoInfoService.cs