2025-06-25 17:05:16 +02:00
2025-06-03 10:39:06 +02:00
2025-06-25 17:04:18 +02:00
2025-06-03 10:39:06 +02:00
2025-06-03 10:39:06 +02:00
2025-06-03 10:44:46 +02:00

Overview

The VoD System is a powerful clip management platform designed to streamline how you handle your video content. Whether you're a content creator, streamer, or educator, VoD System lets you:

  • Upload clips effortlessly and securely.
  • Edit and trim videos with intuitive controls.
  • Compress files to specific file sizes.
  • Organize your clips for quick access and sharing.

This VoD system began as a small project back in my 5th year of secondary school, during lockdown. I wanted a quick way to send game clips to Discord, but the 8MB file size limit made it frustrating to manually tweak bitrates for every clip. To solve that, I wrote a simple Python script to automate the process. What started as a quick fix has since evolved into a full-fledged system — now built with a Spring Boot backend and a modern React/Vite frontend.

Requirements

  • Docker & Docker Compose
  • JDK 21+
  • Node.js 16+
  • FFMPEG

Steps

  1. Spin up docker container with docker compose up
  2. Run ./mvnw clean package to build the jar
  3. Run ./mvnw spring-boot:run to run the backend section
  4. Run cd frontend && npm install && npm run dev to build and run the frontend
  5. Endpoints should be available at 8080 (backend) and 5173 (frontend)

Future Plans

  • User Management
    • Database integration with authentication and login
    • Clip saving and management for authenticated users
  • Format Handling
    • Backend conversion of non-MP4 files via FFMPEG for broader format support
  • Input Sources
    • Support for local file uploads and YouTube imports
  • Testing
    • Unit tests, including coverage for FFMPEG-related functionality
  • API Documentation
    • Comprehensive and maintainable backend API docs
Description
A lightweight VoD system for uploading, editing, and compressing video clips to a target file size for easy sharing.
Readme 924 KiB
Languages
Java 59.9%
TypeScript 36.7%
CSS 2.1%
JavaScript 0.6%
Dockerfile 0.4%
Other 0.3%