A macOS application for inspecting video and audio files with metadata analysis, bitrate visualization, and keyframe detection.
- Comprehensive Metadata: Container format, codec information, resolution, frame rate, pixel aspect ratio, and display aspect ratio
- Color & HDR Information: Color space, chroma subsampling, bit depth, color primaries, transfer functions, and HDR format detection (Dolby Vision, HDR10, HLG, PQ)
- Codec Support: HEVC (H.265), AVC (H.264), AV1, VP9, and more with detailed configuration parsing
- Resolution Categories: Automatic classification (4K UHD, Full HD, etc.)
- Multi-Track Support: Detailed information for all audio tracks
- Track Properties: Codec, channel layout, sample rate, bitrate, and language information
- Codec Detection: AAC, AC-3, E-AC-3, MP3, Opus, and more
- Interactive Charts: Bitrate visualization with Swift Charts
- Flexible Sampling: Automatic, fixed interval, or per-frame sampling modes
- Visualization Modes: Aggregate bitrate by second, frame, or GOP (Group of Pictures)
- Progressive Updates: Real-time bitrate analysis with streaming updates
- Performance Optimized: Efficient frame extraction with configurable accuracy settings and LTTB downsampling
- Timeline Zoom: Interactive timeline for zooming into specific time ranges
- Thumbnail Strip: Horizontal scrollable strip of keyframe thumbnails for quick navigation
- Sync Sample Detection: Identifies I-frames (intra-coded frames) without decoding
- GOP Interval Display: Shows Group of Pictures intervals for each keyframe
- Built-in Player: Play videos with AVPlayer integration
- Statistics Overlay: Real-time display of resolution, frame rate, current time, and bitrate
- Customizable Controls: Toggle controls, auto-play, and mute settings
- Command-line interface for batch processing and automation
- JSON, text, and CSV output formats
- All analysis capabilities available via CLI
- Embedded HTTP server for remote analysis
- Start/stop from the Server tab in the app
- Job queue with progress tracking
- macOS: 15.2 (Sequoia) or later
- Xcode: 15.0 or later (for building from source)
- Swift: 5.0 or later
-
Clone the repository:
git clone https://github.com/oscnord/FramePeek.git cd FramePeek -
Open the project:
open FramePeek/FramePeek.xcodeproj
-
Build and run:
- Select your target Mac in Xcode
- Press
Cmd+Rto build and run
- File Dialog: Click the "Open…" button in the toolbar or press
Cmd+O - Drag and Drop: Drag a video or audio file onto the main window
- Supported Formats: MP4, MOV, AVI, MPEG, and other common media formats supported by AVFoundation
# Basic metadata
framepeek-cli video.mp4 --info --pretty
# All analyses
framepeek-cli video.mp4 --all --pretty
# Bitrate as CSV
framepeek-cli video.mp4 --bitrate --format csv
# Multiple files
framepeek-cli *.mp4 --info --parallel- Click "Server" in the sidebar
- Click "Start Server"
- Use the API at
http://127.0.0.1:8080
See bruno/ folder for a Bruno collection to test the API.
Cmd+O: Open file dialogCmd+I: Toggle inspector panelCmd+T: New tabCmd+,: Open settings
FramePeek follows a clean architecture pattern:
- UI Layer: SwiftUI views with
@MainActorViewModels - Business Logic: Pure utility functions for parsing and analysis
- Data Layer: AVFoundation and CoreMedia for media access
- Concurrency: Swift Concurrency (
async/await) for all async operations
Contributions are welcome! Please see instructions.md for detailed information about the codebase structure and contribution guidelines.
This project is licensed under the MIT License.

