VideoTools/docs/inspect
Stu 18a14c6020 Refactor to modular architecture with rainbow UI (v0.1.0-dev8)
Major refactoring to improve code organization and enhance UI:

Architecture:
- Split monolithic main.go into modular internal/ package structure
- Created internal/logging for centralized logging system
- Created internal/modules for module handler functions
- Created internal/ui for UI components and layouts
- Created internal/utils for shared utility functions

UI Enhancements:
- Implemented rainbow gradient across 8 module buttons (violet→red)
- Increased module button text size to 20 for better readability
- Fixed text centering on module tiles
- Converted Simple/Advanced mode toggle to tabs to save vertical space
- Added vertical scrollbars to prevent UI overflow
- Added metadata copy button (📋) to copy all metadata to clipboard

Video Processing:
- Fixed aspect ratio conversion to default to center-crop behavior
- Added 6 aspect handling modes: Auto, Crop, Letterbox, Pillarbox, Blur Fill, Stretch
- Fixed blur fill to maintain source resolution with padding (no scaling)
- Ensured all FFmpeg filters produce even-numbered dimensions for H.264

Known Issues:
- WMV files still produce FFmpeg error 234 during aspect conversions
  (requires codec-specific handling in future update)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 14:56:37 -05:00
..
README.md Refactor to modular architecture with rainbow UI (v0.1.0-dev8) 2025-11-23 14:56:37 -05:00

Inspect Module

The Inspect module provides comprehensive metadata viewing and technical analysis of video files.

Overview

Inspect is a read-only module designed to display detailed information about video files that doesn't fit in the compact metadata panel shown in other modules. It's useful for technical analysis, troubleshooting, and understanding video file characteristics.

Features

Technical Details

  • Video Codec - H.264, H.265, VP9, etc.
  • Container Format - MP4, MKV, AVI, etc.
  • Resolution - Width × Height in pixels
  • Frame Rate - Exact fps (23.976, 29.97, 30, 60, etc.)
  • Aspect Ratio - Display aspect ratio (DAR) and pixel aspect ratio (PAR)
  • Bitrate - Overall, video, and audio bitrates
  • Duration - Precise timestamp
  • File Size - Human-readable format
  • Pixel Format - yuv420p, yuv444p, rgb24, etc.
  • Color Space - BT.709, BT.601, BT.2020, etc.
  • Color Range - Limited (TV) or Full (PC)
  • Bit Depth - 8-bit, 10-bit, 12-bit

Stream Information

Video Streams

For each video stream:

  • Stream index and type
  • Codec name and profile
  • Resolution and aspect ratio
  • Frame rate and time base
  • Bitrate
  • GOP structure (keyframe interval)
  • Encoding library/settings

Audio Streams

For each audio stream:

  • Stream index and type
  • Codec name
  • Sample rate (44.1kHz, 48kHz, etc.)
  • Bit depth (16-bit, 24-bit, etc.)
  • Channels (stereo, 5.1, 7.1, etc.)
  • Bitrate
  • Language tag

Subtitle Streams

For each subtitle stream:

  • Stream index and type
  • Subtitle format (SRT, ASS, PGS, etc.)
  • Language tag
  • Default/forced flags

Container Metadata

Common Tags

  • Title - Media title
  • Artist/Author - Creator
  • Album - Collection name
  • Year - Release year
  • Genre - Content category
  • Comment - Description
  • Track Number - Position in album
  • Cover Art - Embedded image

Technical Metadata

  • Creation Time - When file was created
  • Encoder - Software used to create file
  • Handler Name - Video/audio handler
  • Timecode - Start timecode for professional footage

Chapter Information

  • Chapter count
  • Chapter titles
  • Start/end timestamps for each chapter
  • Chapter thumbnail (if available)

Advanced Analysis

HDR Metadata

