This service allows users to upload videos and stream them using Adaptive Bitrate (ABR) Streaming.
- ✅ User Authentication (Register/Login)
- ✅ Secure Video Upload with Pre-signed URLs
- ✅ HLS Streaming for ABR Playback
- ✅ Token-based Access Control
I utilized the Strategy Pattern to handle both Single File Upload and Multipart Upload dynamically.
The Singleton Pattern is used in this project to ensure a single instance of critical resources such as - Database Connection, AWS Session, RabbitMQ Connection
You must register and log in to get an access_token
.
Use the following command to register a new user:
curl -X POST "http://localhost:8080/api/v1/register" \
-H "Content-Type: application/json" \
-d '{"username": "your_username", "password": "your_password"}'
curl -X POST "http://localhost:8080/api/v1/initialize_upload" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_jwt_token_here" \
-d '{"bucket": "abr-raw", "name": "test.mp4", "file_type": "video/mp4", "strategy": "single"}'
curl -X PUT "https://your-storage-provider/upload-url" \
-T "/path/to/your/video.mp4" \
-H "Content-Type: video/mp4"
- Create a Dashboard to view the status of the transcoded file
- Implement something similar to Netflix VMAF for video quality assessment