@mediaproc/cli 0.1.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/LICENSE +72 -0
- package/README.md +947 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +51 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +4 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +170 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +50 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +55 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +57 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +4 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +30 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/remove.d.ts +4 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +38 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +16 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/validate.d.ts +3 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +16 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin-api.d.ts +45 -0
- package/dist/plugin-api.d.ts.map +1 -0
- package/dist/plugin-api.js +2 -0
- package/dist/plugin-api.js.map +1 -0
- package/dist/plugin-manager.d.ts +31 -0
- package/dist/plugin-manager.d.ts.map +1 -0
- package/dist/plugin-manager.js +88 -0
- package/dist/plugin-manager.js.map +1 -0
- package/dist/plugin-registry.d.ts +27 -0
- package/dist/plugin-registry.d.ts.map +1 -0
- package/dist/plugin-registry.js +167 -0
- package/dist/plugin-registry.js.map +1 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +72 -0
package/README.md
ADDED
|
@@ -0,0 +1,947 @@
|
|
|
1
|
+
# MediaProc
|
|
2
|
+
|
|
3
|
+
> 🚧 **Under Active Development** - Planning & Architecture Phase
|
|
4
|
+
|
|
5
|
+
Universal media processing CLI with an extensible plugin architecture. One tool to process all your media - images, videos, audio, documents, and more.
|
|
6
|
+
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
[](https://nodejs.org/)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
[](https://github.com/0xshariq/mediaproc)
|
|
11
|
+
[](CONTRIBUTING.md)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 📋 Table of Contents
|
|
16
|
+
|
|
17
|
+
- [The Problem](#-the-problem)
|
|
18
|
+
- [Our Solution](#-our-solution)
|
|
19
|
+
- [Current Status](#-current-status)
|
|
20
|
+
- [Features](#-features)
|
|
21
|
+
- [Quick Start](#-quick-start)
|
|
22
|
+
- [Available Plugins](#-available-plugins)
|
|
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.1.0 (Alpha - Planning & Development Phase)
|
|
132
|
+
**Status**: 🚧 Architecture Complete, Implementation In Progress
|
|
133
|
+
**Expected Beta**: Q2 2026
|
|
134
|
+
**Expected v1.0**: Q4 2026
|
|
135
|
+
|
|
136
|
+
### What's Ready
|
|
137
|
+
|
|
138
|
+
✅ **Architecture** - Plugin system designed and implemented
|
|
139
|
+
✅ **Core CLI** - Command framework with plugin discovery
|
|
140
|
+
✅ **Plugin Registry** - Smart plugin management
|
|
141
|
+
✅ **Documentation** - Comprehensive guides and standards
|
|
142
|
+
✅ **Community Guidelines** - Contributing, security, code of conduct
|
|
143
|
+
✅ **Third-Party Support** - Standards for community plugins
|
|
144
|
+
|
|
145
|
+
### What's In Progress
|
|
146
|
+
|
|
147
|
+
🚧 **Core Plugins** - Implementing image, video, audio processing
|
|
148
|
+
🚧 **Testing** - Unit and integration tests
|
|
149
|
+
🚧 **Performance** - Optimization and benchmarking
|
|
150
|
+
🚧 **Examples** - Real-world usage examples
|
|
151
|
+
|
|
152
|
+
### What's Next
|
|
153
|
+
|
|
154
|
+
📋 **Beta Release** - Feature-complete core plugins (Q2 2026)
|
|
155
|
+
📋 **Advanced Plugins** - 3D, streaming, AI features (Q3 2026)
|
|
156
|
+
📋 **Plugin Marketplace** - Community plugin directory (Q4 2026)
|
|
157
|
+
📋 **v1.0 Release** - Production-ready stable version (Q4 2026)
|
|
158
|
+
|
|
159
|
+
See [Upcoming Features](docs/upcoming-features.md) for detailed roadmap.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## ✨ Features
|
|
164
|
+
|
|
165
|
+
### Current Features (v0.1.0)
|
|
166
|
+
|
|
167
|
+
#### Core CLI
|
|
168
|
+
|
|
169
|
+
- ✅ Plugin discovery and loading
|
|
170
|
+
- ✅ Smart installation (auto-detects global/local)
|
|
171
|
+
- ✅ Plugin registry with short names
|
|
172
|
+
- ✅ Configuration management
|
|
173
|
+
- ✅ TypeScript with strict mode
|
|
174
|
+
- ✅ Cross-platform support
|
|
175
|
+
|
|
176
|
+
#### Plugin Management
|
|
177
|
+
|
|
178
|
+
- `mediaproc add <plugin>` - Install plugins
|
|
179
|
+
- `mediaproc remove <plugin>` - Uninstall plugins
|
|
180
|
+
- `mediaproc list` - List installed plugins
|
|
181
|
+
- `mediaproc plugins` - Show available plugins
|
|
182
|
+
- `mediaproc init` - Initialize configuration
|
|
183
|
+
- `mediaproc config` - Manage settings
|
|
184
|
+
|
|
185
|
+
### Planned Features
|
|
186
|
+
|
|
187
|
+
#### Image Processing (Q1 2026)
|
|
188
|
+
|
|
189
|
+
- Resize, crop, rotate, flip
|
|
190
|
+
- Format conversion (JPEG, PNG, WebP, AVIF, HEIF)
|
|
191
|
+
- Optimization and compression
|
|
192
|
+
- Filters (blur, sharpen, grayscale, sepia)
|
|
193
|
+
- Watermarking with positioning
|
|
194
|
+
- Batch processing
|
|
195
|
+
|
|
196
|
+
#### Video Processing (Q1 2026)
|
|
197
|
+
|
|
198
|
+
- Format transcoding (MP4, WebM, AVI, MKV)
|
|
199
|
+
- Codec conversion (H.264, H.265, VP9, AV1)
|
|
200
|
+
- Quality presets (web, mobile, high-quality)
|
|
201
|
+
- Frame extraction
|
|
202
|
+
- Trimming and cutting
|
|
203
|
+
- Video merging
|
|
204
|
+
- Audio track management
|
|
205
|
+
|
|
206
|
+
#### Audio Processing (Q1 2026)
|
|
207
|
+
|
|
208
|
+
- Format conversion (MP3, AAC, FLAC, WAV, OGG)
|
|
209
|
+
- Normalization and loudness adjustment
|
|
210
|
+
- Trimming and splitting
|
|
211
|
+
- Audio extraction from video
|
|
212
|
+
- Multi-track merging
|
|
213
|
+
- Bitrate control
|
|
214
|
+
|
|
215
|
+
#### Document Processing (Q2 2026)
|
|
216
|
+
|
|
217
|
+
- PDF compression
|
|
218
|
+
- Page extraction and splitting
|
|
219
|
+
- OCR text extraction
|
|
220
|
+
- PDF merging
|
|
221
|
+
- Format conversion
|
|
222
|
+
- Watermarking
|
|
223
|
+
|
|
224
|
+
#### Advanced Features (Q3-Q4 2026)
|
|
225
|
+
|
|
226
|
+
- Animation optimization (GIF, WebP, Lottie)
|
|
227
|
+
- 3D model optimization
|
|
228
|
+
- Metadata management
|
|
229
|
+
- HLS/DASH streaming
|
|
230
|
+
- AI-assisted processing
|
|
231
|
+
- Pipeline workflows
|
|
232
|
+
|
|
233
|
+
See [docs/upcoming-features.md](docs/upcoming-features.md) for complete feature list.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## 🚀 Quick Start
|
|
238
|
+
|
|
239
|
+
### Prerequisites
|
|
240
|
+
|
|
241
|
+
- **Node.js** >= 18.0.0
|
|
242
|
+
- **pnpm** (recommended) or npm
|
|
243
|
+
- **System dependencies** (installed as needed by plugins):
|
|
244
|
+
- FFmpeg (for video/audio)
|
|
245
|
+
- Sharp/libvips (for images)
|
|
246
|
+
- Ghostscript (for PDFs)
|
|
247
|
+
|
|
248
|
+
### Installation
|
|
249
|
+
|
|
250
|
+
#### From npm (when published)
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# Install globally
|
|
254
|
+
npm install -g @mediaproc/cli
|
|
255
|
+
|
|
256
|
+
# Verify installation
|
|
257
|
+
mediaproc --version
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
#### From Source (current)
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Clone repository
|
|
264
|
+
git clone https://github.com/0xshariq/mediaproc.git
|
|
265
|
+
cd mediaproc
|
|
266
|
+
|
|
267
|
+
# Install dependencies
|
|
268
|
+
pnpm install
|
|
269
|
+
|
|
270
|
+
# Build all packages
|
|
271
|
+
pnpm build
|
|
272
|
+
|
|
273
|
+
# Link globally
|
|
274
|
+
pnpm link --global
|
|
275
|
+
|
|
276
|
+
# Verify
|
|
277
|
+
mediaproc --version
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Basic Usage
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
# Install your first plugin
|
|
284
|
+
mediaproc add image
|
|
285
|
+
|
|
286
|
+
# Process an image (when implemented)
|
|
287
|
+
mediaproc image resize photo.jpg --width 1920 --height 1080
|
|
288
|
+
|
|
289
|
+
# Get help
|
|
290
|
+
mediaproc --help
|
|
291
|
+
mediaproc image --help
|
|
292
|
+
mediaproc image resize --help
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Installing More Plugins
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
# Install official plugins
|
|
299
|
+
mediaproc add video
|
|
300
|
+
mediaproc add audio
|
|
301
|
+
mediaproc add document
|
|
302
|
+
|
|
303
|
+
# Install third-party plugins
|
|
304
|
+
npm install -g mediaproc-plugin-instagram
|
|
305
|
+
mediaproc instagram filter photo.jpg --style vintage
|
|
306
|
+
|
|
307
|
+
# View all available plugins
|
|
308
|
+
mediaproc plugins
|
|
309
|
+
|
|
310
|
+
# View installed plugins
|
|
311
|
+
mediaproc list
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 📦 Available Plugins
|
|
317
|
+
|
|
318
|
+
### Official Plugins
|
|
319
|
+
|
|
320
|
+
| Plugin | Commands | Status | Description |
|
|
321
|
+
| ---------------------------------- | -------- | -------------- | ---------------------------------------- |
|
|
322
|
+
| **[image](plugins/image)** | 10 | 🚧 In Progress | Resize, convert, optimize, filter images |
|
|
323
|
+
| **[video](plugins/video)** | 6 | 🚧 In Progress | Transcode, compress, trim, merge videos |
|
|
324
|
+
| **[audio](plugins/audio)** | 5 | 🚧 In Progress | Convert, normalize, trim, merge audio |
|
|
325
|
+
| **[document](plugins/document)** | 5 | 📋 Planned | Process PDFs and documents |
|
|
326
|
+
| **[animation](plugins/animation)** | 2 | 📋 Planned | Optimize GIFs and animations |
|
|
327
|
+
| **[3d](plugins/3d)** | 4 | 📋 Planned | Optimize 3D models |
|
|
328
|
+
| **[metadata](plugins/metadata)** | 4 | 📋 Planned | Manage media metadata |
|
|
329
|
+
| **[stream](plugins/stream)** | 3 | 📋 Planned | HLS/DASH packaging |
|
|
330
|
+
| **[ai](plugins/ai)** | 4 | 💡 Concept | AI-powered processing |
|
|
331
|
+
| **[pipeline](plugins/pipeline)** | 2 | 📋 Planned | Workflow automation |
|
|
332
|
+
|
|
333
|
+
**Legend:** ✅ Complete | 🚧 In Progress | 📋 Planned | 💡 Concept
|
|
334
|
+
|
|
335
|
+
### Community Plugins
|
|
336
|
+
|
|
337
|
+
Third-party plugins are welcome! See [Creating Plugins](#-creating-your-own-plugins) below.
|
|
338
|
+
|
|
339
|
+
**Plugin Development Resources:**
|
|
340
|
+
|
|
341
|
+
- 📖 [Plugin Integration Guide](docs/plugin-integration-guide.md) - Complete tutorial
|
|
342
|
+
- 🏗️ [Plugin Template](https://github.com/0xshariq/mediaproc-plugin-template) - Starter template (coming soon)
|
|
343
|
+
- 📚 [Example Plugins](https://github.com/0xshariq/mediaproc-examples) - Real examples (coming soon)
|
|
344
|
+
|
|
345
|
+
_Coming soon: Browse community plugins at https://plugins.mediaproc.dev_
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## 📚 Documentation
|
|
350
|
+
|
|
351
|
+
Comprehensive documentation is available in the [docs/](docs/) folder:
|
|
352
|
+
|
|
353
|
+
### Core Documentation
|
|
354
|
+
|
|
355
|
+
- **[Plugin System](docs/plugin-system.md)** - Complete guide to the plugin architecture
|
|
356
|
+
|
|
357
|
+
- How plugins work
|
|
358
|
+
- Plugin discovery and loading
|
|
359
|
+
- Creating plugins
|
|
360
|
+
- **Third-party plugin standards**
|
|
361
|
+
- Plugin submission process
|
|
362
|
+
- Quality standards
|
|
363
|
+
- Testing and publishing
|
|
364
|
+
|
|
365
|
+
- **[Configuration](docs/configuration.md)** - Configure MediaProc for your workflow
|
|
366
|
+
|
|
367
|
+
- Configuration file format
|
|
368
|
+
- Global and project-level settings
|
|
369
|
+
- Plugin-specific options
|
|
370
|
+
- Environment variables
|
|
371
|
+
- Pipeline configuration
|
|
372
|
+
|
|
373
|
+
- **[Upcoming Features](docs/upcoming-features.md)** - Roadmap and planned features
|
|
374
|
+
- Phase 1: Core plugins (Q1-Q2 2026)
|
|
375
|
+
- Phase 2: Advanced plugins (Q3 2026)
|
|
376
|
+
- Phase 3: AI & future-proof (Q4 2026)
|
|
377
|
+
- Long-term vision (2027+)
|
|
378
|
+
|
|
379
|
+
### Community Guides
|
|
380
|
+
|
|
381
|
+
- **[Contributing](CONTRIBUTING.md)** - How to contribute to MediaProc
|
|
382
|
+
|
|
383
|
+
- Reporting bugs
|
|
384
|
+
- Suggesting features
|
|
385
|
+
- Pull request guidelines
|
|
386
|
+
- Development setup
|
|
387
|
+
- Plugin development
|
|
388
|
+
|
|
389
|
+
- **[Security](SECURITY.md)** - Security policy and vulnerability reporting
|
|
390
|
+
|
|
391
|
+
- Supported versions
|
|
392
|
+
- Reporting vulnerabilities
|
|
393
|
+
- Security best practices
|
|
394
|
+
- Disclosure policy
|
|
395
|
+
|
|
396
|
+
- **[Code of Conduct](CODE_OF_CONDUCT.md)** - Community guidelines
|
|
397
|
+
|
|
398
|
+
- Our pledge
|
|
399
|
+
- Standards and expectations
|
|
400
|
+
- Enforcement
|
|
401
|
+
- Reporting process
|
|
402
|
+
|
|
403
|
+
- **[Changelog](CHANGELOG.md)** - Release history and changes
|
|
404
|
+
- **[License](LICENSE)** - MIT License
|
|
405
|
+
|
|
406
|
+
### External Resources (Coming Soon)
|
|
407
|
+
|
|
408
|
+
- 🌐 Website: https://mediaproc.dev
|
|
409
|
+
- 📖 Full Docs: https://docs.mediaproc.dev
|
|
410
|
+
- 🎓 Tutorials: https://tutorials.mediaproc.dev
|
|
411
|
+
- 📦 Plugin Marketplace: https://plugins.mediaproc.dev
|
|
412
|
+
- 💻 GitHub: https://github.com/0xshariq/mediaproc
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## 💡 Examples
|
|
417
|
+
|
|
418
|
+
### Image Processing
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
# Resize image
|
|
422
|
+
mediaproc image resize photo.jpg --width 1920 --height 1080 --fit cover
|
|
423
|
+
|
|
424
|
+
# Convert format
|
|
425
|
+
mediaproc image convert photo.jpg --format webp --quality 85
|
|
426
|
+
|
|
427
|
+
# Apply filter
|
|
428
|
+
mediaproc image grayscale photo.jpg --output bw-photo.jpg
|
|
429
|
+
|
|
430
|
+
# Watermark
|
|
431
|
+
mediaproc image watermark photo.jpg --text "© 2025" --position bottom-right
|
|
432
|
+
|
|
433
|
+
# Batch processing
|
|
434
|
+
for img in photos/*.jpg; do
|
|
435
|
+
mediaproc image convert "$img" --format webp --quality 85
|
|
436
|
+
done
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
### Video Processing
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
# Compress video
|
|
443
|
+
mediaproc video compress large-video.mp4 --quality 80 --codec h264
|
|
444
|
+
|
|
445
|
+
# Transcode format
|
|
446
|
+
mediaproc video transcode input.avi --format mp4
|
|
447
|
+
|
|
448
|
+
# Extract frames
|
|
449
|
+
mediaproc video extract video.mp4 --fps 1 --format png
|
|
450
|
+
|
|
451
|
+
# Trim video
|
|
452
|
+
mediaproc video trim video.mp4 --start 00:01:30 --end 00:02:45
|
|
453
|
+
|
|
454
|
+
# Merge videos
|
|
455
|
+
mediaproc video merge video1.mp4 video2.mp4 video3.mp4 --output combined.mp4
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
### Audio Processing
|
|
459
|
+
|
|
460
|
+
```bash
|
|
461
|
+
# Convert format
|
|
462
|
+
mediaproc audio convert song.wav --format mp3 --bitrate 320k
|
|
463
|
+
|
|
464
|
+
# Normalize volume
|
|
465
|
+
mediaproc audio normalize podcast.mp3 --target -16
|
|
466
|
+
|
|
467
|
+
# Extract audio from video
|
|
468
|
+
mediaproc audio extract video.mp4 --format flac
|
|
469
|
+
|
|
470
|
+
# Trim audio
|
|
471
|
+
mediaproc audio trim song.mp3 --start 00:30 --end 03:45
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Pipeline Workflows
|
|
475
|
+
|
|
476
|
+
```yaml
|
|
477
|
+
# workflow.yaml
|
|
478
|
+
name: "Optimize Images for Web"
|
|
479
|
+
description: "Batch image optimization pipeline"
|
|
480
|
+
|
|
481
|
+
steps:
|
|
482
|
+
- plugin: image
|
|
483
|
+
command: resize
|
|
484
|
+
options:
|
|
485
|
+
width: 1920
|
|
486
|
+
height: 1080
|
|
487
|
+
fit: contain
|
|
488
|
+
|
|
489
|
+
- plugin: image
|
|
490
|
+
command: convert
|
|
491
|
+
options:
|
|
492
|
+
format: webp
|
|
493
|
+
quality: 85
|
|
494
|
+
|
|
495
|
+
- plugin: image
|
|
496
|
+
command: optimize
|
|
497
|
+
options:
|
|
498
|
+
level: 9
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
```bash
|
|
502
|
+
# Run pipeline
|
|
503
|
+
mediaproc run workflow.yaml --input images/ --output optimized/
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
_Note: Most commands shown above are planned for implementation. See [Current Status](#-current-status) for what's available now._
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## 🔧 Development
|
|
511
|
+
|
|
512
|
+
### Setup Development Environment
|
|
513
|
+
|
|
514
|
+
```bash
|
|
515
|
+
# Clone repository
|
|
516
|
+
git clone https://github.com/0xshariq/mediaproc.git
|
|
517
|
+
cd mediaproc
|
|
518
|
+
|
|
519
|
+
# Install dependencies
|
|
520
|
+
pnpm install
|
|
521
|
+
|
|
522
|
+
# Build all packages
|
|
523
|
+
pnpm build
|
|
524
|
+
|
|
525
|
+
# Link CLI globally
|
|
526
|
+
pnpm link --global
|
|
527
|
+
|
|
528
|
+
# Run in dev mode (watch mode)
|
|
529
|
+
pnpm dev
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### Project Structure
|
|
533
|
+
|
|
534
|
+
```
|
|
535
|
+
mediaproc/
|
|
536
|
+
├── src/ # Core CLI source code
|
|
537
|
+
│ ├── cli.ts # Main entry point
|
|
538
|
+
│ ├── plugin-manager.ts # Plugin discovery & loading
|
|
539
|
+
│ ├── plugin-registry.ts # Plugin name mapping
|
|
540
|
+
│ ├── types.ts # TypeScript types
|
|
541
|
+
│ └── commands/ # Core commands
|
|
542
|
+
│
|
|
543
|
+
├── plugins/ # Plugin packages
|
|
544
|
+
│ ├── image/ # Image processing plugin
|
|
545
|
+
│ ├── video/ # Video processing plugin
|
|
546
|
+
│ ├── audio/ # Audio processing plugin
|
|
547
|
+
│ └── .../ # More plugins
|
|
548
|
+
│
|
|
549
|
+
├── docs/ # Documentation
|
|
550
|
+
├── bin/ # Executable files
|
|
551
|
+
├── CONTRIBUTING.md # Contribution guidelines
|
|
552
|
+
├── SECURITY.md # Security policy
|
|
553
|
+
├── CODE_OF_CONDUCT.md # Community guidelines
|
|
554
|
+
├── CHANGELOG.md # Release history
|
|
555
|
+
└── package.json # Root package config
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### Building
|
|
559
|
+
|
|
560
|
+
```bash
|
|
561
|
+
# Build all packages
|
|
562
|
+
pnpm build
|
|
563
|
+
|
|
564
|
+
# Build specific plugin
|
|
565
|
+
pnpm --filter @mediaproc/image build
|
|
566
|
+
|
|
567
|
+
# Clean build artifacts
|
|
568
|
+
pnpm clean
|
|
569
|
+
|
|
570
|
+
# Clean and rebuild
|
|
571
|
+
pnpm clean && pnpm build
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
### Testing
|
|
575
|
+
|
|
576
|
+
```bash
|
|
577
|
+
# Run all tests (when implemented)
|
|
578
|
+
pnpm test
|
|
579
|
+
|
|
580
|
+
# Test specific plugin
|
|
581
|
+
pnpm --filter @mediaproc/image test
|
|
582
|
+
|
|
583
|
+
# Watch mode
|
|
584
|
+
pnpm test --watch
|
|
585
|
+
|
|
586
|
+
# Coverage
|
|
587
|
+
pnpm test --coverage
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
---
|
|
591
|
+
|
|
592
|
+
## 🎨 Creating Your Own Plugins
|
|
593
|
+
|
|
594
|
+
MediaProc welcomes third-party plugins! Anyone can create and publish plugins.
|
|
595
|
+
|
|
596
|
+
### Quick Start
|
|
597
|
+
|
|
598
|
+
```bash
|
|
599
|
+
# Create plugin directory
|
|
600
|
+
mkdir mediaproc-plugin-myprocessor
|
|
601
|
+
cd mediaproc-plugin-myprocessor
|
|
602
|
+
|
|
603
|
+
# Initialize
|
|
604
|
+
npm init -y
|
|
605
|
+
|
|
606
|
+
# Install dependencies
|
|
607
|
+
npm install --save-peer @mediaproc/cli
|
|
608
|
+
npm install --save-dev typescript @types/node
|
|
609
|
+
npm install chalk commander ora
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
### Plugin Structure
|
|
613
|
+
|
|
614
|
+
```typescript
|
|
615
|
+
// src/index.ts
|
|
616
|
+
import { Command } from "commander";
|
|
617
|
+
|
|
618
|
+
export const name = "myprocessor";
|
|
619
|
+
export const version = "1.0.0";
|
|
620
|
+
export const description = "My custom processor";
|
|
621
|
+
|
|
622
|
+
export function register(program: Command): void {
|
|
623
|
+
const cmd = program.command(name).description(description);
|
|
624
|
+
|
|
625
|
+
cmd
|
|
626
|
+
.command("process <input>")
|
|
627
|
+
.description("Process a file")
|
|
628
|
+
.option("-o, --output <path>", "Output path")
|
|
629
|
+
.action(async (input, options) => {
|
|
630
|
+
// Your processing logic
|
|
631
|
+
console.log("Processing:", input);
|
|
632
|
+
});
|
|
633
|
+
}
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
### Publishing
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
# Build
|
|
640
|
+
npm run build
|
|
641
|
+
|
|
642
|
+
# Test locally
|
|
643
|
+
npm link
|
|
644
|
+
mediaproc myprocessor process test.jpg
|
|
645
|
+
|
|
646
|
+
# Publish
|
|
647
|
+
npm publish
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
### Getting Listed
|
|
651
|
+
|
|
652
|
+
Submit your plugin to be featured in the plugin directory:
|
|
653
|
+
|
|
654
|
+
1. Publish to npm
|
|
655
|
+
2. Open an issue with [Plugin Submission] tag
|
|
656
|
+
3. We'll review and list it!
|
|
657
|
+
|
|
658
|
+
**Full Guide:** See [docs/plugin-system.md](docs/plugin-system.md) for complete plugin development guide, including:
|
|
659
|
+
|
|
660
|
+
- Naming conventions
|
|
661
|
+
- Required exports and structure
|
|
662
|
+
- Quality standards
|
|
663
|
+
- Submission process
|
|
664
|
+
- Testing and best practices
|
|
665
|
+
|
|
666
|
+
---
|
|
667
|
+
|
|
668
|
+
## 🗺️ Roadmap
|
|
669
|
+
|
|
670
|
+
### Q1 2026 - Core Plugins
|
|
671
|
+
|
|
672
|
+
- ✅ Complete image plugin implementation
|
|
673
|
+
- ✅ Complete video plugin implementation
|
|
674
|
+
- ✅ Complete audio plugin implementation
|
|
675
|
+
- ✅ Performance optimization
|
|
676
|
+
- ✅ Comprehensive testing
|
|
677
|
+
- ✅ Beta release
|
|
678
|
+
|
|
679
|
+
### Q2 2026 - Advanced Features
|
|
680
|
+
|
|
681
|
+
- ✅ Document plugin (PDF processing)
|
|
682
|
+
- ✅ Animation plugin (GIF optimization)
|
|
683
|
+
- ✅ Metadata plugin
|
|
684
|
+
- ✅ Pipeline workflows
|
|
685
|
+
- ✅ Plugin marketplace launch
|
|
686
|
+
|
|
687
|
+
### Q3 2026 - Specialized Plugins
|
|
688
|
+
|
|
689
|
+
- ✅ 3D model optimization
|
|
690
|
+
- ✅ Streaming (HLS/DASH)
|
|
691
|
+
- ✅ GUI wrapper (Electron)
|
|
692
|
+
- ✅ VS Code extension
|
|
693
|
+
|
|
694
|
+
### Q4 2026 - AI & Future-Proof
|
|
695
|
+
|
|
696
|
+
- ✅ AI-assisted features
|
|
697
|
+
- ✅ Background removal
|
|
698
|
+
- ✅ Auto-captioning
|
|
699
|
+
- ✅ v1.0 stable release
|
|
700
|
+
|
|
701
|
+
### 2027+ - Long-Term Vision
|
|
702
|
+
|
|
703
|
+
- Cloud integration (S3, CDN)
|
|
704
|
+
- Serverless function support
|
|
705
|
+
- Enterprise features
|
|
706
|
+
- Mobile SDK
|
|
707
|
+
- WebAssembly support
|
|
708
|
+
|
|
709
|
+
**Full Roadmap:** See [docs/upcoming-features.md](docs/upcoming-features.md) for detailed feature plans.
|
|
710
|
+
|
|
711
|
+
---
|
|
712
|
+
|
|
713
|
+
## 🤝 Contributing
|
|
714
|
+
|
|
715
|
+
We welcome contributions of all kinds! MediaProc is in active development and there are many ways to help:
|
|
716
|
+
|
|
717
|
+
### Ways to Contribute
|
|
718
|
+
|
|
719
|
+
- 🐛 **Report Bugs** - [Open an issue](https://github.com/0xshariq/mediaproc/issues/new?template=bug_report.md)
|
|
720
|
+
- 💡 **Suggest Features** - [Start a discussion](https://github.com/0xshariq/mediaproc/discussions/new?category=ideas)
|
|
721
|
+
- 📝 **Improve Docs** - Fix typos, add examples, clarify explanations
|
|
722
|
+
- 🔧 **Write Code** - Implement features, fix bugs, optimize performance
|
|
723
|
+
- 🧪 **Write Tests** - Improve test coverage
|
|
724
|
+
- 🎨 **Create Plugins** - Build community plugins
|
|
725
|
+
- 💬 **Help Others** - Answer questions in discussions
|
|
726
|
+
- 🌟 **Spread the Word** - Star the repo, share on social media
|
|
727
|
+
|
|
728
|
+
### Getting Started
|
|
729
|
+
|
|
730
|
+
1. Read the [Contributing Guide](CONTRIBUTING.md)
|
|
731
|
+
2. Check the [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
732
|
+
3. Look for [good first issues](https://github.com/0xshariq/mediaproc/labels/good%20first%20issue)
|
|
733
|
+
4. Join discussions and ask questions
|
|
734
|
+
5. Submit your first PR!
|
|
735
|
+
|
|
736
|
+
### Development Workflow
|
|
737
|
+
|
|
738
|
+
```bash
|
|
739
|
+
# Fork and clone
|
|
740
|
+
git clone https://github.com/YOUR_USERNAME/mediaproc.git
|
|
741
|
+
|
|
742
|
+
# Create branch
|
|
743
|
+
git checkout -b feature/my-feature
|
|
744
|
+
|
|
745
|
+
# Make changes
|
|
746
|
+
# ... edit files ...
|
|
747
|
+
|
|
748
|
+
# Build and test
|
|
749
|
+
pnpm build
|
|
750
|
+
pnpm test
|
|
751
|
+
|
|
752
|
+
# Commit
|
|
753
|
+
git commit -m "feat(image): add AVIF support"
|
|
754
|
+
|
|
755
|
+
# Push and create PR
|
|
756
|
+
git push origin feature/my-feature
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
**Full Guide:** See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed contribution guidelines.
|
|
760
|
+
|
|
761
|
+
---
|
|
762
|
+
|
|
763
|
+
## 👥 Community
|
|
764
|
+
|
|
765
|
+
### Get Help & Connect
|
|
766
|
+
|
|
767
|
+
- **💬 GitHub Discussions** - Ask questions, share ideas
|
|
768
|
+
- **🐛 GitHub Issues** - Report bugs, request features
|
|
769
|
+
- **📧 Email** - support@mediaproc.dev (coming soon)
|
|
770
|
+
- **🐦 Twitter** - @mediaproc (coming soon)
|
|
771
|
+
- **💬 Discord** - Join our community (coming soon)
|
|
772
|
+
|
|
773
|
+
### Recognition
|
|
774
|
+
|
|
775
|
+
Contributors are recognized in:
|
|
776
|
+
|
|
777
|
+
- [CHANGELOG.md](CHANGELOG.md) - Release contributions
|
|
778
|
+
- [GitHub Contributors](https://github.com/0xshariq/mediaproc/graphs/contributors) - Code contributions
|
|
779
|
+
- Social media shoutouts
|
|
780
|
+
- Plugin spotlights
|
|
781
|
+
|
|
782
|
+
---
|
|
783
|
+
|
|
784
|
+
## 📄 License
|
|
785
|
+
|
|
786
|
+
MediaProc is [MIT licensed](LICENSE).
|
|
787
|
+
|
|
788
|
+
```
|
|
789
|
+
MIT License
|
|
790
|
+
|
|
791
|
+
Copyright (c) 2025 0xshariq and MediaProc contributors
|
|
792
|
+
|
|
793
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
794
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
795
|
+
in the Software without restriction...
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
See [LICENSE](LICENSE) for full license text.
|
|
799
|
+
|
|
800
|
+
---
|
|
801
|
+
|
|
802
|
+
## 🙏 Acknowledgments
|
|
803
|
+
|
|
804
|
+
MediaProc is built on top of amazing open-source projects:
|
|
805
|
+
|
|
806
|
+
### Core Technologies
|
|
807
|
+
|
|
808
|
+
- **[Sharp](https://sharp.pixelplumbing.com/)** - High-performance image processing (libvips)
|
|
809
|
+
- **[FFmpeg](https://ffmpeg.org/)** - Complete multimedia framework
|
|
810
|
+
- **[Commander.js](https://github.com/tj/commander.js)** - Node.js CLI framework
|
|
811
|
+
- **[Chalk](https://github.com/chalk/chalk)** - Terminal string styling
|
|
812
|
+
- **[Ora](https://github.com/sindresorhus/ora)** - Elegant terminal spinners
|
|
813
|
+
- **[Execa](https://github.com/sindresorhus/execa)** - Better child_process
|
|
814
|
+
|
|
815
|
+
### Inspiration
|
|
816
|
+
|
|
817
|
+
- **FFmpeg** - The gold standard for media processing
|
|
818
|
+
- **Sharp** - Blazing fast image processing
|
|
819
|
+
- **ImageMagick** - Comprehensive image manipulation
|
|
820
|
+
- **Homebrew** - Plugin-like package management
|
|
821
|
+
- **VS Code** - Extension architecture
|
|
822
|
+
|
|
823
|
+
---
|
|
824
|
+
|
|
825
|
+
## 🌟 Star History
|
|
826
|
+
|
|
827
|
+
If you find MediaProc useful, please consider giving it a star ⭐️
|
|
828
|
+
|
|
829
|
+
It helps us grow and shows appreciation for the work!
|
|
830
|
+
|
|
831
|
+
---
|
|
832
|
+
|
|
833
|
+
## 📞 Contact
|
|
834
|
+
|
|
835
|
+
- **Author**: [@0xshariq](https://github.com/0xshariq)
|
|
836
|
+
- **Email**: support@mediaproc.dev (coming soon)
|
|
837
|
+
- **Website**: https://mediaproc.dev (coming soon)
|
|
838
|
+
- **Issues**: [GitHub Issues](https://github.com/0xshariq/mediaproc/issues)
|
|
839
|
+
- **Discussions**: [GitHub Discussions](https://github.com/0xshariq/mediaproc/discussions)
|
|
840
|
+
|
|
841
|
+
---
|
|
842
|
+
|
|
843
|
+
## ⚠️ Development Notice
|
|
844
|
+
|
|
845
|
+
**MediaProc is under active development.**
|
|
846
|
+
|
|
847
|
+
- API and commands may change before v1.0
|
|
848
|
+
- Not recommended for production use yet
|
|
849
|
+
- Feedback and contributions highly appreciated!
|
|
850
|
+
- Expected stable release: Q4 2026
|
|
851
|
+
|
|
852
|
+
---
|
|
853
|
+
|
|
854
|
+
<div align="center">
|
|
855
|
+
|
|
856
|
+
**Built with ❤️ by [@0xshariq](https://github.com/0xshariq) and [contributors](https://github.com/0xshariq/mediaproc/graphs/contributors)**
|
|
857
|
+
|
|
858
|
+
[⬆ Back to Top](#mediaproc)
|
|
859
|
+
|
|
860
|
+
</div>
|
|
861
|
+
|
|
862
|
+
---
|
|
863
|
+
|
|
864
|
+
## 📖 Plugin Development
|
|
865
|
+
|
|
866
|
+
### Creating Third-Party Plugins
|
|
867
|
+
|
|
868
|
+
Want to extend MediaProc with your own functionality? Follow our comprehensive guide:
|
|
869
|
+
|
|
870
|
+
**\ud83d\udcd8 [Plugin Integration Guide](docs/plugin-integration-guide.md)** - Complete step-by-step tutorial covering:
|
|
871
|
+
|
|
872
|
+
- Quick start (5-minute plugin)
|
|
873
|
+
- Plugin architecture explained
|
|
874
|
+
- Step-by-step tutorial with real example
|
|
875
|
+
- Plugin standards and requirements
|
|
876
|
+
- Testing and debugging
|
|
877
|
+
- Publishing to npm
|
|
878
|
+
- Getting your plugin featured
|
|
879
|
+
|
|
880
|
+
**Additional Resources:**
|
|
881
|
+
|
|
882
|
+
- \ud83d\udcd6 [Plugin System Architecture](docs/plugin-system.md) - Deep dive into how plugins work
|
|
883
|
+
- \ud83c\udfd7\ufe0f [Plugin Template](https://github.com/0xshariq/mediaproc-plugin-template) - Starter template (coming soon)
|
|
884
|
+
- \ud83d\udcda [Example Plugins](https://github.com/0xshariq/mediaproc-examples) - Real-world examples (coming soon)
|
|
885
|
+
|
|
886
|
+
### Plugin Ideas
|
|
887
|
+
|
|
888
|
+
Need inspiration? Here are some plugin ideas:
|
|
889
|
+
|
|
890
|
+
- **Filters** - Instagram-style filters, artistic effects
|
|
891
|
+
- **Converters** - Specialized format conversions
|
|
892
|
+
- **Social Media** - Platform-specific optimizations (Twitter, Facebook, Instagram)
|
|
893
|
+
- **Analysis** - Media analysis, quality checking, metadata extraction
|
|
894
|
+
- **Cloud Integration** - S3, Cloudinary, Imgur upload
|
|
895
|
+
- **AI/ML** - Face detection, object recognition, style transfer
|
|
896
|
+
- **Automation** - Batch processing, workflow templates
|
|
897
|
+
|
|
898
|
+
---
|
|
899
|
+
|
|
900
|
+
## 📄 License
|
|
901
|
+
|
|
902
|
+
MediaProc is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
|
|
903
|
+
|
|
904
|
+
### What This Means
|
|
905
|
+
|
|
906
|
+
✅ **You CAN:**
|
|
907
|
+
|
|
908
|
+
- Use MediaProc commercially
|
|
909
|
+
- Modify the source code
|
|
910
|
+
- Distribute your modifications
|
|
911
|
+
- Use it privately
|
|
912
|
+
- Contribute to the project
|
|
913
|
+
|
|
914
|
+
⚠️ **You MUST:**
|
|
915
|
+
|
|
916
|
+
- Include the original copyright notice
|
|
917
|
+
- Include the license text
|
|
918
|
+
- Give credit to **[@0xshariq](https://github.com/0xshariq)** (original author)
|
|
919
|
+
|
|
920
|
+
❌ **We're NOT LIABLE:**
|
|
921
|
+
|
|
922
|
+
- No warranty is provided
|
|
923
|
+
- Authors are not liable for any damages
|
|
924
|
+
|
|
925
|
+
### Attribution
|
|
926
|
+
|
|
927
|
+
If you use MediaProc in your project, a mention would be appreciated:
|
|
928
|
+
|
|
929
|
+
```
|
|
930
|
+
Powered by MediaProc - https://github.com/0xshariq/mediaproc-cli
|
|
931
|
+
Created by @0xshariq
|
|
932
|
+
```
|
|
933
|
+
|
|
934
|
+
---
|
|
935
|
+
|
|
936
|
+
## 👥 Credits
|
|
937
|
+
|
|
938
|
+
**Created and maintained by:**
|
|
939
|
+
|
|
940
|
+
- **[@0xshariq](https://github.com/0xshariq)** - Original Author & Lead Developer
|
|
941
|
+
|
|
942
|
+
**Contributors:**
|
|
943
|
+
See [CONTRIBUTORS.md](CONTRIBUTORS.md) for the list of amazing people who have contributed to this project.
|
|
944
|
+
|
|
945
|
+
Want to be listed here? Check out our [Contributing Guide](CONTRIBUTING.md)!
|
|
946
|
+
|
|
947
|
+
---
|