The following folder contains an implementation of a video streaming/playing application.
The application allows a user to stream video files from a server to a client over a network connection, and play them in real-time.
The application is divided into three main components:
-
Backend: Responsible for reading video files from disk, encoding them into a suitable format for streaming, and sending the encoded video data over a network connection to the client. The server uses FFmpeg to stream the video files.
-
Frontend: A web user interface that allows users to select video files to stream, control playback (play, pause, stop), and view the video stream (Including AI Analytics sent in real time). The frontend is build on the following stack:
- Vite
- React
- Tailwind CSS
- Library: A shared library that is distributed to third party application, allowing them to connect to the server and receive live video streams. The library also provides functionality ot send back AI Analytics data to the server in real time, to be displayed to end users. The library is build using Rust, with FFmpeg for video decoding.
To get started with the video streaming application, follow these steps:
Install and start backend component:
# Backend setup
cd backend && uv sync
# Frontend setup
cd frontend && npm install
Start a development environment(unified for frontend and backend):
./run_local.sh


