Skip to main content

Global Flags

These flags are available for the root command.

Configuration

--config
string
Path to configuration file.Default: $HOME/.media-converter.yamlExample:
media-converter --config /etc/converter.yaml /source /dest

Core Flags

--dry-run
boolean
default:"false"
Show what would be converted without actually converting.Alias: -nWhen enabled:
  • Scans source directory
  • Shows file counts and estimated processing time
  • No files are created or modified
  • Skips dependency checks
Example:
media-converter --dry-run /photos /output
media-converter -n /photos /output
--keep-originals
boolean
default:"true"
Keep original files after conversion.Alias: -kWhen disabled (false):
  • Original files are deleted after successful conversion
  • Triple verification before deletion:
    1. Output file exists
    2. Integrity check passes
    3. Size validation succeeds
Example:
media-converter --keep-originals=false /source /dest
media-converter -k=false /source /dest
--jobs
integer
default:"CPU cores - 2"
Number of parallel conversion jobs.Alias: -jRange: 1 to CPU coresBehavior:
  • Default: runtime.NumCPU() - 2
  • Automatically capped at CPU core count
  • Minimum value is 1
Example:
media-converter --jobs 4 /source /dest
media-converter -j 8 /source /dest
--copy-only
boolean
default:"false"
Copy files without conversion (archive mode).When enabled:
  • Files are copied without modification
  • Automatically enables --verify-checksum
  • Incompatible with all conversion flags
  • Skips dependency checks (FFmpeg, ImageMagick not required)
Example:
media-converter --copy-only /photos /backup
--verify-checksum
boolean
default:"false"
Verify file integrity using checksums.Behavior:
  • Automatically enabled when --copy-only is used
  • Calculates checksums before and after operations
  • Validates file integrity during copy operations
Example:
media-converter --verify-checksum /source /dest
--json-mode
boolean
default:"false"
Enable JSON output for Tauri integration.When enabled:
  • Outputs structured JSON events to stdout
  • Silences standard CLI output
  • Disables colored output
  • Designed for programmatic consumption
Event Types:
  • start - Conversion started
  • progress - File progress update
  • complete - File completed
  • error - Error occurred
  • summary - Final statistics
Example:
media-converter --json-mode /source /dest

Image Conversion Flags

--photo-format
string
default:"avif"
Output format for photos.Options: avif, webpSupported Input Formats:
  • jpg, jpeg, heic, heif
  • cr2, arw, nef, dng (RAW formats)
  • tiff, tif, png, raw, bmp, gif, webp
Example:
media-converter --photo-format webp /source /dest
--photo-quality-avif
integer
default:"80"
Quality for AVIF images.Range: 1-100 (higher is better quality)Recommendations:
  • 95-100: Archival quality
  • 80-90: High quality (default)
  • 70-80: Good quality, smaller files
  • 50-70: Web optimization
Example:
media-converter --photo-quality-avif 90 /source /dest
--photo-quality-webp
integer
default:"85"
Quality for WebP images.Range: 1-100 (higher is better quality)Recommendations:
  • 90-100: Near-lossless
  • 80-90: High quality (default)
  • 70-80: Good balance
  • 60-70: Web-optimized
Example:
media-converter --photo-format webp --photo-quality-webp 90 /source /dest

Video Conversion Flags

--video-codec
string
default:"h265"
Video codec for output.Options: h265, h264, av1Supported Input Formats:
  • mov, mp4, avi, mkv, m4v
  • mts, m2ts, mpg, mpeg
  • wmv, flv, 3gp, 3gpp
Codec Comparison:
  • h265: Best balance of quality, compression, and compatibility
  • h264: Maximum compatibility, larger files
  • av1: Best compression, slower encoding, limited hardware support
Example:
media-converter --video-codec av1 /source /dest
--video-crf
integer
default:"28"
Video CRF (Constant Rate Factor) value.Range: 0-51 (lower is better quality)Recommendations:
  • 18-22: Very high quality, large files
  • 23-28: High quality (default)
  • 28-32: Good quality, smaller files
  • 32+: Lower quality, maximum compression
Example:
media-converter --video-crf 23 /source /dest
--video-acceleration
boolean
default:"true"
Enable hardware acceleration for video conversion.Behavior:
  • Automatically detects available hardware encoders
  • Falls back to software encoding if unavailable
  • Significantly faster conversion on supported hardware
Supported Hardware:
  • NVIDIA NVENC
  • Intel Quick Sync
  • AMD VCE
  • Apple VideoToolbox (macOS)
Example:
media-converter --video-acceleration=false /source /dest

Adaptive Worker Flags

--adaptive-workers
boolean
default:"false"
Enable adaptive worker management for video conversions.Behavior:
  • Dynamically adjusts worker count based on system resources
  • Monitors CPU and memory utilization
  • Scales workers between min and max values
  • Checks system resources at regular intervals
