Advanced Usage
Advanced features and configurations.
Quality Tuning
Hardware Encoder Quality Scale
| Quality Value |
Description |
Use Case |
| 20-35 |
High quality |
Archival, important videos |
| 35-50 |
Balanced |
General use (default: 45) |
| 50-70 |
Smaller files |
Storage optimization |
| 70-100 |
Minimum size |
Previews, drafts |
# Archival quality
video-converter convert input.mp4 output.mp4 --quality 25
# Storage optimization
video-converter convert input.mp4 output.mp4 --quality 60
Software Encoder (libx265)
| CRF |
Description |
Bitrate Reduction |
| 18 |
Visually lossless |
~20% |
| 20 |
Excellent quality |
~40% |
| 22 |
Good quality |
~50% (default) |
| 24 |
Acceptable |
~60% |
| 28 |
Low quality |
~70% |
# Visually lossless
video-converter convert input.mp4 output.mp4 --encoder software --crf 18
# Maximum compression
video-converter convert input.mp4 output.mp4 --encoder software --crf 28
Presets (Software Encoder)
| Preset |
Speed |
Compression |
| ultrafast |
Fastest |
Lowest |
| veryfast |
Very fast |
Low |
| fast |
Fast |
Below average |
| medium |
Medium |
Average (default) |
| slow |
Slow |
Above average |
| slower |
Slower |
High |
| veryslow |
Very slow |
Highest |
# Fast encoding, larger file
video-converter convert input.mp4 output.mp4 --encoder software --preset fast
# Maximum compression, slow
video-converter convert input.mp4 output.mp4 --encoder software --preset veryslow
VMAF Quality Validation
Enable VMAF Checking
video-converter convert input.mp4 output.mp4 --vmaf
Set VMAF Threshold
# Require VMAF score >= 90
video-converter convert input.mp4 output.mp4 --vmaf --vmaf-threshold 90
VMAF Score Interpretation
| Score |
Quality |
| 93+ |
Excellent (imperceptible difference) |
| 85-93 |
Good (minor differences) |
| 75-85 |
Fair (noticeable differences) |
| < 75 |
Poor (significant degradation) |
Concurrent Processing
Resource Management
# Limit to 1 concurrent (low resource usage)
video-converter run --mode photos --concurrent 1
# Maximum parallelism (high resource usage)
video-converter run --mode photos --concurrent 4
CPU/Memory Considerations
| Concurrent |
CPU Usage |
Memory |
Recommended For |
| 1 |
Low |
~500MB |
Background, shared systems |
| 2 |
Medium |
~1GB |
Default, balanced |
| 4 |
High |
~2GB |
Dedicated conversion |
Session Recovery
Video Converter tracks conversion sessions for recovery:
# Resume interrupted session
video-converter resume
# Resume specific session
video-converter resume --session-id abc123
# List sessions
video-converter sessions
Custom FFmpeg Options
# Pass custom FFmpeg options
video-converter convert input.mp4 output.mp4 \
--ffmpeg-opts "-vf scale=1920:-1"
Scripting and Integration
JSON Output
# Get results as JSON
video-converter run --mode photos --output-format json > results.json
# Statistics as JSON
video-converter stats --format json
Exit Codes
| Code |
Meaning |
| 0 |
Success |
| 1 |
General error |
| 2 |
Invalid arguments |
| 3 |
File not found |
| 4 |
Conversion failed |
| 5 |
Validation failed |
Example Script
#!/bin/bash
# convert_and_notify.sh
video-converter run --mode photos --quiet
if [ $? -eq 0 ]; then
osascript -e 'display notification "Conversion complete" with title "Video Converter"'
else
osascript -e 'display notification "Conversion failed" with title "Video Converter"'
fi
Disk I/O
# Use SSD for temp files
export VIDEO_CONVERTER_TEMP=/Volumes/FastSSD/temp
video-converter run --mode photos
Memory
# Limit memory usage
export VIDEO_CONVERTER_MAX_MEMORY=4G
video-converter run --mode photos
Debugging
Verbose Mode
video-converter run --mode photos --verbose
Debug Mode
VIDEO_CONVERTER_LOG_LEVEL=DEBUG video-converter run --mode photos
FFmpeg Logs
video-converter convert input.mp4 output.mp4 --ffmpeg-loglevel verbose