Performance Benchmarks

Performance metrics for MediaProc plugins measured under standard conditions. These benchmarks help you understand expected processing times and resource usage.

Test Environment

  • Processor: Intel Core i7-10700K @ 3.80GHz
  • Memory: 32GB DDR4
  • Disk: 1TB SSD (NVMe)
  • OS: Ubuntu 22.04 LTS
  • Node.js: v18.16.0

Image Plugin

Performance metrics for image processing operations using Sharp.

Transformation Operations

OperationInput SizeOutput SizeTimeMemory Used
Resize (4K → 1080p)36MB4.2MB245ms156MB
Format Convert (PNG → WebP)8.5MB2.1MB127ms98MB
Grayscale (8K image)72MB72MB418ms312MB
Blur (4K)36MB36MB892ms198MB
Compress (Quality 80)25MB3.8MB156ms125MB
Batch Resize (100 images)5GB total1.2GB45s512MB

Advanced Operations

OperationInput SizeTimeMemory
Smart Crop (AI-based)15MB324ms234MB
Watermark (1080p)8.5MB189ms145MB
Composite (merge 5 images)50MB total445ms298MB
CLAHE Enhancement20MB276ms187MB
Dominant Color Extract30MB89ms156MB

Batch Processing Speed

  • 100 images (avg 5MB each): ~45 seconds (449ms per image)
  • 1000 images: ~7.2 minutes (432ms per image)
  • 10000 images: ~71 minutes (426ms per image)

Video Plugin

Performance metrics for video processing operations using FFmpeg.

Encoding Operations

OperationInput FileBitrateDurationOutput SizeTime
Compress (CRF 23)2GB / 60min5Mbps60 min225MB12m 34s
Transcode (H.264 → H.265)1.5GB / 45min4Mbps45 min135MB18m 47s
Transcode to WebM1.2GB / 30min2Mbps30 min45MB8m 12s
Resize (4K → 1080p)3GB / 90min6Mbps90 min405MB22m 15s

Extraction Operations

OperationInputOutputTime
Extract Audio500MB video45MB audio8s
Extract Frame (1 frame)1GB video12MB image3s
Extract Frames (1 per second)2GB / 120s video1440 frames / 1.2GB45s
Generate Thumbnail500MB video2MB image2s

Real-time Processing

ResolutionCodecFPSCPU UsageMemory
1080pH.26424fps65%245MB
1080pVP924fps85%312MB
4KH.26524fps92%456MB
4KAV124fps98%512MB

Audio Plugin

Performance metrics for audio processing operations.

Format Conversion

OperationInput FileDurationOutput SizeTime
Convert (MP3 → WAV)45MB45 min1.2GB3.2s
Convert (WAV → MP3 320k)1.2GB45 min42MB4.1s
Convert (FLAC → AAC)850MB45 min78MB3.8s
Batch Convert (50 files)2.3GB totalVarious1.1GB total4m 23s

Processing Operations

OperationDurationTimeMemory
Normalize (loudness)45 min2.1s145MB
Merge (5 tracks)45 min total8.3s234MB
Extract Audio from Video60 min video6.2s156MB
Trim (exact frame)45 min1.8s89MB

Concurrent Processing

FilesTotal DurationTimeCPUMemory
5 files parallel4.5 hours12.3s75%378MB
10 files parallel9 hours24.1s88%512MB
20 files parallel18 hours48.5s96%756MB

Performance Tips

Image Plugin

Info
  • Use WebP format for 25-30% file size reduction vs JPEG - Batch process images with the batch command for better throughput - Set appropriate quality levels (75-85 recommended for most use cases) - Resize first before applying filters to improve performance

Video Plugin

Info
  • Use H.265 codec for 40-50% file size reduction vs H.264 - GPU acceleration available with -gpu flag (2-4x faster) - Reduce resolution before complex effects - Batch multiple videos for better disk I/O optimization

Audio Plugin

Info
  • MP3 @ 320k balances quality and file size - Normalization before merging prevents level issues - Batch convert multiple files for efficiency - Consider FLAC for lossless archival

Scaling Performance

Parallel Processing

All plugins support parallel processing for batch operations:

# Process 100 images in parallel
mediaproc image batch --input /path/*.jpg --workers 8

Memory Management

For large batch operations, adjust worker count based on available memory:

  • 2GB available: --workers 2
  • 8GB available: --workers 4
  • 16GB available: --workers 8
  • 32GB+ available: --workers 16

Disk I/O Optimization

  • Use SSD for input/output directories
  • Separate source and destination directories on different disks
  • Monitor disk usage with mediaproc info --monitor

Limitations & Constraints

Warning
  • Maximum file size: 500GB (theoretical limit) - Maximum image dimensions: 256K x 256K pixels - Maximum audio channels: 32 - Concurrent processes: Limited by available CPU cores - Memory per operation: Limited to available RAM

Next Steps


Last Updated: January 2026
Benchmark Version: 2.1.0

Found an issue? Help us improve this page.

Edit on GitHub →