This project is a robust video streaming platform built using Spring Boot for the backend and Vite React for the frontend. It allows users to upload, stream, and watch videos efficiently. The backend handles video processing, storage, and retrieval, ensuring smooth playback by implementing HLS (HTTP Live Streaming) for video delivery. Videos are stored in multiple quality formats, enabling adaptive streaming based on the user's network conditions.
Backend:
Spring Boot: For building the RESTful APIs and handling the backend logic.
Frontend:
Other Tools and Technologies:
POST /api/v1/videos
Parameter | Type | Description |
---|---|---|
video_file, title, description |
Multipart, String, String |
Required All Fields |
GET /api/v1/videos
Parameter | Type | Description |
---|---|---|
none |
none |
It returns all Videos in the videos present with title , description , file Path, etc |
GET /api/v1/videos/stream/{videoId}
Parameter | Type | Description |
---|---|---|
videoId |
String |
It return a video resource which load at once |
GET /api/v1/videos/stream/range/{videoId}
Parameter | Type | Description |
---|---|---|
videoId |
String |
It return a video resource but it sent video in chunks not at once |
GET /api/v1/videos/{videoId}/master.m3u8
Parameter | Type | Description |
---|---|---|
videoId |
String |
It return a HLS master.m3u8 file which has information about video segments |
GET /api/v1/videos/{videoId}/{segment}.ts
Parameter | Type | Description |
---|---|---|
videoId, segment |
String,String |
It return a video segment |
The frontend, built with Vite React, provides a responsive and intuitive user interface, enabling users to interact with the platform smoothly. Tailwind CSS is used for styling, ensuring a modern and consistent look across different devices.
This project demonstrates a full-stack approach to building scalable video streaming applications, integrating video processing, storage, and real-time streaming capabilities.