✅ Video Streaming Platform with Debezium CDC Kafka Connector, Kafka Event Streaming, Minio File Storage and FFmpeg Video Processing
- 📖 This Full-Stack Developer Template provides fully functional Development Environment:
- 📖 Event-Driven Spring Boot Microservices with Debezium Change Data Capture, Debezium Kafka Connector and Kafka Event Streaming
- 📖 Swagger UI Gateway with Keycloak Authorization
- 📖 Video Streaming API with Minio File Storage, PostgreSQL Event and Metadata Persistence, Redis Cache Manager, Debezium Change Data Capture and FFmpeg Video Processing
- 📖 Custom Spring Boot Docker Image with pre-installed FFmpeg Video Processing Tool
- 📖 Local Docker Development Environment
- 📖 Full Technology Stack:
- ✅ Swagger UI Gateway
- ✅ Debezium PostgreSQL Change Data Capture
- ✅ PostgreSQL Event and Metadata Persistence
- ✅ Debezium Kafka Connector
- ✅ Minio File Storage Server
- ✅ Redis Cache Manager
- ✅ Spring Boot 3
- ✅ Spring Cloud Gateway
- ✅ Kafka Transactional Event Streaming
- ✅ FFmpeg Video Processing Tool
- ✅ Event-Driven Microservices
- ✅ Kafka Event Store
- ✅ Kafka UI
- ✅ Keycloak Oauth2 Authorization Server
- ✅ Local Docker Environment
- ✅ Remote Debugging
- ✅ Zipkin Distributed Tracing
See original spring-video HLS video streaming application: Spring Video
See previous Spring Boot Template for AWS Setup Example: Twitter Kafka Analytics Platform
sh docker-start.sh
- this script will build all spring boot docker images and start environment with your code changes
sh docker-restart.sh
- this script will restart all docker containers without rebuilding images
sh docker-app-restart.sh video
- this script will rebuild spring boot docker image for
videoapplication and restart application with rebuilt image - replace
videowith the name of the application you want to rebuild and restart
sh docker-worker-restart.sh
- this script will rebuild spring boot docker image for
workerapplication and restart application with rebuilt image workeruses custom Dockerfile image to pre-install FFmpeg Tool. Therefore, it should be rebuilt with custom script- actual rebuild of
workerdocker image happens indocker-app-compose.ymlfile (seebuild: "./worker-service")
-
run
sh docker-start.sh -
run commands in
./command.txt(Debezium Kafka PostgreSQL connectors) -
open http://localhost:9000 in your Browser
- For authorized requests: click
Authorizeand useadmin/adminoruser/userfor credentials (clientIdshould bevideo-app)
-
goto http://localhost:9000/webjars/swagger-ui/index.html#/storage-controller/upload and upload mp4 file (you can use
test.mp4inworker-servicefolder for testing) -
goto http://localhost:9000/webjars/swagger-ui/index.html#/video-controller/create and create video with filename from step 4, please copy the video id from response
-
goto http://localhost:9000/webjars/swagger-ui/index.html#/video-controller/profile with video id and wait for the video status to become READY
-
use http://localhost:9000/video/api/video/{your_video_id}/index.m3u8 for any HLS player (alternatively, download links in
m3u8file and open them with any video player)
- Congratulations! You successfully tested
Swagger UI GatewayandVideo Streaming API!
-
Minio File Storage Server should be available here: http://localhost:8086/
-
If acceptance testing was successful, then
streamandvideoBuckets should exist and contain video files -
You can download and browse video files using this console
- Kafka UI should be available here: http://localhost:8070/
- You can browse topics, partitions, messages and other kafka resources using this console
- Zipkin Server for Distributed Tracing should be available here: http://localhost:9411/
