@mediaproc/cli 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +202 -1399
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +21 -12
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/batch.d.ts +3 -0
  6. package/dist/commands/batch.d.ts.map +1 -0
  7. package/dist/commands/batch.js +269 -0
  8. package/dist/commands/batch.js.map +1 -0
  9. package/dist/commands/benchmark.d.ts +3 -0
  10. package/dist/commands/benchmark.d.ts.map +1 -0
  11. package/dist/commands/benchmark.js +124 -0
  12. package/dist/commands/benchmark.js.map +1 -0
  13. package/dist/commands/compare.d.ts +3 -0
  14. package/dist/commands/compare.d.ts.map +1 -0
  15. package/dist/commands/compare.js +102 -0
  16. package/dist/commands/compare.js.map +1 -0
  17. package/dist/commands/detect.d.ts +6 -0
  18. package/dist/commands/detect.d.ts.map +1 -0
  19. package/dist/commands/detect.js +90 -0
  20. package/dist/commands/detect.js.map +1 -0
  21. package/dist/commands/doctor.d.ts +3 -0
  22. package/dist/commands/doctor.d.ts.map +1 -0
  23. package/dist/commands/doctor.js +222 -0
  24. package/dist/commands/doctor.js.map +1 -0
  25. package/dist/commands/history.d.ts +15 -0
  26. package/dist/commands/history.d.ts.map +1 -0
  27. package/dist/commands/history.js +215 -0
  28. package/dist/commands/history.js.map +1 -0
  29. package/dist/commands/search.d.ts +3 -0
  30. package/dist/commands/search.d.ts.map +1 -0
  31. package/dist/commands/search.js +193 -0
  32. package/dist/commands/search.js.map +1 -0
  33. package/dist/commands/stats.d.ts +3 -0
  34. package/dist/commands/stats.d.ts.map +1 -0
  35. package/dist/commands/stats.js +155 -0
  36. package/dist/commands/stats.js.map +1 -0
  37. package/dist/commands/template.d.ts +3 -0
  38. package/dist/commands/template.d.ts.map +1 -0
  39. package/dist/commands/template.js +184 -0
  40. package/dist/commands/template.js.map +1 -0
  41. package/dist/commands/watch.d.ts +3 -0
  42. package/dist/commands/watch.d.ts.map +1 -0
  43. package/dist/commands/watch.js +106 -0
  44. package/dist/commands/watch.js.map +1 -0
  45. package/dist/commands/workspace.d.ts +3 -0
  46. package/dist/commands/workspace.d.ts.map +1 -0
  47. package/dist/commands/workspace.js +201 -0
  48. package/dist/commands/workspace.js.map +1 -0
  49. package/dist/utils/branding.d.ts +11 -0
  50. package/dist/utils/branding.d.ts.map +1 -0
  51. package/dist/utils/branding.js +59 -0
  52. package/dist/utils/branding.js.map +1 -0
  53. package/package.json +1 -1
  54. package/dist/commands/convert.d.ts +0 -7
  55. package/dist/commands/convert.d.ts.map +0 -1
  56. package/dist/commands/convert.js +0 -96
  57. package/dist/commands/convert.js.map +0 -1
  58. package/dist/commands/info.d.ts +0 -7
  59. package/dist/commands/info.d.ts.map +0 -1
  60. package/dist/commands/info.js +0 -117
  61. package/dist/commands/info.js.map +0 -1
  62. package/dist/commands/optimize.d.ts +0 -7
  63. package/dist/commands/optimize.d.ts.map +0 -1
  64. package/dist/commands/optimize.js +0 -196
  65. package/dist/commands/optimize.js.map +0 -1
  66. package/dist/commands/run.d.ts +0 -3
  67. package/dist/commands/run.d.ts.map +0 -1
  68. package/dist/commands/run.js +0 -16
  69. package/dist/commands/run.js.map +0 -1
  70. package/dist/commands/validate.d.ts +0 -3
  71. package/dist/commands/validate.d.ts.map +0 -1
  72. package/dist/commands/validate.js +0 -16
  73. package/dist/commands/validate.js.map +0 -1
package/README.md CHANGED
@@ -1,1530 +1,333 @@
1
1
  # MediaProc
2
2
 
