This repository is a Spring Boot video streaming service for my media collection.
You can view a brief demo of this project here.
- Android Application
- ReactJS web application (located in the src/main/js directory).
- Loading media at a given path ('Movies', 'Series', etc).
- Streaming a media file.
- Loading media events (for persistent Android clients).
- root-directory/Movies/The Matrix.mp4
- root-directory/Series/The Office/Season 1/S01E01.mp4
When new media is added to a monitored directory, the following process is triggered:
- Kubernetes job is launched to transcode to H.264/AAC.
- Media metadata is downloaded from OMDB and stored in database.
- 'New Media' event is added to database for processing by Android clients.
- Push notifications are sent to Android devices to notify of new media.
- Spring Boot
- Apache Camel
- Maven
- Postgresql
- Hashicorp Vault
- Keycloak
- Grafana
- Prometheus
- Kubernetes
- Jenkins
- SonarQube
- Helm (chart located in helm/localmovies directory)