Skip to content

EyevinnStudentDev/vod-create-gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VOD Create GUI

VOD Create GUI is a user-friendly web-based application designed to simplify video transcoding and storage management using MinIO. Upload videos, transcode them to streaming-friendly formats, and efficiently manage your video content.

github release license PRs welcome made with love by Eyevinn Slack


Features

  • Upload video files into MinIO for secure storage
  • Transcode video into HLS format for streaming
  • Presigned URL generation for secure file uploads
  • Built with Next.js for modern web development
  • Docker support for easy deployment

Requirements

  • Node.js v18.15.0 or higher (For running Next.js)
  • npm v8.5.0 or higher (For managing dependencies)
  • Next.js v14.1.3 or higher (For frontend and backend logic)
  • Docker (For containerized deployment)
  • MinIO (For object storage)

Installation Guide

1. Clone the Repository

git clone https://github.com/EyevinnStudentDev/vod-create-gui.git
cd vod-create-gui

2. Install Dependencies

npm install

3. Set Up Environment Variables

Create a .env file in the root directory and add the following configuration, where you replace the values with corresponding values from your services. All of which are available at Eyevinn's OSAAS: https://app.osaas.io/. To clarify, you need two MinIO buckets, one where untranscoded files will be stored and one output bucket where transcoded files will be stored.

# OSAAS
OSC_ACCESS_TOKEN=OSC_ACCESS_TOKEN

# Minio bucket shared
AWS_SSL=AWS_SSL

# Minio Bucket Input
AWS_URL=AWS_URL (exmple: "user-input.minio-minio.auto.prod.osaas.io")
AWS_ACCESS_KEY=AWS_ACCESS_KEY               (MinIO Input Access Key)
AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY (MinIO Input Secret Key)
AWS_TENANT_BUCKET=AWS_TENANT_BUCKET         (MinIO Input Bucket Name)

# Minio Bucket Output
AWS_URL_OUT=AWS_URL_OUT
AWS_ACCESS_KEY_OUT=AWS_ACCESS_KEY_OUT       (MinIO Output Access Key)
AWS_SECRET_ACCESS_KEY_OUT=AWS_SECRET_ACCESS_KEY_OUT (MinIO Output Secret Key)
AWS_TENANT_BUCKET_OUT=AWS_TENANT_BUCKET_OUT (MinIO Output Bucket Name)

# Port number
PORT=PORT                                   (Port number on which the application will be run)

4. Run the Application

Development Mode

npm run dev

Production Mode

npm run build
npm start

The application will be available at http://localhost:3000.


Docker Setup

To run the application inside Docker, follow these steps:

1. Build the Docker Image

docker build --no-cache -t vod-create-gui .

2. Run the Application with Docker

docker run --env-file .env -p 3000:3000 vod-create-gui

This will start the application in a Docker image.


API Endpoints

Method URL Description Requires Body?
GET /api/getFiles Fetch input files from MinIO No
GET /api/getTranscodedFiles Fetch transcoded files from MinIO No
POST /api/presignedUrl Generate presigned URL for upload Yes
POST /api/presignedEncore Generate presigned URL for transcoding with SVT Encore Yes
POST /api/presignedTranscoded Generate presigned URL transcoded file in output MinIO bucket Yes
POST /api/transcode Start video transcoding Yes
DELETE /api/deleteFile Delete a file from MinIO Yes
DELETE /api/emptyBucket Deletes all transcoded files from the MinIO output bucket No

Development Notes

  • The frontend is built using Next.js, TailwindCSS, and TypeScript.
  • The backend uses Next.js API routes and SVT Encore to manage video uploads and processing.
  • MinIO is used for storing video files before and after transcoding.

The Team

Contributing

See CONTRIBUTING

License

This project is licensed under the MIT License, see LICENSE.

Support

Join our community on Slack where you can post any questions regarding any of our open source projects. Eyevinn's consulting business can also offer you:

  • Further development of this component
  • Customization and integration of this component into your platform
  • Support and maintenance agreement

Contact sales@eyevinn.se if you are interested.

About Eyevinn Technology

Eyevinn Technology is an independent consultant firm specialized in video and streaming. Independent in a way that we are not commercially tied to any platform or technology vendor. As our way to innovate and push the industry forward we develop proof-of-concepts and tools. The things we learn and the code we write we share with the industry in blogs and by open sourcing the code we have written.

Want to know more about Eyevinn and how it is to work here. Contact us at work@eyevinn.se!

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published