Skip to content

greeta-video-01/video-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📖 Full-Stack Templates For Spring Boot Developers

✅ 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

📖 Links

See original spring-video HLS video streaming application: Spring Video

See previous Spring Boot Template for AWS Setup Example: Twitter Kafka Analytics Platform

📖 Step By Step Guide

Local Docker Environment Setup:

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 video application and restart application with rebuilt image
  • replace video with 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 worker application and restart application with rebuilt image
  • worker uses custom Dockerfile image to pre-install FFmpeg Tool. Therefore, it should be rebuilt with custom script
  • actual rebuild of worker docker image happens in docker-app-compose.yml file (see build: "./worker-service")

Local Docker Environment Acceptance Test:

  1. run sh docker-start.sh

  2. run commands in ./command.txt (Debezium Kafka PostgreSQL connectors)

  3. open http://localhost:9000 in your Browser

  • For authorized requests: click Authorize and use admin/admin or user/user for credentials (clientId should be video-app)
  1. goto http://localhost:9000/webjars/swagger-ui/index.html#/storage-controller/upload and upload mp4 file (you can use test.mp4 in worker-service folder for testing)

  2. 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

  3. goto http://localhost:9000/webjars/swagger-ui/index.html#/video-controller/profile with video id and wait for the video status to become READY

  4. use http://localhost:9000/video/api/video/{your_video_id}/index.m3u8 for any HLS player (alternatively, download links in m3u8 file and open them with any video player)

  • Congratulations! You successfully tested Swagger UI Gateway and Video Streaming API!

Remote Debugging

Configuration to debug a containerized Java application from IntelliJ IDEA

Minio File Storage Server

  • Minio File Storage Server should be available here: http://localhost:8086/

  • If acceptance testing was successful, then stream and video Buckets should exist and contain video files

  • You can download and browse video files using this console

Kafka UI

  • Kafka UI should be available here: http://localhost:8070/
  • You can browse topics, partitions, messages and other kafka resources using this console

Zipkin Server

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages