Proxy Files
Proxy files are lower-resolution versions of your media that enable faster editing workflows while keeping full-quality masters in the repository.
What Are Proxies?
Proxies are lightweight versions of video files used during editing:
Smaller Files
720p H.264 proxies are 10-50x smaller than 4K ProRes masters, making editing responsive on any hardware.
Same Timecode
Proxies match the exact frame rate and timecode of masters, so edits transfer perfectly.
Easy Switching
Switch between proxy and master with a single command. Perfect for remote editing then local finishing.
Proxy Workflow Overview
1. Add full-quality masters to repository
$ dits add footage/*.mov
2. Generate proxies
$ dits proxy-gen footage/
3. Work with proxies (edit, review, collaborate)
$ dits proxy-use
→ Now footage/ shows proxy files
4. Switch to masters for final render
$ dits proxy-unuse
→ Now footage/ shows full-quality mastersGenerating Proxies
Basic Generation
# Generate proxies for all video files
$ dits proxy-gen footage/
Generating proxies...
footage/scene1.mov → proxies/scene1.mov (720p H.264)
footage/scene2.mov → proxies/scene2.mov (720p H.264)
footage/scene3.mov → proxies/scene3.mov (720p H.264)
Generated 3 proxies (45 GB → 1.2 GB)Custom Settings
# Custom resolution
$ dits proxy-gen --resolution 1280x720 footage/
# Custom codec
$ dits proxy-gen --codec prores-proxy footage/
# Custom bitrate
$ dits proxy-gen --bitrate 5M footage/
# All options
$ dits proxy-gen --resolution 1920x1080 --codec h264 --bitrate 8M --fps preserve footage/Proxy Presets
# Use a preset
$ dits proxy-gen --preset editing footage/ # 720p H.264
$ dits proxy-gen --preset review footage/ # 1080p H.264
$ dits proxy-gen --preset mobile footage/ # 480p H.264
# Define custom preset in config
[proxy.preset "dailies"]
resolution = 1920x1080
codec = h264
bitrate = 10M
audio = aac-256k
$ dits proxy-gen --preset dailies footage/Using Proxies
Switch to Proxies
# Enable proxy mode
$ dits proxy-use
Switching to proxy mode...
Linking footage/scene1.mov → proxies/scene1.mov
Linking footage/scene2.mov → proxies/scene2.mov
Linking footage/scene3.mov → proxies/scene3.mov
Proxy mode enabled. Original files preserved in .dits/masters/
# Check status
$ dits proxy-status
Mode: PROXY
Files linked: 3
Original size: 45 GB
Proxy size: 1.2 GBSwitch to Masters
# Disable proxy mode
$ dits proxy-unuse
Switching to master mode...
Restoring footage/scene1.mov (15 GB)
Restoring footage/scene2.mov (15 GB)
Restoring footage/scene3.mov (15 GB)
Master mode enabled.Partial Proxy Mode
# Only use proxies for specific files
$ dits proxy-use footage/scene1.mov footage/scene2.mov
# Use proxies for a directory
$ dits proxy-use footage/b-roll/
# Keep specific files as masters
$ dits proxy-use --except footage/hero-shot.movConfiguration
# .dits/config
[proxy]
# Default proxy resolution
resolution = 1280x720
# Default codec
codec = h264
# Default bitrate
bitrate = 5M
# Proxy storage location
path = .dits/proxies
# Auto-generate on add
autoGenerate = false
# Audio handling
audioCodec = aac
audioBitrate = 192kProxy Attributes
Control proxy generation per file pattern:
# .ditsattributes
# Generate proxies for raw footage
footage/*.mov proxy=auto
footage/*.mxf proxy=auto
# Higher quality proxies for hero shots
footage/hero-*.mov proxy=auto proxy-preset=review
# Don't generate proxies for already-compressed files
renders/*.mp4 proxy=none
# Custom proxy settings
*.r3d proxy=auto proxy-resolution=1920x1080 proxy-codec=prores-proxyRemote Workflows
Proxies are especially valuable for distributed teams:
Scenario: Remote Editor
# On-set (full masters available)
$ dits add footage/*.mov
$ dits proxy-gen footage/
$ dits commit -m "Day 1 footage with proxies"
$ dits push
# Remote editor (limited bandwidth)
$ dits clone --proxy-only https://example.com/project
Cloning into 'project'...
Fetching proxies... 1.2 GB
(Masters: 45 GB available on-demand)
# Editor works with proxies
$ cd project
$ ls footage/
scene1.mov (proxy) scene2.mov (proxy) scene3.mov (proxy)
# Edit in NLE using proxy files...
# For final render, fetch masters for specific clips
$ dits proxy-unuse footage/scene1.mov
Hydrating footage/scene1.mov... 15 GBScenario: Review and Approval
# Generate review proxies
$ dits proxy-gen --preset review footage/
# Share proxy-only branch
$ dits switch -c review-v1
$ dits proxy-use
$ dits push origin review-v1
# Client clones proxy-only
$ dits clone --proxy-only --branch review-v1 https://example.com/projectCommands Reference
dits proxy-gen
$ dits proxy-gen [OPTIONS] <PATH>...
Options:
--resolution <WxH> Output resolution (default: 1280x720)
--codec <CODEC> Video codec (h264, prores-proxy, dnxhr-lb)
--bitrate <RATE> Target bitrate (e.g., "5M")
--preset <NAME> Use named preset
--force Regenerate existing proxies
--output <DIR> Custom output directorydits proxy-use
$ dits proxy-use [OPTIONS] [PATH]...
Options:
--except <PATH> Exclude files from proxy mode
--force Overwrite local changesdits proxy-unuse
$ dits proxy-unuse [OPTIONS] [PATH]...
Options:
--keep-proxies Don't delete local proxy files
--no-hydrate Don't download masters (just unlink)dits proxy-status
$ dits proxy-status
Mode: PROXY
Files:
footage/scene1.mov PROXY (720p, 45MB) → MASTER (4K, 15GB)
footage/scene2.mov PROXY (720p, 42MB) → MASTER (4K, 14GB)
footage/scene3.mov MASTER (4K, 16GB)
Totals:
Proxy files: 2 (87 MB)
Master files: 1 (16 GB)
Unmaterialized masters: 2 (29 GB)NLE Compatibility
Proxies are stored with the same relative paths and filenames as masters. Most NLEs (Premiere, Resolve, FCPX) can switch between them using their built-in proxy toggle features.