📖 Read the documentation (github pages) 👀
- 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
- 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)
git clone https://github.com/EyevinnStudentDev/vod-create-gui.git
cd vod-create-gui
npm install
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/:
# for API calls to OSAAS
OSC_ACCESS_TOKEN=OSC_ACCESS_TOKEN
# MinIO Storage
MINIO_ACCESS_KEY=MINIO_ACCESS_KEY
MINIO_SECRET_ACCESS_KEY=MINIO_SECRET_ACCESS_KEY
# MinIO input bucket
AWS_ACCESS_KEY=AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY
AWS_TENANT_BUCKET=AWS_TENANT_BUCKET
# MinIO output bucket
AWS_URL_OUT=AWS_URL_OUT
AWS_ACCESS_KEY_OUT=AWS_ACCESS_KEY_OUT
AWS_SECRET_ACCESS_KEY_OUT=AWS_SECRET_ACCESS_KEY_OUT
AWS_URL=AWS_URL
AWS_SSL=AWS_SSL
npm run dev
npm run build
npm start
The application will be available at http://localhost:3000.
To run the application inside Docker, follow these steps:
docker build --no-cache -t vod-create-gui .
docker run --env-file .env -p 3000:3000 vod-create-gui
This will start the application in a Docker image.
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 |
- The frontend is built using Next.js, TailwindCSS, and TypeScript.
- The backend uses Next.js API routes to manage video uploads and processing.
- MinIO is used for storing video files before and after transcoding.
See CONTRIBUTING
This project is licensed under the MIT License, see LICENSE.
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 [email protected] if you are interested.
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 [email protected]!