66 lines
1.6 KiB
Markdown
66 lines
1.6 KiB
Markdown
# MetaMesh Plugin: FFmpeg
|
|
|
|
A MetaMesh plugin that extracts video, audio, and subtitle stream metadata using FFprobe.
|
|
|
|
## Description
|
|
|
|
This plugin analyzes video files using FFprobe (from FFmpeg) to extract detailed stream information including:
|
|
|
|
- **Video streams**: codec, resolution (as displayed), bitrate, frame rate
|
|
- **Audio streams**: codec, language, sample rate, channels
|
|
- **Subtitle streams**: codec, language, title
|
|
- **Format info**: duration, container format
|
|
|
|
## Metadata Fields
|
|
|
|
| Field | Description |
|
|
|-------|-------------|
|
|
| `fileinfo/duration` | Video duration in seconds |
|
|
| `fileinfo/formatName` | Container format (e.g., matroska, mp4) |
|
|
| `fileinfo/streamdetails/video/{n}/*` | Video stream properties |
|
|
| `fileinfo/streamdetails/audio/{n}/*` | Audio stream properties |
|
|
| `fileinfo/streamdetails/subtitle/{n}/*` | Subtitle stream properties |
|
|
|
|
## Dependencies
|
|
|
|
- Requires `file-info` plugin to run first (checks `fileType === 'video'`)
|
|
|
|
## Configuration
|
|
|
|
No configuration required.
|
|
|
|
## API Endpoints
|
|
|
|
| Endpoint | Method | Description |
|
|
|----------|--------|-------------|
|
|
| `/health` | GET | Health check |
|
|
| `/manifest` | GET | Plugin manifest |
|
|
| `/configure` | POST | Update configuration |
|
|
| `/process` | POST | Process a file |
|
|
|
|
## Running Locally
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
npm start
|
|
```
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
docker build -t metamesh-plugin-ffmpeg .
|
|
docker run -p 8080:8080 metamesh-plugin-ffmpeg
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `PORT` | `8080` | HTTP server port |
|
|
| `HOST` | `0.0.0.0` | HTTP server host |
|
|
|
|
## License
|
|
|
|
MIT
|