Skip to content

Commit 79d99ba

Browse files
Merge pull request #25 from rendiffdev/Perofrmance-Fixed-
Fixed Issues
2 parents d4ba7af + 26de181 commit 79d99ba

File tree

8 files changed

+1484
-11
lines changed

8 files changed

+1484
-11
lines changed

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ POST /api/v1/convert # Universal media conversion
7474
POST /api/v1/analyze # Quality metrics (VMAF, PSNR, SSIM)
7575
POST /api/v1/stream # HLS/DASH adaptive streaming
7676
POST /api/v1/estimate # Processing time/cost estimation
77+
POST /api/v1/batch # Batch processing (up to 100 jobs)
7778
```
7879

7980
### Job Management
@@ -83,6 +84,8 @@ GET /api/v1/jobs # List and filter jobs
8384
GET /api/v1/jobs/{id} # Job status and progress
8485
GET /api/v1/jobs/{id}/events # Real-time progress (SSE)
8586
DELETE /api/v1/jobs/{id} # Cancel job
87+
GET /api/v1/batch/{id} # Batch job status and progress
88+
DELETE /api/v1/batch/{id} # Cancel entire batch
8689
```
8790

8891
### System & Health
@@ -107,15 +110,27 @@ GET /docs # Interactive API documentation
107110
- **VMAF** - Perceptual video quality measurement
108111
- **PSNR** - Peak Signal-to-Noise Ratio
109112
- **SSIM** - Structural Similarity Index
113+
114+
> **📊 Need detailed media analysis?** Check out our companion [FFprobe API](https://github.com/rendiffdev/ffprobe-api) for comprehensive media file inspection, metadata extraction, and format analysis.
110115
- **Bitrate Analysis** - Compression efficiency metrics
111116

112117
### Enterprise Security
113118

114119
- **API Key Authentication** with role-based permissions
115-
- **Rate Limiting** with configurable thresholds
116-
- **Input Validation** prevents command injection
120+
- **Advanced Rate Limiting** with Redis-backed distributed limiting
121+
- **Input Validation** prevents command injection and malicious uploads
122+
- **Media File Security** with comprehensive malware detection
117123
- **HTTPS/SSL** with automatic certificate management
118124
- **Security Headers** (HSTS, CSP, XSS protection)
125+
- **Security Audit Logging** tracks suspicious activity
126+
127+
### Advanced Features
128+
129+
- **Adaptive Streaming** - HLS/DASH with multiple quality variants
130+
- **Batch Processing** - Process up to 100 files simultaneously
131+
- **Enhanced Thumbnails** - Multiple formats, grids, and quality options
132+
- **Professional Watermarking** - Advanced positioning and opacity controls
133+
- **Quality Analysis** - VMAF, PSNR, SSIM with reference comparison
119134

120135
### Production Monitoring
121136

api/main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from api.config import settings
1616
from api.middleware.security import SecurityHeadersMiddleware, RateLimitMiddleware
1717
from api.models.database import init_db
18-
from api.routers import admin, api_keys, convert, health, jobs
18+
from api.routers import admin, api_keys, batch, convert, health, jobs
1919
from api.services.queue import QueueService
2020
from api.services.storage import StorageService
2121
from api.utils.error_handlers import (
@@ -149,6 +149,7 @@ def _configure_routes(application: FastAPI) -> None:
149149
application.include_router(health.router, prefix="/api/v1", tags=["health"])
150150
application.include_router(convert.router, prefix="/api/v1", tags=["processing"])
151151
application.include_router(jobs.router, prefix="/api/v1", tags=["jobs"])
152+
application.include_router(batch.router, prefix="/api/v1", tags=["batch"])
152153

153154
# Management routes
154155
application.include_router(api_keys.router, prefix="/api/v1", tags=["authentication"])

api/models/job.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ class Job(Base):
107107
webhook_url = Column(String, nullable=True)
108108
webhook_events = Column(JSON, default=["complete", "error"])
109109

110+
# Batch processing
111+
batch_id = Column(String, nullable=True, index=True)
112+
batch_index = Column(Integer, nullable=True)
113+
110114
# Indexes
111115
__table_args__ = (
112116
Index("idx_job_status_created", "status", "created_at"),

0 commit comments

Comments
 (0)