- main service
npm run start
- queue service
npm run queue
A state-of-the-art, open-source video streaming platform, MERN Video Streaming provides a full-stack, comprehensive solution that makes use of the newest MERN stack technologies. Users can effortlessly upload, organize, and stream videos on demand with MERN Video Streaming, offering a smooth experience. This project has the capacity to process videos and send out notifications in real time when it is finished.
The backend consists of three services that communicate with each other via Redis messaging. These consist of an HTTP server that serves HLS video files, an API server, and a video conversion service. The project's client employs the create-react-app and MUI libraries, as well as socket.io-client and React Context.
An Expressjs application called the API server makes use of the Joi, Multer, BullMQ, Socket.io, and MongoDB drivers. The primary database on the server is MongoDB, which is used in conjunction with Redis for data processing and storage. The docker-compose command spins up the database and Redis.
The video conversion service is a node process that uses the BullMQ library to communicate with Redis and convert videos. There are no HTTP ports open to the service.
The HTTP server is a plain and simple server that serves HLS video files.
To get started with MERN Video Streaming, you will need to have the following software installed on your local machine:
MERN Video Streaming has been built with the following open-source technologies:
- MongoDB - A document-based database used to store user and video data
- Express - A Node.js web application framework used for the server-side of the application
- React - A JavaScript library for building user interfaces used for the client-side of the application
- Node.js - A JavaScript runtime environment used to run the server-side code