Example:
media-converter --adaptive-workers /source /dest
--adaptive-workers-min
integer
default:"1"
Minimum concurrent video conversions in adaptive mode.Range: 1 to --adaptive-workers-maxExample:
media-converter --adaptive-workers --adaptive-workers-min 2 /source /dest
--adaptive-workers-max
integer
default:"6"
Maximum concurrent video conversions in adaptive mode.Range: --adaptive-workers-min to --jobsBehavior:
  • Automatically capped at --jobs value
  • Must be >= --adaptive-workers-min
Example:
media-converter --adaptive-workers --adaptive-workers-max 8 /source /dest
--adaptive-workers-cpu-high
float
default:"80.0"
CPU utilization threshold to reduce workers (percentage).Range: 0.0-100.0When CPU usage exceeds this threshold, worker count is reduced.Example:
media-converter --adaptive-workers --adaptive-workers-cpu-high 85 /source /dest
--adaptive-workers-cpu-low
float
default:"50.0"
CPU utilization threshold to increase workers (percentage).Range: 0.0 to --adaptive-workers-cpu-highWhen CPU usage falls below this threshold, worker count is increased.Behavior:
  • Must be less than --adaptive-workers-cpu-high
  • Auto-calculated as 60% of cpu-high if invalid
Example:
media-converter --adaptive-workers --adaptive-workers-cpu-low 40 /source /dest
--adaptive-workers-mem-low
float
default:"20.0"
Minimum available memory percentage before reducing workers.Range: 0.0-100.0When available memory falls below this percentage, worker count is reduced.Example:
media-converter --adaptive-workers --adaptive-workers-mem-low 25 /source /dest
--adaptive-workers-interval
integer
default:"3"
Seconds between adaptive worker checks.Range: 1+ secondsBehavior:
  • System resources checked at this interval
  • Lower values = more responsive but higher overhead
  • Higher values = less overhead but slower adaptation
Example:
media-converter --adaptive-workers --adaptive-workers-interval 5 /source /dest

Organization Flags

--organize-by-date
boolean
default:"true"
Organize files by date in output directory.Alias: -oDirectory Structure:
YYYY/MM-Month/YYYY-MM-DD/images/
YYYY/MM-Month/YYYY-MM-DD/videos/
Date Extraction:
  • EXIF data for photos
  • Video metadata for videos
  • File modification time as fallback
Example:
media-converter --organize-by-date=false /source /dest
--language
string
default:"en"
Language for month names in date organization.Options: en, fr, es, deExamples:
  • en: 01-January, 02-February
  • fr: 01-Janvier, 02-Février
  • es: 01-Enero, 02-Febrero
  • de: 01-Januar, 02-Februar
Example:
media-converter --organize-by-date --language fr /source /dest

Security Flags

--timeout-photo
integer
default:"300"
Timeout for photo conversion in seconds.Default: 300 seconds (5 minutes)Behavior:
  • Conversion process killed if timeout exceeded
  • File marked as failed
  • Prevents hanging conversions
Example:
media-converter --timeout-photo 600 /source /dest
--timeout-video
integer
default:"1800"
Timeout for video conversion in seconds.Default: 1800 seconds (30 minutes)Behavior:
  • Conversion process killed if timeout exceeded
  • File marked as failed
  • Prevents hanging conversions
Example:
media-converter --timeout-video 3600 /source /dest
--min-output-ratio
float
default:"0.0"
Minimum output size ratio compared to input.Default: 0.0 (uses format-specific defaults)Format-Specific Defaults:
  • AVIF: 0.001 (0.1% of original)
  • WebP: 0.003 (0.3% of original)
  • General: 0.005 (0.5% of original)
Behavior:
  • Prevents corrupted or empty output files
  • Conversion fails if output is too small
  • Use 0.0 to apply format-specific defaults
Example:
media-converter --min-output-ratio 0.01 /source /dest
--skip-disk-check
boolean
default:"false"
Skip destination disk space verification.Warning: Use with cautionBehavior:
  • Bypasses disk space checks before conversion
  • May result in failed conversions if disk full
  • Useful for network drives or special filesystems
Example:
media-converter --skip-disk-check /source /dest

Flag Compatibility

Copy-Only Mode

When --copy-only is enabled, these flags are incompatible:
  • --photo-format
  • --photo-quality-avif
  • --photo-quality-webp
  • --video-codec
  • --video-crf
  • --video-acceleration
  • --adaptive-workers
  • --adaptive-workers-min
  • --adaptive-workers-max
  • --adaptive-workers-cpu-high
  • --adaptive-workers-cpu-low
  • --adaptive-workers-mem-low
  • --adaptive-workers-interval
Attempting to use conversion flags with --copy-only will result in an error before processing begins.

Build docs developers (and LLMs) love