3
- Universal media processing CLI with an extensible plugin architecture. One tool to process all your media - images, videos, audio, documents, and more.
3
+ > Universal media processing CLI with plugin architecture. One tool for images, videos, audio, and more.
4
4
 
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
- [![Version](https://img.shields.io/badge/version-0.6.0-blue.svg)](https://www.npmjs.com/package/@mediaproc/cli)
7
- [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org/)
8
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.3.3-blue)](https://www.typescriptlang.org/)
9
- [![Status](https://img.shields.io/badge/status-beta-green)](https://github.com/0xshariq/mediaproc)
10
- [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
11
-
12
- ---
13
-
14
- ## 📋 Table of Contents
15
-
16
- - [The Problem](#-the-problem)
17
- - [Our Solution](#-our-solution)
18
- - [Current Status](#-current-status)
19
- - [Features](#-features)
20
- - [Quick Start](#-quick-start)
21
- - [Available Plugins](#-available-plugins)
22
- - [Plugin Terminology](#-plugin-terminology)
23
- - [Documentation](#-documentation)
24
- - [Examples](#-examples)
25
- - [Development](#-development)
26
- - [Roadmap](#-roadmap)
27
- - [Contributing](#-contributing)
28
- - [Community](#-community)
29
- - [License](#-license)
30
-
31
- ---
32
-
33
- ## 🎯 The Problem
34
-
35
- Media processing in modern development workflows is **fragmented and complex**:
36
-
37
- ### Current Pain Points
38
-
39
- 1. **Too Many Tools**
40
-
41
- - FFmpeg for videos
42
- - ImageMagick for images
43
- - SoX for audio
44
- - Ghostscript for PDFs
45
- - Different tools for each media type
46
-
47
- 2. **Inconsistent Interfaces**
48
-
49
- - Each tool has different command syntax
50
- - Different parameter names and formats
51
- - Steep learning curve for each tool
52
- - Hard to remember all the commands
53
-
54
- 3. **Complex Workflows**
55
-
56
- - Chaining multiple tools together
57
- - Writing custom shell scripts
58
- - Managing dependencies across tools
59
- - Debugging is painful
60
-
61
- 4. **Lack of Flexibility**
62
-
63
- - Hard to extend with custom processing
64
- - No plugin ecosystem
65
- - Difficult to integrate into CI/CD
66
- - Limited automation capabilities
67
-
68
- 5. **Performance Issues**
69
- - Manual parallelization
70
- - No built-in batch processing
71
- - Memory management challenges
72
- - Inefficient for large files
73
-
74
- ### Real-World Scenarios
75
-
76
- **Web Developer:** "I need to resize 100 images, convert to WebP, and optimize for web. Should I use Sharp? ImageMagick? Write a Node script? Use Gulp/Webpack?"
77
-
78
- **Video Editor:** "I need to transcode videos, extract thumbnails, and create HLS streams. Do I write FFmpeg commands? Use a GUI tool? Build a custom pipeline?"
79
-
80
- **DevOps Engineer:** "I need to automate media processing in CI/CD. How do I make it reliable, fast, and easy to maintain across different media types?"
81
-
82
- **Content Manager:** "I need to batch process documents, add watermarks to images, and compress videos. I don't want to learn 5 different tools."
83
-
84
- ---
85
-
86
- ## 💡 Our Solution
87
-
88
- **MediaProc is a unified CLI that solves these problems:**
89
-
90
- ### Core Philosophy
91
-
92
- 🎯 **One Tool for Everything** - Process any media type with consistent commands
93
- 🔌 **Plugin Architecture** - Extend with official or community plugins
94
- ⚡ **Performance First** - Multi-threaded, streaming, optimized for large files
95
- 🎨 **Simple & Intuitive** - Clear commands, helpful errors, great DX
96
- 🔧 **Automation Ready** - Perfect for scripts, CI/CD, and workflows
97
- 🌍 **Community Driven** - Open source, extensible, third-party plugins welcome
98
-
99
- ### What Makes MediaProc Different
100
-
101
- | Feature | Traditional Tools | MediaProc |
102
- | ------------------ | -------------------------- | ------------------------------- |
103
- | **Interface** | Different for each tool | Unified, consistent CLI |
104
- | **Installation** | Install 5+ separate tools | One tool, add plugins as needed |
105
- | **Learning Curve** | Learn each tool separately | Learn once, use everywhere |
106
- | **Extensibility** | Limited or none | Built-in plugin system |
107
- | **Performance** | Manual optimization | Auto-parallelization, streaming |
108
- | **Automation** | Write custom scripts | Built-in pipeline workflows |
109
- | **Community** | Separate ecosystems | Unified plugin marketplace |
110
-
111
- ### How It Works
112
-
113
- ```bash
114
- # Traditional approach (multiple tools)
115
- convert input.jpg -resize 1920x1080 output.jpg
116
- ffmpeg -i input.mp4 -c:v h264 -crf 23 output.mp4
117
- sox input.wav -r 44100 output.mp3
118
- gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o output.pdf input.pdf
119
-
120
- # MediaProc approach (one tool, consistent syntax)
121
- mediaproc image resize input.jpg --width 1920 --height 1080
122
- mediaproc video transcode input.mp4 --codec h264 --crf 23
123
- mediaproc audio convert input.wav --samplerate 44100 --format mp3
124
- mediaproc document compress input.pdf --quality high
125
- ```
126
-
127
- ---
128
-
129
- ## 📊 Current Status
130
-
131
- **Version**: 0.6.0 (Beta - Production Ready!)
132
- **Status**: ✅ Image plugin (51 commands) + ✅ Video plugin (6 commands) + Audio plugin (5 commands) + Universal CLI
133
- **Next Release**: Audio & Document plugins (Q1 2026)
134
- **Expected v1.0**: Q2 2026
135
-
136
- ### Plugin Management
137
-
138
- MediaProc provides comprehensive plugin lifecycle management:
139
-
140
- - `mediaproc list` - List all installed plugins with versions
141
- - `mediaproc add <plugin>` - Install plugins from npm registry
142
- - `mediaproc remove <plugin>` - Safely uninstall plugins
143
- - `mediaproc delete <plugin>` - Delete plugins (alias for remove)
144
- - `mediaproc update [plugin]` - Update plugin(s) to latest versions
145
- - Without plugin name: updates all installed plugins
146
- - With plugin name: updates specific plugin
147
- - Shows version changes and update summary
148
- - `mediaproc validate [plugin]` - Validate plugin installation and integrity
149
- - Check plugin structure and dependencies
150
- - Verify command registrations
151
- - Detect issues before execution
152
-
153
- ### Universal Commands (Work Without Plugins)
154
-
155
- Core CLI commands available immediately after installation:
156
-
157
- **Media Operations:**
158
-
159
- - `mediaproc convert <input> <output>` - Auto-detect and suggest the conversion
160
- - `mediaproc info <file>` - Display comprehensive file information
161
- - `mediaproc optimize <file>` - Analyze and suggest optimization strategies
162
-
163
- **Help & Configuration:**
164
-
165
- - `mediaproc help [command]` - Show help for commands
166
- - `mediaproc init` - Initialize configuration file
167
- - `mediaproc config` - Manage configuration settings
168
- - `mediaproc run <command>` - Execute plugin commands
169
-
170
- ### Image Processing (@mediaproc/image)
171
-
172
- **Install:** `mediaproc add image`
173
-
174
- **51 Professional Commands Available:**
175
-
176
- **Transform & Resize** (10 commands)
177
-
178
- - `resize` - Resize with fit modes (cover, contain, fill, inside, outside)
179
- - `crop` - Extract rectangular regions with positioning
180
- - `rotate` - Any angle rotation with background control
181
- - `flip` - Vertical mirroring (top-bottom)
182
- - `flop` - Horizontal mirroring (left-right)
183
- - `auto-orient` - Auto-rotate based on EXIF orientation
184
- - `affine` - Apply affine transformation matrix (scale, shear, reflect)
185
- - `trim` - Auto-remove uniform borders
186
- - `extend` - Add padding/borders with custom colors
187
- - `thumbnail` - Generate thumbnails (64px to 512px)
188
-
189
- **Color & Tone** (10 commands)
190
-
191
- - `modulate` - Adjust brightness, saturation, hue
192
- - `gamma` - Gamma correction for midtones (0.1-3.0)
193
- - `tint` - Apply color tint overlays (RGB hex)
194
- - `grayscale` - Convert to black & white
195
- - `negate` - Create negative/inverted images
196
- - `normalize` - Auto-enhance contrast and brightness
197
- - `linear` - Apply linear formula: output = (a \* input) + b
198
- - `recomb` - Recombine RGB channels using matrix
199
- - `flatten` - Remove alpha transparency with background color
200
- - `unflatten` - Add alpha channel (RGB→RGBA)
201
-
202
- **Effects & Filters** (9 commands)
203
-
204
- - `blur` - Gaussian blur (0.3-1000 sigma)
205
- - `sharpen` - Enhance details and edges (flat/jagged modes)
206
- - `median` - Noise reduction filter (1-50 size)
207
- - `sepia` - Vintage sepia tone effect
208
- - `vignette` - Darken edges for artistic focus
209
- - `pixelate` - Retro pixel art effect (custom pixel size)
210
- - `threshold` - Binary black/white conversion (0-255)
211
- - `dilate` - Morphological dilation (expand bright regions)
212
- - `erode` - Morphological erosion (expand dark regions)
213
-
214
- **Advanced Operations** (6 commands)
215
-
216
- - `composite` - Layer images with blend modes (overlay, multiply, screen)
217
- - `extract` - Extract color channels (red, green, blue, alpha)
218
- - `border` - Add decorative frames with custom colors
219
- - `clahe` - Contrast-limited adaptive histogram equalization
220
- - `convolve` - Apply custom convolution kernels (sharpen, emboss, edge)
221
- - `boolean` - Perform boolean operations between images (AND, OR, XOR)
222
-
223
- **Smart/AI Operations** (6 commands)
224
-
225
- - `smart-crop` - Intelligent content-aware cropping (attention/entropy)
226
- - `auto-enhance` - Automatic color and contrast enhancement
227
- - `palette` - Extract dominant color palettes (2-256 colors)
228
- - `dominant-color` - Quick dominant color extraction
229
- - `grid` - Combine images into collage layouts
230
- - `batch` - Process multiple images at once with any operation
231
-
232
- **Utility** (10 commands)
233
-
234
- - `compress` - Advanced compression with quality control
235
- - `convert` - Format conversion (JPG, PNG, WebP, AVIF, TIFF, GIF)
236
- - `optimize` - Size optimization (up to 70% reduction, lossless/lossy)
237
- - `info` - Display detailed image metadata
238
- - `watermark` - Add watermarks with positioning and opacity
239
- - `stats` - Technical image statistics (channels, depth, color space)
240
- - `split` - Split image into grid tiles
241
- - `stack` - Stack images horizontally/vertically
242
- - `mirror` - Create mirror/kaleidoscope effects
243
- - `metadata` - View, export, or remove EXIF data
244
-
245
- **Format Support:**
246
-
247
- - Input: JPG, PNG, WebP, AVIF, TIFF, GIF, SVG, HEIF
248
- - Output: JPG, PNG, WebP, AVIF, TIFF, GIF
249
- - Modern formats: WebP (25-35% smaller), AVIF (50% smaller)
250
-
251
- **Professional Features:**
252
-
253
- - Quality control (1-100)
254
- - Dry-run mode (preview before executing)
255
- - Verbose logging
256
- - Built-in help for every command
257
- - Comprehensive error handling
258
- - File size reporting
259
-
260
- ### Video Processing (@mediaproc/video)
261
-
262
- **Install:** `mediaproc add video`
263
-
264
- **6 Professional Commands Available:**
265
-
266
- **Format & Quality**
267
-
268
- - `compress` - CRF-based compression with presets (ultrafast to veryslow)
269
- - H.264/H.265 codec support
270
- - Quality control via CRF (0-51)
271
- - Two-pass encoding option
272
- - Hardware acceleration support
273
- - `transcode` - Convert between formats with codec control
274
- - MP4, WebM, AVI, MKV, MOV support
275
- - Video: H.264, H.265, VP9, AV1
276
- - Audio: AAC, MP3, Opus, Vorbis
277
- - Custom bitrate and quality settings
278
-
279
- **Editing & Manipulation**
280
-
281
- - `trim` - Cut videos by time or percentage
282
- - Start/end time specification (HH:MM:SS)
283
- - Duration-based trimming
284
- - Percentage-based cutting
285
- - Frame-accurate cutting
286
- - `resize` - Scale videos to target resolution
287
- - Preset sizes: 4K, 1080p, 720p, 480p, 360p
288
- - Custom dimensions with aspect ratio preservation
289
- - Multiple scaling algorithms (fast/quality)
290
-
291
- **Merging & Extraction**
292
-
293
- - `merge` - Concatenate multiple videos
294
- - Fast concat mode (no re-encode)
295
- - Re-encode mode for different formats
296
- - Automatic format compatibility detection
297
- - `extract` - Extract media from videos
298
- - `extract-audio` - Extract audio tracks (MP3, AAC, WAV, FLAC)
299
- - `extract-frames` - Export frame sequences (JPG, PNG)
300
- - `extract-thumbnail` - Generate video thumbnails
301
-
302
- **Technical Features:**
303
-
304
- - FFmpeg-powered processing
305
- - Hardware acceleration (when available)
306
- - Progress tracking with ETA
307
- - Dry-run mode for preview
308
- - Comprehensive metadata display
309
- - File size reporting
310
- - Quality presets for common use cases
311
-
312
- ### Audio Processing (@mediaproc/audio)
313
-
314
- **Install:** Built-in with CLI (or standalone: `npm install -g @mediaproc/audio`)
315
-
316
- **5 Professional Commands Available:**
317
-
318
- **Format Conversion**
319
-
320
- - `convert` - Convert between audio formats
321
- - Formats: MP3, AAC, WAV, FLAC, OGG, Opus, M4A
322
- - Quality presets: low, medium, high, lossless
323
- - Bitrate control (128k, 192k, 256k, 320k)
324
- - Sample rate adjustment (44.1kHz, 48kHz, 96kHz)
325
- - Channel control (mono/stereo)
326
-
327
- **Extraction & Processing**
328
-
329
- - `extract` - Extract audio from video files
330
- - Support for all major video formats
331
- - Multiple output formats
332
- - Quality and bitrate control
333
- - Preserves audio metadata
334
-
335
- **Audio Enhancement**
336
-
337
- - `normalize` - Audio level normalization
338
- - EBU R128 loudness standard (loudnorm)
339
- - Peak normalization method
340
- - Target LUFS: -16 (broadcast), -23 (streaming), -14 (podcasts)
341
- - True peak limiting to prevent clipping
342
- - Consistent volume across files
343
-
344
- **Editing**
345
-
346
- - `trim` - Cut audio segments
347
- - Time-based trimming (HH:MM:SS or seconds)
348
- - Duration-based cutting
349
- - Optional fade-in/fade-out effects
350
- - Fast mode (stream copy, no re-encoding)
351
- - Frame-accurate cutting
352
-
353
- **Merging**
354
-
355
- - `merge` - Concatenate multiple audio files
356
- - Seamless joining of audio files
357
- - Optional crossfade between tracks
358
- - Automatic format normalization
359
- - Multi-file batch processing
360
-
361
- **Technical Features:**
362
-
363
- - FFmpeg/FFprobe powered processing
364
- - Comprehensive format support
365
- - Quality presets for common use cases
366
- - Progress tracking with detailed output
367
- - Dry-run mode for command preview
368
- - Metadata preservation
369
- - File size reporting
370
- - Built-in help for every command
371
-
372
- ✅ **Architecture** - Plugin system designed and implemented
373
- ✅ **Core CLI** - Command framework with plugin discovery
374
- ✅ **Built-in Plugins** - Image, Video, and Audio plugins ship with CLI
375
- ✅ **Plugin Registry** - Smart plugin management
376
- ✅ **Documentation** - Comprehensive guides and standards
377
- ✅ **Community Guidelines** - Contributing, security, code of conduct
378
-
379
- ### 🚧 In Development
380
-
381
- 🚧 **Testing** - Comprehensive test coverage
382
- 🚧 **Examples** - Real-world usage examples
383
-
384
- ### What's Next
385
-
386
- 📋 **Document Plugin** - PDF processing, OCR (Q2 2026)
387
- 📋 **Advanced Plugins** - 3D, streaming, AI features (Q2-Q3 2026)
388
- 📋 **Plugin Marketplace** - Community plugin directory (Q3 2026)
389
-
390
- See [Upcoming Features](docs/upcoming-features.md) for detailed roadmap.
391
-
392
- ---
393
-
394
- ## ✨ Features
395
-
396
- ### Core Architecture
397
-
398
- #### 🎁 **Built-in Plugins** (Out of the Box)
399
-
400
- MediaProc ships with essential plugins pre-installed, giving you immediate productivity:
401
-
402
- - **@mediaproc/image** - Professional image processing (49 commands)
403
-
404
- - Resize, crop, rotate, flip, convert formats
405
- - Filters: blur, sharpen, tint, grayscale, median
406
- - Color adjustments: modulate, gamma, normalize
407
- - Utilities: thumbnail, watermark, optimize, trim, extend
408
-
409
- - **@mediaproc/video** - Professional video processing (7 commands)
410
- - Compress: CRF-based compression with quality presets
411
- - Transcode: Format conversion (MP4, WebM, AVI, MKV)
412
- - Convert: Simple format conversion with remux support
413
- - Trim: Time-based cutting and clipping
414
- - Resize: Scale to 4K, 1080p, 720p, or custom
415
- - Merge: Concatenate multiple videos
416
- - Extract: Audio tracks, frame sequences, thumbnails
417
-
418
- - **@mediaproc/audio** - Professional audio processing (5 commands)
419
- - Convert: Format conversion (MP3, AAC, WAV, FLAC, OGG, Opus)
420
- - Extract: Extract audio from video files
421
- - Normalize: Audio level normalization (EBU R128 standard)
422
- - Trim: Cut audio segments with fade effects
423
- - Merge: Concatenate multiple audio files with crossfade
424
-
425
- #### 🔌 **Add-on Plugins** (Install as Needed)
426
-
427
- Extend functionality by installing additional plugins from npm:
6
+ [![Version](https://img.shields.io/badge/version-0.6.0--beta-blue.svg)](https://www.npmjs.com/package/@mediaproc/cli)
7
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org/)
428
8
 
429
9
  ```bash
430
- # Add more plugins from npm
431
- mediaproc add animation # GIF, WebP, Lottie optimization
432
- mediaproc add 3d # glTF, OBJ, FBX processing
433
- mediaproc add stream # HLS/DASH streaming
434
- mediaproc add ai # AI-powered enhancements
435
- ```
436
-
437
- #### 💡 **Why This Architecture?**
438
-
439
- **Universal CLI Benefits:**
440
-
441
- - ✅ Get started instantly with built-in plugins
442
- - ✅ Consistent command syntax across all plugins
443
- - ✅ Unified plugin management (`add`, `remove`, `list`)
444
- - ✅ Shared configuration and settings
445
- - ✅ Better integration between different media types
446
- - ✅ One tool to learn instead of many
447
-
448
- **Standalone Plugin Benefits:**
449
-
450
- - ✅ Each plugin can also run independently
451
- - ✅ Lightweight installs (only what you need)
452
- - ✅ Faster startup for single-purpose usage
453
- - ✅ Easy to distribute and share
10
+ # Install
11
+ npm install -g @mediaproc/cli
454
12
 
455
- **Example: Two Ways to Use**
13
+ # Process images
14
+ mediaproc image resize photo.jpg --width 1920 --height 1080
15
+ mediaproc image convert *.jpg --format webp --quality 85
456
16
 
457
- ```bash
458
- # Option 1: Use with universal CLI (recommended)
459
- npm install -g @mediaproc/cli # Includes @mediaproc/image built-in
460
- mediaproc image resize photo.jpg -w 1920
17
+ # Process videos
18
+ mediaproc video compress movie.mp4 --quality high
19
+ mediaproc video trim video.mp4 --start 00:01:30 --end 00:03:45
461
20
 
462
- # Option 2: Use plugin standalone (if you only need images)
463
- npm install -g @mediaproc/image
464
- mediaproc-image resize photo.jpg -w 1920
21
+ # Process audio
22
+ mediaproc audio convert song.wav --format mp3 --quality high
23
+ mediaproc audio normalize podcast.mp3 --target -16
465
24
  ```
466
25
 
467
- ### Current Features (v0.2.0)
468
-
469
- #### Core CLI
470
-
471
- - ✅ Plugin discovery and loading
472
- - ✅ Built-in plugins (ship with CLI)
473
- - ✅ Add-on plugins (install from npm)
474
- - ✅ Smart installation (auto-detects global/local)
475
- - ✅ Plugin registry with short names
476
- - ✅ Configuration management
477
- - ✅ TypeScript with strict mode
478
- - ✅ Cross-platform support
479
-
480
- #### Plugin Management
481
-
482
- - `mediaproc list` - List all plugins (built-in and installed)
483
- - `mediaproc add <plugin>` - Install add-on plugins from npm
484
- - `mediaproc remove <plugin>` - Uninstall add-on plugins
485
- - `mediaproc delete <plugin>` - Delete/uninstall plugins (alias: uninstall)
486
- - `--global` - Delete globally installed plugin
487
- - `--local` - Delete locally installed plugin
488
- - `--yes` - Skip confirmation prompt
489
- - `--verbose` - Show detailed output
490
- - `mediaproc update [plugin]` - Update plugin(s) to latest version
491
- - `--version <version>` - Update to specific version
492
- - `--global` - Update globally installed plugins
493
- - `--verbose` - Show detailed output
494
- - `mediaproc plugins` - Show available plugins
495
- - `mediaproc init` - Initialize configuration
496
- - `mediaproc config` - Manage settings
497
-
498
- #### Universal Commands (Work Without Plugins)
499
-
500
- - `mediaproc convert <input> <output>` - Auto-detect and convert any media file
501
- - `mediaproc info <file>` - Show file information for any media type
502
- - `mediaproc optimize <file>` - Suggest optimization strategy based on file type
503
-
504
- #### Image Processing (@mediaproc/image) ★ BUILT-IN
505
-
506
- **40 Professional Commands Ready to Use:**
507
-
508
- **Transform & Resize** (7 commands)
509
-
510
- - `resize` - Resize with fit modes (cover, contain, fill, inside, outside)
511
- - `crop` - Extract rectangular regions with positioning
512
- - `rotate` - Any angle rotation with background control
513
- - `flip` - Horizontal/vertical/both mirroring
514
- - `trim` - Auto-remove uniform borders
515
- - `extend` - Add padding/borders with custom colors
516
- - `thumbnail` - Generate thumbnails (64px to 512px)
517
-
518
- **Color & Tone** (6 commands)
519
-
520
- - `modulate` - Adjust brightness, saturation, hue
521
- - `gamma` - Gamma correction for midtones (0.1-3.0)
522
- - `tint` - Apply color tint overlays (RGB hex)
523
- - `grayscale` - Convert to black & white
524
- - `negate` - Create negative/inverted images
525
- - `normalize` - Auto-enhance contrast and brightness
526
-
527
- **Effects & Filters** (6 commands)
528
-
529
- - `blur` - Gaussian blur (0.3-1000 sigma)
530
- - `sharpen` - Enhance details and edges (flat/jagged modes)
531
- - `median` - Noise reduction filter (1-50 size)
532
- - `sepia` - Vintage sepia tone effect
533
- - `vignette` - Darken edges for artistic focus
534
- - `pixelate` - Retro pixel art effect (custom pixel size)
535
-
536
- **Advanced Operations** (6 commands)
537
-
538
- - `composite` - Layer images with blend modes
539
- - `extract` - Extract color channels or regions
540
- - `border` - Add decorative frames
541
- - `clahe` - Contrast-limited adaptive histogram equalization
542
- - `convolve` - Apply custom convolution kernels
543
- - `text` - Add text overlays with styling
544
-
545
- **Utility & Metadata** (8 commands)
546
-
547
- - `convert` - Format conversion
548
- - `optimize` - Smart size optimization
549
- - `compress` - Advanced compression control
550
- - `watermark` - Add watermarks with positioning
551
- - `info` - Display image metadata
552
- - `metadata` - Manage EXIF/IPTC data
553
- - `thumbnail` - Generate optimized thumbnails
554
- - `stats` - Technical image statistics
555
-
556
- **Format Support:**
557
-
558
- - Input: JPG, PNG, WebP, AVIF, TIFF, GIF, SVG, HEIF
559
- - Output: JPG, PNG, WebP, AVIF, TIFF, GIF
560
- - Modern formats: WebP (25-35% smaller), AVIF (50% smaller)
561
-
562
- **Professional Features:**
563
-
564
- - Quality control (1-100)
565
- - Dry-run mode (preview before executing)
566
- - Verbose logging
567
- - Built-in help for every command
568
- - Comprehensive error handling
569
- - File size reporting
570
-
571
- See [plugins/image/README.md](plugins/image/README.md) for complete image plugin documentation.
572
-
573
- ### Planned Features (Add-on Plugins)
574
-
575
- #### Document Processing (@mediaproc/document) - Q2 2026
576
-
577
- - PDF compression
578
- - Page extraction and splitting
579
- - OCR text extraction
580
- - PDF merging
581
- - Format conversion
582
- - Watermarking
583
-
584
- #### Advanced Features (Q3-Q4 2026)
585
-
586
- - Animation optimization (GIF, WebP, Lottie)
587
- - 3D model optimization
588
- - Metadata management
589
- - HLS/DASH streaming
590
- - AI-assisted processing
591
- - Pipeline workflows
592
-
593
- See [docs/upcoming-features.md](docs/upcoming-features.md) for complete feature list.
594
-
595
- ---
596
-
597
- ## 🚀 Quick Start
26
+ ## Why MediaProc?
598
27
 
599
- ### Prerequisites
28
+ **The Problem:** Modern development workflows require multiple tools for media processing:
29
+ - FFmpeg for videos
30
+ - ImageMagick for images
31
+ - SoX for audio
32
+ - Each with different syntax, steep learning curves, and complex workflows
600
33
 
601
- - **Node.js** >= 18.0.0
602
- - **pnpm** (recommended) or npm
603
- - **System dependencies** (installed as needed by plugins):
604
- - FFmpeg (for video/audio)
605
- - Sharp/libvips (for images)
606
- - Ghostscript (for PDFs)
34
+ **The Solution:** MediaProc provides a unified CLI with consistent commands across all media types.
607
35
 
608
- ### Installation
36
+ | Feature | Traditional | MediaProc |
37
+ |---------|------------|-----------|
38
+ | **Tools Needed** | 5+ separate tools | One tool |
39
+ | **Installation** | Complex setup | `npm install -g @mediaproc/cli` |
40
+ | **Syntax** | Different for each | Consistent everywhere |
41
+ | **Extensibility** | Limited | Plugin architecture |
609
42
 
610
- #### From npm (when published)
43
+ ## Quick Start
611
44
 
612
45
  ```bash
613
- # Install the universal CLI (includes built-in plugins)
46
+ # Install CLI
614
47
  npm install -g @mediaproc/cli
615
48
 
616
- # Start using immediately - image plugin is built-in!
617
- mediaproc image resize photo.jpg -w 1920
618
- mediaproc image convert photo.jpg -f webp
49
+ # Install plugins (or use built-in ones)
50
+ mediaproc add image
51
+ mediaproc add video
52
+ mediaproc add audio
619
53
 
620
- # Check version and list plugins
621
- mediaproc --version
54
+ # List available plugins
622
55
  mediaproc list
623
- ```
624
-
625
- #### From Source (current)
626
-
627
- ```bash
628
- # Clone repository
629
- git clone https://github.com/0xshariq/mediaproc.git
630
- cd mediaproc
631
-
632
- # Install dependencies
633
- pnpm install
634
-
635
- # Build all packages (including built-in plugins)
636
- pnpm build:all
637
56
 
638
- # Link globally
639
- cd plugins/image && pnpm link --global
640
- cd ../.. && pnpm link --global
641
-
642
- # Verify
643
- mediaproc --version
644
- mediaproc list # Should show @mediaproc/image as built-in
645
- ```
646
-
647
- ### Basic Usage
648
-
649
- ```bash
650
- # Image processing (built-in - works immediately!)
651
- mediaproc image resize photo.jpg --width 1920 --height 1080
652
- mediaproc image convert photo.jpg -f webp -q 85
653
- mediaproc image thumbnail photo.jpg -s 300
654
-
655
- # Get help anytime
57
+ # Get help
656
58
  mediaproc --help
657
59
  mediaproc image --help
658
- mediaproc image resize --help
659
60
  ```
660
61
 
661
- ### Adding More Plugins
662
-
663
- ```bash
664
- # Install additional plugins from npm
665
- mediaproc add video # Video processing
666
- mediaproc add audio # Audio processing
667
- mediaproc add document # PDF processing
668
-
669
- # Update plugins to latest version
670
- mediaproc update # Update all plugins
671
- mediaproc update image # Update specific plugin
672
-
673
- # View all plugins (built-in + installed)
674
- mediaproc list
675
-
676
- # Example output:
677
- # 📦 Built-in Plugins:
678
- # ✓ image ★ BUILT-IN
679
- #
680
- # 🔌 User-Installed:
681
- # ✓ video
682
- # ✓ audio
683
- ```
684
-
685
- # View installed plugins
686
-
687
- mediaproc list
688
-
689
- ````
690
-
691
- ---
692
-
693
- ## 📦 Available Plugins
694
-
695
- ### Official Plugins
696
-
697
- | Plugin | Commands | Status | Description |
698
- | ---------------------------------- | -------- | -------------- | ---------------------------------------- |
699
- | **[image](plugins/image)** | 10 | 🚧 In Progress | Resize, convert, optimize, filter images |
700
- | **[video](plugins/video)** | 6 | 🚧 In Progress | Transcode, compress, trim, merge videos |
701
- | **[audio](plugins/audio)** | 5 | 🚧 In Progress | Convert, normalize, trim, merge audio |
702
- | **[document](plugins/document)** | 5 | 📋 Planned | Process PDFs and documents |
703
- | **[animation](plugins/animation)** | 2 | 📋 Planned | Optimize GIFs and animations |
704
- | **[3d](plugins/3d)** | 4 | 📋 Planned | Optimize 3D models |
705
- | **[metadata](plugins/metadata)** | 4 | 📋 Planned | Manage media metadata |
706
- | **[stream](plugins/stream)** | 3 | 📋 Planned | HLS/DASH packaging |
707
- | **[ai](plugins/ai)** | 4 | 💡 Concept | AI-powered processing |
708
- | **[pipeline](plugins/pipeline)** | 2 | 📋 Planned | Workflow automation |
709
-
710
- **Legend:** ✅ Complete | 🚧 In Progress | 📋 Planned | 💡 Concept
711
-
712
- ### Community Plugins
713
-
714
- Third-party plugins are welcome! See [Creating Plugins](#-creating-your-own-plugins) below.
715
-
716
- **Plugin Development Resources:**
717
-
718
- - 📖 [Plugin Integration Guide](docs/plugin-integration-guide.md) - Complete tutorial
719
- - 🏗️ [Plugin Template](https://github.com/0xshariq/mediaproc-plugin-template) - Starter template (coming soon)
720
- - 📚 [Example Plugins](https://github.com/0xshariq/mediaproc-examples) - Real examples (coming soon)
721
-
722
- _Coming soon: Browse community plugins at https://plugins.mediaproc.dev_
723
-
724
- ---
725
-
726
- ## � Plugin Terminology
727
-
728
- ### Important: No Plugins Are Pre-Installed!
729
-
730
- MediaProc CLI is lightweight and contains **NO plugin code**. All plugins must be explicitly installed.
731
-
732
- ### Plugin Types
733
-
734
- 1. **Official Plugins** (`@mediaproc/*`) - Maintained by MediaProc team
735
- - Example: `@mediaproc/image`, `@mediaproc/video`
736
- - High quality, regularly updated
737
- - Install: `mediaproc add image`
738
-
739
- 2. **Community Plugins** (`mediaproc-*`) - Community-maintained
740
- - Example: `mediaproc-custom-filter`
741
- - Follow community standards
742
- - Install: `mediaproc add mediaproc-custom-filter`
743
-
744
- 3. **Third-Party Plugins** - Any compatible npm package
745
- - No naming convention required
746
- - Must implement MediaProc plugin interface
747
- - Install: `mediaproc add package-name`
748
-
749
- ### Quick Reference
750
-
751
- ```bash
752
- # Install CLI (no plugins included)
753
- npm install -g @mediaproc/cli
754
-
755
- # Browse available plugins
756
- mediaproc plugins
62
+ ## Available Plugins
757
63
 
758
- # Install official plugins
759
- mediaproc add image # Image processing
760
- mediaproc add video # Video processing
64
+ ### Built-in Plugins
761
65
 
762
- # Check what's installed
763
- mediaproc list
764
-
765
- # Use installed plugins
766
- mediaproc image resize photo.jpg -w 800
767
- ```
768
-
769
- ### Updating Plugins
770
-
771
- Keep plugins up-to-date for latest features and bug fixes:
66
+ Included with CLI installation:
772
67
 
68
+ #### Image Plugin (51 commands)
773
69
  ```bash
774
- # Update all installed plugins
775
- mediaproc update
776
-
777
- # Update specific plugin
778
- mediaproc update image
779
- mediaproc update video
780
-
781
- # Update with scope control
782
- mediaproc update --global # Global plugins only
783
- mediaproc update image --local # Local plugin only
784
-
785
- # Verbose output
786
- mediaproc update --verbose
70
+ mediaproc image resize photo.jpg --width 1920
71
+ mediaproc image convert *.png --format webp
72
+ mediaproc image compress image.jpg --quality 85
73
+ mediaproc image blur photo.jpg --sigma 10
74
+ mediaproc image watermark photo.jpg --text "Copyright 2026"
787
75
  ```
788
76
 
789
- See full documentation for version control and advanced options.
790
- - Example: `mediaproc-custom-filter`
791
- - Full name required: `mediaproc update mediaproc-custom-filter`
792
-
793
- 3. **Third-Party Plugins** - ◇ THIRD-PARTY
794
- - Any other npm package
795
- - Full package name: `mediaproc update @company/plugin-name`
796
-
797
- **What the update command does:**
77
+ **Commands:** resize, crop, rotate, flip, convert, compress, optimize, blur, sharpen, grayscale, tint, watermark, thumbnail, and 36 more...
798
78
 
799
- 1. **Detects Plugin Type**: Identifies official, community, or third-party plugins
800
- 2. **Detects Installation Scope**: Automatically determines if plugins are installed globally or locally
801
- 3. **Fetches Latest Versions**: Checks npm registry for the newest versions (or specific version)
802
- 4. **Updates Dependencies**: Uses the appropriate package manager (npm, pnpm, yarn, bun, deno)
803
- 5. **Shows Changes**: Displays version changes (old → new)
804
- 6. **Auto-Reload**: Plugins are automatically available after update
79
+ **Formats:** JPG, PNG, WebP, AVIF, TIFF, GIF, SVG
805
80
 
806
- **Examples:**
81
+ [Full Image Plugin Documentation →](plugins/image/README.md)
807
82
 
83
+ #### Video Plugin (6 commands)
808
84
  ```bash
809
- # Update all plugins (recommended)
810
- $ mediaproc update
811
- Updating all MediaProc plugins...
812
- All MediaProc plugins updated successfully
813
-
814
- # Update official plugin to latest
815
- $ mediaproc update image
816
- ✓ Detecting plugin type for image...
817
- ✓ image ★ OFFICIAL updated successfully (1.2.0 → 1.2.2)
818
-
819
- # Update to specific version
820
- $ mediaproc update image --version 1.2.1
821
- ✓ image ★ OFFICIAL updated successfully (1.2.0 → 1.2.1)
822
-
823
- # Update community plugin
824
- $ mediaproc update mediaproc-custom-filter
825
- ✓ mediaproc-custom-filter ◆ COMMUNITY updated successfully
826
-
827
- # Update with verbose output
828
- $ mediaproc update image --verbose
829
- ℹ Package manager: pnpm
830
- ℹ Plugin type: ★ OFFICIAL
831
- ℹ Package name: @mediaproc/image
832
- ℹ Current version: 1.2.0
833
- ℹ Running: pnpm add @mediaproc/image
834
- ✓ image ★ OFFICIAL updated successfully (1.2.0 → 1.2.2)
85
+ mediaproc video compress movie.mp4 --quality medium
86
+ mediaproc video transcode video.mp4 --format webm --codec vp9
87
+ mediaproc video trim video.mp4 --start 10 --end 60
88
+ mediaproc video resize 4k-video.mp4 --preset 1080p
89
+ mediaproc video merge video1.mp4 video2.mp4 video3.mp4
90
+ mediaproc video extract movie.mp4 --type audio --output audio.mp3
835
91
  ```
836
92
 
837
- **📘 Full Guide:** See [Plugin Terminology Guide](docs/plugin-terminology.md) for detailed explanations.
838
-
839
- ---
93
+ **Commands:** compress, transcode, trim, resize, merge, extract
840
94
 
841
- ### Deleting Plugins
95
+ **Formats:** MP4, WebM, AVI, MKV, MOV
842
96
 
843
- Remove plugins you no longer need to free up disk space:
97
+ [Full Video Plugin Documentation →](plugins/video/README.md)
844
98
 
99
+ #### Audio Plugin (5 commands)
845
100
  ```bash
846
- # Delete a plugin (auto-detects installation scope)
847
- mediaproc delete image
848
- mediaproc delete video
849
-
850
- # Delete specific scope
851
- mediaproc delete image --global # Delete globally installed
852
- mediaproc delete image --local # Delete locally installed
853
-
854
- # Skip confirmation prompt
855
- mediaproc delete image --yes # No confirmation
856
-
857
- # Verbose output
858
- mediaproc delete image --verbose # Show detailed information
101
+ mediaproc audio convert song.wav --format mp3 --quality high
102
+ mediaproc audio normalize podcast.mp3 --target -16
103
+ mediaproc audio trim audio.wav --start 10 --duration 30
104
+ mediaproc audio merge track1.mp3 track2.mp3 track3.mp3
105
+ mediaproc audio extract video.mp4 --format mp3
859
106
  ```
860
107
 
861
- **Plugin Type Detection:**
862
-
863
- The delete command automatically detects and handles three types of plugins:
108
+ **Commands:** convert, normalize, trim, merge, extract
864
109
 
865
- 1. **Official Plugins** (`@mediaproc/*`) - OFFICIAL
866
- ```bash
867
- mediaproc delete image # Short name
868
- mediaproc delete @mediaproc/image # Full name
869
- ```
110
+ **Formats:** MP3, AAC, WAV, FLAC, OGG, Opus
870
111
 
871
- 2. **Community Plugins** (`mediaproc-*`) - ◆ COMMUNITY
872
- ```bash
873
- mediaproc delete mediaproc-custom-filter # Full name required
874
- ```
112
+ [Full Audio Plugin Documentation →](plugins/audio/README.md)
875
113
 
876
- 3. **Third-Party Plugins** - ◇ THIRD-PARTY
877
- ```bash
878
- mediaproc delete @company/plugin-name # Full package name
879
- ```
114
+ ### Coming Soon
880
115
 
881
- **What the delete command does:**
116
+ - **Document** - PDF processing (Q2 2026)
117
+ - **Animation** - GIF/Lottie optimization (Q2 2026)
118
+ - **3D** - 3D model processing (Q3 2026)
119
+ - **Stream** - HLS/DASH streaming (Q3 2026)
120
+ - **AI** - AI-powered features (Q3 2026)
882
121
 
883
- 1. **Detects Plugin Type**: Identifies official, community, or third-party plugins
884
- 2. **Detects Installation Scope**: Automatically determines if plugin is installed globally or locally
885
- 3. **Confirms Deletion**: Shows confirmation prompt (skip with `--yes`)
886
- 4. **Uninstalls Package**: Uses the appropriate package manager (npm, pnpm, yarn, bun)
887
- 5. **Shows Status**: Displays deletion status with plugin type badge
888
- 6. **Frees Memory**: Removes all plugin files from disk
889
-
890
- **Examples:**
122
+ ## Plugin Management
891
123
 
892
124
  ```bash
893
- # Delete a plugin
894
- mediaproc delete image
895
- mediaproc delete video --global
896
-
897
- # Skip confirmation
898
- mediaproc delete image --yes
899
-
900
- # Alias: uninstall
901
- mediaproc uninstall image
902
- ```
903
-
904
- **📘 Full Guide:** See [Plugin Terminology Guide](docs/plugin-terminology.md) for detailed explanations.
905
-
906
- ---
907
-
908
- ## �📚 Documentation
909
-
910
- Comprehensive documentation is available in the [docs/](docs/) folder:
911
-
912
- ### Core Documentation
913
-
914
- - **[Plugin Terminology](docs/plugin-terminology.md)** - **START HERE!** Clear definitions and common misconceptions
915
-
916
- - Official vs Community vs Third-Party plugins
917
- - No plugins are pre-installed (explained)
918
- - Installation workflow and plugin states
919
- - Best practices and FAQ
920
-
921
- - **[Plugin Architecture](docs/plugin-architecture.md)** - How the plugin system works
922
-
923
- - On-demand loading architecture
924
- - Plugin discovery and lifecycle
925
- - Why no auto-loading
926
- - Technical implementation
927
-
928
- - **[Plugin System](docs/plugin-system.md)** - Complete guide to the plugin architecture
929
-
930
- - How plugins work
931
- - Plugin discovery and loading
932
- - Creating plugins
933
- - **Third-party plugin standards**
934
- - Plugin submission process
935
- - Quality standards
936
- - Testing and publishing
937
-
938
- - **[Configuration](docs/configuration.md)** - Configure MediaProc for your workflow
939
-
940
- - Configuration file format
941
- - Global and project-level settings
942
- - Plugin-specific options
943
- - Environment variables
944
- - Pipeline configuration
945
-
946
- - **[Upcoming Features](docs/upcoming-features.md)** - Roadmap and planned features
947
- - Phase 1: Core plugins (Q1-Q2 2026)
948
- - Phase 2: Advanced plugins (Q3 2026)
949
- - Phase 3: AI & future-proof (Q4 2026)
950
- - Long-term vision (2027+)
951
-
952
- ### Plugin Documentation
953
-
954
- - **[Image Plugin Documentation](docs/image-plugin-documentation.md)** - Complete reference for the Image Plugin
955
- - All 40 commands documented
956
- - Usage examples and workflows
957
- - Best practices and tips
958
- - Social media presets
959
- - Real-world use cases
960
- - Troubleshooting guide
961
-
962
- ### Community Guides
963
-
964
- - **[Contributing](CONTRIBUTING.md)** - How to contribute to MediaProc
965
-
966
- - Reporting bugs
967
- - Suggesting features
968
- - Pull request guidelines
969
- - Development setup
970
- - Plugin development
971
-
972
- - **[Security](SECURITY.md)** - Security policy and vulnerability reporting
973
-
974
- - Supported versions
975
- - Reporting vulnerabilities
976
- - Security best practices
977
- - Disclosure policy
978
-
979
- - **[Code of Conduct](CODE_OF_CONDUCT.md)** - Community guidelines
980
-
981
- - Our pledge
982
- - Standards and expectations
983
- - Enforcement
984
- - Reporting process
125
+ # List installed plugins
126
+ mediaproc list
985
127
 
986
- - **[Changelog](CHANGELOG.md)** - Release history and changes
987
- - **[License](LICENSE)** - MIT License
128
+ # Install plugins
129
+ mediaproc add <plugin-name>
988
130
 
989
- ### External Resources (Coming Soon)
131
+ # Remove plugins
132
+ mediaproc remove <plugin-name>
990
133
 
991
- - 🌐 Website: https://mediaproc.dev
992
- - 📖 Full Docs: https://docs.mediaproc.dev
993
- - 🎓 Tutorials: https://tutorials.mediaproc.dev
994
- - 📦 Plugin Marketplace: https://plugins.mediaproc.dev
995
- - 💻 GitHub: https://github.com/0xshariq/mediaproc
134
+ # Update plugins
135
+ mediaproc update # Update all
136
+ mediaproc update <plugin> # Update specific
996
137
 
997
- ---
138
+ # Browse available plugins
139
+ mediaproc plugins
140
+ ```
998
141
 
999
- ## 💡 Examples
142
+ ## Examples
1000
143
 
1001
144
  ### Image Processing
1002
145
 
1003
146
  ```bash
1004
- # Resize image
147
+ # Resize for web
1005
148
  mediaproc image resize photo.jpg --width 1920 --height 1080 --fit cover
1006
149
 
1007
- # Convert format
1008
- mediaproc image convert photo.jpg --format webp --quality 85
150
+ # Batch convert to WebP
151
+ mediaproc image convert *.jpg --format webp --quality 85
1009
152
 
1010
- # Apply filter
1011
- mediaproc image grayscale photo.jpg --output bw-photo.jpg
153
+ # Create thumbnails
154
+ mediaproc image thumbnail photo.jpg --size 256 --output thumb.jpg
1012
155
 
1013
- # Watermark
1014
- mediaproc image watermark photo.jpg --text "© 2025" --position bottom-right
156
+ # Add watermark
157
+ mediaproc image watermark photo.jpg --text "© 2026" --position southeast
1015
158
 
1016
- # Batch processing
1017
- for img in photos/*.jpg; do
1018
- mediaproc image convert "$img" --format webp --quality 85
1019
- done
1020
- ````
159
+ # Optimize for web
160
+ mediaproc image optimize image.jpg --quality 80
161
+ ```
1021
162
 
1022
163
  ### Video Processing
1023
164
 
1024
165
  ```bash
1025
166
  # Compress video
1026
- mediaproc video compress large-video.mp4 --quality 80 --codec h264
167
+ mediaproc video compress movie.mp4 --quality medium --output compressed.mp4
1027
168
 
1028
- # Transcode format
1029
- mediaproc video transcode input.avi --format mp4
169
+ # Convert to WebM
170
+ mediaproc video transcode video.mp4 --format webm --codec vp9
1030
171
 
1031
- # Extract frames
1032
- mediaproc video extract video.mp4 --fps 1 --format png
172
+ # Cut segment
173
+ mediaproc video trim long-video.mp4 --start 00:10:00 --end 00:15:00
1033
174
 
1034
- # Trim video
1035
- mediaproc video trim video.mp4 --start 00:01:30 --end 00:02:45
175
+ # Scale down
176
+ mediaproc video resize 4k-video.mp4 --preset 1080p
1036
177
 
1037
- # Merge videos
1038
- mediaproc video merge video1.mp4 video2.mp4 video3.mp4 --output combined.mp4
178
+ # Extract audio
179
+ mediaproc video extract movie.mp4 --type audio --output soundtrack.mp3
1039
180
  ```
1040
181
 
1041
182
  ### Audio Processing
1042
183
 
1043
184
  ```bash
1044
- # Convert format
1045
- mediaproc audio convert song.wav --format mp3 --bitrate 320k
185
+ # Convert to MP3
186
+ mediaproc audio convert song.wav --format mp3 --quality 320k
1046
187
 
1047
188
  # Normalize volume
1048
- mediaproc audio normalize podcast.mp3 --target -16
1049
-
1050
- # Extract audio from video
1051
- mediaproc audio extract video.mp4 --format flac
189
+ mediaproc audio normalize podcast.mp3 --target -16 --output normalized.mp3
1052
190
 
1053
- # Trim audio
1054
- mediaproc audio trim song.mp3 --start 00:30 --end 03:45
1055
- ```
191
+ # Merge tracks
192
+ mediaproc audio merge intro.mp3 main.mp3 outro.mp3 --output complete.mp3
1056
193
 
1057
- ### Pipeline Workflows
1058
-
1059
- ```yaml
1060
- # workflow.yaml
1061
- name: "Optimize Images for Web"
1062
- description: "Batch image optimization pipeline"
1063
-
1064
- steps:
1065
- - plugin: image
1066
- command: resize
1067
- options:
1068
- width: 1920
1069
- height: 1080
1070
- fit: contain
1071
-
1072
- - plugin: image
1073
- command: convert
1074
- options:
1075
- format: webp
1076
- quality: 85
1077
-
1078
- - plugin: image
1079
- command: optimize
1080
- options:
1081
- level: 9
1082
- ```
1083
-
1084
- ```bash
1085
- # Run pipeline
1086
- mediaproc run workflow.yaml --input images/ --output optimized/
194
+ # Extract from video
195
+ mediaproc audio extract video.mp4 --format flac
1087
196
  ```
1088
197
 
1089
- _Note: Image processing commands are **fully implemented and ready to use**! Video, audio, and other commands are planned for Q1-Q2 2026. See [Current Status](#-current-status) for details._
1090
-
1091
- ---
1092
-
1093
- ## 🔧 Development
1094
-
1095
- ### Setup Development Environment
198
+ ## CLI Commands
1096
199
 
1097
- ```bash
1098
- # Clone repository
1099
- git clone https://github.com/0xshariq/mediaproc.git
1100
- cd mediaproc
1101
-
1102
- # Install dependencies
1103
- pnpm install
200
+ ### Plugin Management
201
+ - `mediaproc add <plugin>` - Install plugin
202
+ - `mediaproc remove <plugin>` - Uninstall plugin
203
+ - `mediaproc list` - List installed plugins
204
+ - `mediaproc plugins` - Browse available plugins
205
+ - `mediaproc update [plugin]` - Update plugin(s)
1104
206
 
1105
- # Build all packages
1106
- pnpm build
207
+ ### Help & Info
208
+ - `mediaproc --help` - Show help
209
+ - `mediaproc <plugin> --help` - Plugin-specific help
210
+ - `mediaproc --version` - Show version
1107
211
 
1108
- # Link CLI globally
1109
- pnpm link --global
212
+ ## Requirements
1110
213
 
1111
- # Run in dev mode (watch mode)
1112
- pnpm dev
1113
- ```
214
+ - **Node.js** >= 18.0.0
215
+ - **FFmpeg** (for video/audio plugins)
216
+ ```bash
217
+ # macOS
218
+ brew install ffmpeg
219
+
220
+ # Ubuntu/Debian
221
+ sudo apt install ffmpeg
222
+
223
+ # Windows
224
+ choco install ffmpeg
225
+ ```
226
+
227
+ ## Development
1114
228
 
1115
229
  ### Project Structure
1116
230
 
1117
231
  ```
1118
232
  mediaproc/
1119
- ├── src/ # Core CLI source code
1120
- ├── cli.ts # Main entry point
1121
- │ ├── plugin-manager.ts # Plugin discovery & loading
1122
- │ ├── plugin-registry.ts # Plugin name mapping
1123
- ├── types.ts # TypeScript types
1124
- │ └── commands/ # Core commands
1125
-
1126
- ├── plugins/ # Plugin packages
1127
- │ ├── image/ # Image processing plugin
1128
- │ ├── video/ # Video processing plugin
1129
- │ ├── audio/ # Audio processing plugin
1130
- │ └── .../ # More plugins
1131
-
1132
- ├── docs/ # Documentation
1133
- ├── bin/ # Executable files
1134
- ├── CONTRIBUTING.md # Contribution guidelines
1135
- ├── SECURITY.md # Security policy
1136
- ├── CODE_OF_CONDUCT.md # Community guidelines
1137
- ├── CHANGELOG.md # Release history
1138
- └── package.json # Root package config
1139
- ```
1140
-
1141
- ### Building
1142
-
1143
- ```bash
1144
- # Build all packages
1145
- pnpm build
1146
-
1147
- # Build specific plugin
1148
- pnpm --filter @mediaproc/image build
1149
-
1150
- # Clean build artifacts
1151
- pnpm clean
1152
-
1153
- # Clean and rebuild
1154
- pnpm clean && pnpm build
233
+ ├── src/ # Core CLI source
234
+ ├── plugins/ # Official plugins
235
+ │ ├── image/ # Image processing
236
+ │ ├── video/ # Video processing
237
+ └── audio/ # Audio processing
238
+ ├── docs/ # Documentation
239
+ └── web/ # Documentation website
1155
240
  ```
1156
241
 
1157
- ### Testing
242
+ ### Build & Test
1158
243
 
1159
244
  ```bash
1160
- # Run all tests (when implemented)
1161
- pnpm test
1162
-
1163
- # Test specific plugin
1164
- pnpm --filter @mediaproc/image test
1165
-
1166
- # Watch mode
1167
- pnpm test --watch
1168
-
1169
- # Coverage
1170
- pnpm test --coverage
1171
- ```
1172
-
1173
- ---
1174
-
1175
- ## 🎨 Creating Your Own Plugins
1176
-
1177
- MediaProc welcomes third-party plugins! Anyone can create and publish plugins.
1178
-
1179
- ### Quick Start
1180
-
1181
- ```bash
1182
- # Create plugin directory
1183
- mkdir mediaproc-plugin-myprocessor
1184
- cd mediaproc-plugin-myprocessor
1185
-
1186
- # Initialize
1187
- npm init -y
1188
-
1189
245
  # Install dependencies
1190
- npm install --save-peer @mediaproc/cli
1191
- npm install --save-dev typescript @types/node
1192
- npm install chalk commander ora
1193
- ```
1194
-
1195
- ### Plugin Structure
1196
-
1197
- ```typescript
1198
- // src/index.ts
1199
- import { Command } from "commander";
1200
-
1201
- export const name = "myprocessor";
1202
- export const version = "1.0.0";
1203
- export const description = "My custom processor";
1204
-
1205
- export function register(program: Command): void {
1206
- const cmd = program.command(name).description(description);
1207
-
1208
- cmd
1209
- .command("process <input>")
1210
- .description("Process a file")
1211
- .option("-o, --output <path>", "Output path")
1212
- .action(async (input, options) => {
1213
- // Your processing logic
1214
- console.log("Processing:", input);
1215
- });
1216
- }
1217
- ```
1218
-
1219
- ### Publishing
1220
-
1221
- ```bash
1222
- # Build
1223
- npm run build
1224
-
1225
- # Test locally
1226
- npm link
1227
- mediaproc myprocessor process test.jpg
1228
-
1229
- # Publish
1230
- npm publish
1231
- ```
1232
-
1233
- ### Getting Listed
1234
-
1235
- Submit your plugin to be featured in the plugin directory:
1236
-
1237
- 1. Publish to npm
1238
- 2. Open an issue with [Plugin Submission] tag
1239
- 3. We'll review and list it!
1240
-
1241
- **Full Guide:** See [docs/plugin-system.md](docs/plugin-system.md) for complete plugin development guide, including:
1242
-
1243
- - Naming conventions
1244
- - Required exports and structure
1245
- - Quality standards
1246
- - Submission process
1247
- - Testing and best practices
1248
-
1249
- ---
1250
-
1251
- ## 🗺️ Roadmap
1252
-
1253
- ### Q1 2026 - Core Plugins
1254
-
1255
- - ✅ Complete image plugin implementation
1256
- - ✅ Complete video plugin implementation
1257
- - ✅ Complete audio plugin implementation
1258
- - ✅ Performance optimization
1259
- - ✅ Comprehensive testing
1260
- - ✅ Beta release
1261
-
1262
- ### Q2 2026 - Advanced Features
1263
-
1264
- - ✅ Document plugin (PDF processing)
1265
- - ✅ Animation plugin (GIF optimization)
1266
- - ✅ Metadata plugin
1267
- - ✅ Pipeline workflows
1268
- - ✅ Plugin marketplace launch
1269
-
1270
- ### Q3 2026 - Specialized Plugins
1271
-
1272
- - ✅ 3D model optimization
1273
- - ✅ Streaming (HLS/DASH)
1274
- - ✅ GUI wrapper (Electron)
1275
- - ✅ VS Code extension
1276
-
1277
- ### Q4 2026 - AI & Future-Proof
1278
-
1279
- - ✅ AI-assisted features
1280
- - ✅ Background removal
1281
- - ✅ Auto-captioning
1282
- - ✅ v1.0 stable release
1283
-
1284
- ### 2027+ - Long-Term Vision
1285
-
1286
- - Cloud integration (S3, CDN)
1287
- - Serverless function support
1288
- - Enterprise features
1289
- - Mobile SDK
1290
- - WebAssembly support
1291
-
1292
- **Full Roadmap:** See [docs/upcoming-features.md](docs/upcoming-features.md) for detailed feature plans.
1293
-
1294
- ---
1295
-
1296
- ## 🤝 Contributing
1297
-
1298
- We welcome contributions of all kinds! MediaProc is in active development and there are many ways to help:
1299
-
1300
- ### Ways to Contribute
1301
-
1302
- - 🐛 **Report Bugs** - [Open an issue](https://github.com/0xshariq/mediaproc/issues/new?template=bug_report.md)
1303
- - 💡 **Suggest Features** - [Start a discussion](https://github.com/0xshariq/mediaproc/discussions/new?category=ideas)
1304
- - 📝 **Improve Docs** - Fix typos, add examples, clarify explanations
1305
- - 🔧 **Write Code** - Implement features, fix bugs, optimize performance
1306
- - 🧪 **Write Tests** - Improve test coverage
1307
- - 🎨 **Create Plugins** - Build community plugins
1308
- - 💬 **Help Others** - Answer questions in discussions
1309
- - 🌟 **Spread the Word** - Star the repo, share on social media
1310
-
1311
- ### Getting Started
1312
-
1313
- 1. Read the [Contributing Guide](CONTRIBUTING.md)
1314
- 2. Check the [Code of Conduct](CODE_OF_CONDUCT.md)
1315
- 3. Look for [good first issues](https://github.com/0xshariq/mediaproc/labels/good%20first%20issue)
1316
- 4. Join discussions and ask questions
1317
- 5. Submit your first PR!
1318
-
1319
- ### Development Workflow
1320
-
1321
- ```bash
1322
- # Fork and clone
1323
- git clone https://github.com/YOUR_USERNAME/mediaproc.git
246
+ pnpm install
1324
247
 
1325
- # Create branch
1326
- git checkout -b feature/my-feature
248
+ # Build CLI
249
+ pnpm build
1327
250
 
1328
- # Make changes
1329
- # ... edit files ...
251
+ # Build all plugins
252
+ pnpm build:all
1330
253
 
1331
- # Build and test
1332
- pnpm build
254
+ # Test
1333
255
  pnpm test
1334
256
 
1335
- # Commit
1336
- git commit -m "feat(image): add AVIF support"
1337
-
1338
- # Push and create PR
1339
- git push origin feature/my-feature
257
+ # Run locally
258
+ node dist/cli.js
1340
259
  ```
1341
260
 
1342
- **Full Guide:** See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed contribution guidelines.
1343
-
1344
- ---
1345
-
1346
- ## 👥 Community
1347
-
1348
- ### Get Help & Connect
1349
-
1350
- - **💬 GitHub Discussions** - Ask questions, share ideas
1351
- - **🐛 GitHub Issues** - Report bugs, request features
1352
- - **📧 Email** - support@mediaproc.dev (coming soon)
1353
- - **🐦 Twitter** - @mediaproc (coming soon)
1354
- - **💬 Discord** - Join our community (coming soon)
1355
-
1356
- ### Recognition
1357
-
1358
- Contributors are recognized in:
1359
-
1360
- - [CHANGELOG.md](CHANGELOG.md) - Release contributions
1361
- - [GitHub Contributors](https://github.com/0xshariq/mediaproc/graphs/contributors) - Code contributions
1362
- - Social media shoutouts
1363
- - Plugin spotlights
1364
-
1365
- ---
1366
-
1367
- ## 📄 License
261
+ ### Creating Plugins
1368
262
 
1369
- MediaProc is [MIT licensed](LICENSE).
263
+ See [Plugin Integration Guide](docs/plugin-integration-guide.md) for complete documentation on creating your own plugins.
1370
264
 
1371
- ```
1372
- MIT License
265
+ ## Documentation
1373
266
 
1374
- Copyright (c) 2025 0xshariq and MediaProc contributors
1375
-
1376
- Permission is hereby granted, free of charge, to any person obtaining a copy
1377
- of this software and associated documentation files (the "Software"), to deal
1378
- in the Software without restriction...
1379
- ```
267
+ - [Installation Guide](docs/configuration.md#installation)
268
+ - [Plugin Integration Guide](docs/plugin-integration-guide.md)
269
+ - [Plugin System Architecture](docs/plugin-system.md)
270
+ - [Architecture Overview](docs/architecture-decisions.md)
271
+ - [Contributing Guide](CONTRIBUTING.md)
272
+ - [Code of Conduct](CODE_OF_CONDUCT.md)
1380
273
 
1381
- See [LICENSE](LICENSE) for full license text.
274
+ **📚 Full Documentation:** [https://mediaproc.dev](https://mediaproc.dev)
1382
275
 
1383
- ---
276
+ ## Roadmap
1384
277
 
1385
- ## 🙏 Acknowledgments
278
+ **Current (v0.6.0-beta):**
279
+ - ✅ Core CLI with plugin system
280
+ - ✅ Image Plugin (51 commands)
281
+ - ✅ Video Plugin (6 commands)
282
+ - ✅ Audio Plugin (5 commands)
1386
283
 
1387
- MediaProc is built on top of amazing open-source projects:
284
+ **Q1 2026:**
285
+ - 🚧 Document Plugin
286
+ - 🚧 Comprehensive testing
287
+ - 🚧 CI/CD pipeline
1388
288
 
1389
- ### Core Technologies
289
+ **Q2 2026:**
290
+ - 📋 Animation Plugin
291
+ - 📋 Metadata Plugin
292
+ - 📋 v1.0 Release
1390
293
 
1391
- - **[Sharp](https://sharp.pixelplumbing.com/)** - High-performance image processing (libvips)
1392
- - **[FFmpeg](https://ffmpeg.org/)** - Complete multimedia framework
1393
- - **[Commander.js](https://github.com/tj/commander.js)** - Node.js CLI framework
1394
- - **[Chalk](https://github.com/chalk/chalk)** - Terminal string styling
1395
- - **[Ora](https://github.com/sindresorhus/ora)** - Elegant terminal spinners
1396
- - **[Execa](https://github.com/sindresorhus/execa)** - Better child_process
294
+ **Q3-Q4 2026:**
295
+ - 📋 3D Plugin
296
+ - 📋 Stream Plugin
297
+ - 📋 AI Plugin
298
+ - 📋 Plugin Marketplace
1397
299
 
1398
- ### Inspiration
300
+ See [Upcoming Features](docs/upcoming-features.md) for details.
1399
301
 
1400
- - **FFmpeg** - The gold standard for media processing
1401
- - **Sharp** - Blazing fast image processing
1402
- - **ImageMagick** - Comprehensive image manipulation
1403
- - **Homebrew** - Plugin-like package management
1404
- - **VS Code** - Extension architecture
302
+ ## Contributing
1405
303
 
1406
- ---
304
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
1407
305
 
1408
- ## 🌟 Star History
306
+ **Ways to contribute:**
307
+ - 🐛 Report bugs
308
+ - 💡 Suggest features
309
+ - 📝 Improve documentation
310
+ - 🔧 Submit pull requests
311
+ - 🎨 Create plugins
1409
312
 
1410
- If you find MediaProc useful, please consider giving it a star ⭐️
313
+ ## Community
1411
314
 
1412
- It helps us grow and shows appreciation for the work!
315
+ - **Issues:** [GitHub Issues](https://github.com/0xshariq/mediaproc-cli/issues)
316
+ - **Discussions:** [GitHub Discussions](https://github.com/0xshariq/mediaproc-cli/discussions)
317
+ - **Twitter:** [@0xshariq](https://twitter.com/0xshariq)
1413
318
 
1414
- ---
319
+ ## License
1415
320
 
1416
- ## 📞 Contact
321
+ MIT © [0xshariq](https://github.com/0xshariq)
1417
322
 
1418
- - **Author**: [@0xshariq](https://github.com/0xshariq)
1419
- - **Email**: support@mediaproc.dev (coming soon)
1420
- - **Website**: https://mediaproc.dev (coming soon)
1421
- - **Issues**: [GitHub Issues](https://github.com/0xshariq/mediaproc/issues)
1422
- - **Discussions**: [GitHub Discussions](https://github.com/0xshariq/mediaproc/discussions)
1423
-
1424
- ---
1425
-
1426
- ## ⚠️ Development Notice
1427
-
1428
- **MediaProc is under active development.**
1429
-
1430
- - API and commands may change before v1.0
1431
- - Not recommended for production use yet
1432
- - Feedback and contributions highly appreciated!
1433
- - Expected stable release: Q4 2026
323
+ See [LICENSE](LICENSE) for details.
1434
324
 
1435
325
  ---
1436
326
 
1437
327
  <div align="center">
1438
328
 
1439
- **Built with ❤️ by [@0xshariq](https://github.com/0xshariq) and [contributors](https://github.com/0xshariq/mediaproc/graphs/contributors)**
1440
-
1441
- [⬆ Back to Top](#mediaproc)
1442
-
1443
- </div>
1444
-
1445
- ---
1446
-
1447
- ## 📖 Plugin Development
1448
-
1449
- ### Creating Third-Party Plugins
1450
-
1451
- Want to extend MediaProc with your own functionality? Follow our comprehensive guide:
1452
-
1453
- **\ud83d\udcd8 [Plugin Integration Guide](docs/plugin-integration-guide.md)** - Complete step-by-step tutorial covering:
1454
-
1455
- - Quick start (5-minute plugin)
1456
- - Plugin architecture explained
1457
- - Step-by-step tutorial with real example
1458
- - Plugin standards and requirements
1459
- - Testing and debugging
1460
- - Publishing to npm
1461
- - Getting your plugin featured
1462
-
1463
- **Additional Resources:**
1464
-
1465
- - \ud83d\udcd6 [Plugin System Architecture](docs/plugin-system.md) - Deep dive into how plugins work
1466
- - \ud83c\udfd7\ufe0f [Plugin Template](https://github.com/0xshariq/mediaproc-plugin-template) - Starter template (coming soon)
1467
- - \ud83d\udcda [Example Plugins](https://github.com/0xshariq/mediaproc-examples) - Real-world examples (coming soon)
1468
-
1469
- ### Plugin Ideas
1470
-
1471
- Need inspiration? Here are some plugin ideas:
1472
-
1473
- - **Filters** - Instagram-style filters, artistic effects
1474
- - **Converters** - Specialized format conversions
1475
- - **Social Media** - Platform-specific optimizations (Twitter, Facebook, Instagram)
1476
- - **Analysis** - Media analysis, quality checking, metadata extraction
1477
- - **Cloud Integration** - S3, Cloudinary, Imgur upload
1478
- - **AI/ML** - Face detection, object recognition, style transfer
1479
- - **Automation** - Batch processing, workflow templates
1480
-
1481
- ---
1482
-
1483
- ## 📄 License
329
+ **Built with ❤️ by [@0xshariq](https://github.com/0xshariq)**
1484
330
 
1485
- MediaProc is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
331
+ Give us a ⭐️ if you find this project useful!
1486
332
 
1487
- ### What This Means
1488
-
1489
- ✅ **You CAN:**
1490
-
1491
- - Use MediaProc commercially
1492
- - Modify the source code
1493
- - Distribute your modifications
1494
- - Use it privately
1495
- - Contribute to the project
1496
-
1497
- ⚠️ **You MUST:**
1498
-
1499
- - Include the original copyright notice
1500
- - Include the license text
1501
- - Give credit to **[@0xshariq](https://github.com/0xshariq)** (original author)
1502
-
1503
- ❌ **We're NOT LIABLE:**
1504
-
1505
- - No warranty is provided
1506
- - Authors are not liable for any damages
1507
-
1508
- ### Attribution
1509
-
1510
- If you use MediaProc in your project, a mention would be appreciated:
1511
-
1512
- ```
1513
- Powered by MediaProc - https://github.com/0xshariq/mediaproc-cli
1514
- Created by @0xshariq
1515
- ```
1516
-
1517
- ---
1518
-
1519
- ## 👥 Credits
1520
-
1521
- **Created and maintained by:**
1522
-
1523
- - **[@0xshariq](https://github.com/0xshariq)** - Original Author & Lead Developer
1524
-
1525
- **Contributors:**
1526
- See [CONTRIBUTORS.md](CONTRIBUTORS.md) for the list of amazing people who have contributed to this project.
1527
-
1528
- Want to be listed here? Check out our [Contributing Guide](CONTRIBUTING.md)!
1529
-
1530
- ---
333
+ </div>