This is an app for uploading videos, processing them into 480p, 720p, and 1080p. Once uploaded, you can watch them in a custom-made player and embed them into another website as "iframe".
- To set up CORS in GCP CLI: gsutil cors set cors.json gs://<bucket name>
- Videos are uploaded with the app using signed URLs.
- Raw video is uploaded to Google Cloud Storage (GCP) bucket via multipart upload.
- GCP upload triggers Google Pub/Sub which pushes a notification to the transcoding server.
- FFmpeg generates thumbnails with all set qualities.
- FFmpeg transcodes video into all set qualities.
- Transcoded videos are saved to the production bucket and data is saved to the database.
- The app consumes content via streaming.
- Custom-made player
- Switching between video resolutions: 480p, 720p and 1080p
- Thumbnails on hover or scrubbing over the timeline
- Embedded video player support
- App: Next.js, MongoDB
- Video processing: Node.js, FFMpeg, MongoDB
- Google Cloud Storage and Pub/Sub
- Deployed on Vercel and Railway