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