StreamScale is an open-source tool designed to simplify the process of transcoding and streaming videos. Whether you're looking to convert video files into different formats or stream them seamlessly across various devices, StreamScale provides a robust solution. Built with NodeJS (API,Worker), NextJS (frontend), it offers scalability and efficiency, making it ideal for developers and organizations needing reliable video processing capabilities.
- React.js
- PostgreSQL
- AWS
- Golang
- Redis (PUB/SUB)
- TailwindCSS
- FFMPEG
- Bento4
👉 Register: Users can sign up to get access to the dashboard.
👉 Upload Video Files: Users can upload videos that will then be transcoded.
👉 Update Profile: Users can update their profile details.
👉 User Authorization: As transcoding a video is a costly process only a few people are allowed to use the app as of now (Will shift to subscription-based soon).
👉 File Upload Using AWS S3: Users can upload the video files which will initially stored on AWS S3.
👉 Transcode A Video: A transcoding task starts as soon as a user uploads the video and does all the required processes to make it work.
👉 Dashboard: Authorized users can upload and view the details (name, status, size) of the videos.
👉 Video Player: After the video is transcoded the user can play the videos in the browser itself.
New features will added in future
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
Here are some prerequisites that are required to run this project:
- AWS account.
- Cloudflare Account with updated billing information (You can skip this if you want to use s3 as your primary storage).
- PostgreSQL and a Redis database URL (Ignore if deploying locally).
Cloning the Repository
git clone https://github.com/amankumarsingh77/StreamScale.git
cd StreamScaleInstallation
Install the project dependencies using npm:
Client
cd client
npm installServer
go mod tidy
go run ./cmd/server.goWorker
go run ./cmd/worker.goOpen http://localhost:3000 in your browser to view the project.
Upload the AWS Cloudformation template:
- Make sure to have your AWS account registered, up and running here
- Download the
cloudformation.ymlfile from here - Visit AWS CloudFormation service.
- Click on the
Create Stackbutton. - On the Create Stack page, select
Upload a template file. - Choose the
cloudformation.ymlfile you downloaded earlier, and click onNext. - Once the stack creation is complete click on the
outputtab to get all theawsrequired credentials and copy them into your.envfile.
Create a R2 bucket:
- Navigate to R2 section
- Click on "Create Bucket"
- Fill the basic details as per your requirements and click on "Create Bucket" button.
Configure R2:
- R2 dev domain is used to serve the static files. But it is disabled by default.
- You can enable it by going to settings tab of the bucket and clicking on the "Allow Access" (Not recommended. Learn more).
- You can attach your own domain.
Q) Want to chat or need assistance with setting up a project?