For HDR content:

  • Color Primaries - BT.2020, DCI-P3
  • Transfer Characteristics - PQ (ST.2084), HLG
  • Mastering Display - Peak luminance, color gamut
  • Content Light Level - MaxCLL, MaxFALL

Interlacing Detection

  • Field order (progressive, top-field-first, bottom-field-first)
  • Telecine flags
  • Repeat field flags

Variable Frame Rate

  • Detection of VFR content
  • Frame rate range (min/max)
  • Frame duplication patterns

Cover Art Viewer

  • Display embedded cover art
  • Show resolution and format
  • Extract to separate file option

MediaInfo Integration

When available, show extended MediaInfo output:

  • Writing library details
  • Encoding settings reconstruction
  • Format-specific technical data

Usage Guide

Basic Inspection

  1. Load Video

    • Select video file or use already loaded video
    • Inspection loads automatically
  2. Review Information

    • Browse through categorized sections
    • Copy technical details to clipboard
    • Export full report

Viewing Streams

Navigate to "Streams" tab to see all tracks:

  • Identify default streams
  • Check language tags
  • Verify codec compatibility

Checking Metadata

Open "Metadata" tab to view/copy tags:

  • Useful for organizing media libraries
  • Verify embedded information
  • Check for privacy concerns (GPS, camera info)

Chapter Navigation

If video has chapters:

  • View chapter list with timestamps
  • Preview chapter thumbnails
  • Use for planning trim operations

Export Options

Text Report

Export all information as plain text file:

VideoTools Inspection Report
File: example.mp4
Date: 2025-11-23

== GENERAL ==
Format: QuickTime / MOV
Duration: 00:10:23.456
File Size: 512.3 MB
...

JSON Export

Structured data for programmatic use:

{
  "format": "mov,mp4,m4a,3gp,3g2,mj2",
  "duration": 623.456,
  "bitrate": 6892174,
  "streams": [...]
}

Clipboard Copy

Quick copy of specific details:

  • Right-click any field → Copy
  • Copy entire section
  • Copy full ffprobe output

Integration with Other Modules

Pre-Convert Analysis

Before converting, check:

  • Source codec and quality
  • HDR metadata (may need special handling)
  • Audio tracks (which to keep?)
  • Subtitle availability

Post-Convert Verification

After conversion, compare:

  • File size reduction
  • Bitrate changes
  • Metadata preservation
  • Stream count/types

Troubleshooting Aid

When something goes wrong:

  • Verify source file integrity
  • Check for unusual formats
  • Identify problematic streams
  • Get exact technical specs for support

FFmpeg Integration

Inspect uses ffprobe for metadata extraction:

# Basic probe
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4

# Include chapters
ffprobe -v quiet -print_format json -show_chapters input.mp4

# Frame-level analysis (for advanced detection)
ffprobe -v quiet -select_streams v:0 -show_frames input.mp4

Tips & Best Practices

Understanding Codecs

  • H.264 Baseline - Basic compatibility (phones, old devices)
  • H.264 Main - Standard use (most common)
  • H.264 High - Better quality (Blu-ray, streaming)
  • H.265 Main - Consumer HDR content
  • H.265 Main10 - 10-bit color depth

Bitrate Interpretation

Quality 1080p Bitrate 4K Bitrate
Low 2-4 Mbps 8-12 Mbps
Medium 5-8 Mbps 15-25 Mbps
High 10-15 Mbps 30-50 Mbps
Lossless 50+ Mbps 100+ Mbps

Frame Rate Notes

  • 23.976 - Film transferred to video (NTSC)
  • 24 - Film, cinema
  • 25 - PAL standard
  • 29.97 - NTSC standard
  • 30 - Modern digital
  • 50/60 - High frame rate, sports
  • 120+ - Slow motion source

Color Space

  • BT.601 - SD content (DVD, old TV)
  • BT.709 - HD content (Blu-ray, modern)
  • BT.2020 - UHD/HDR content

See Also