This is an app for uploading videos and 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 an iframe.
System Architecture:
- Videos are uploaded with the app using a password token.
- Raw video is uploaded to the Google Cloud Storage (GCP) bucket via multipart upload.
- GCP upload triggers Google Pub/Sub, pushing a notification to the transcoding server.
- FFmpeg generates thumbnails with all set qualities.
- FFmpeg transcodes video into all set qualities.
- The app consumes content via streaming.
Features:
- Custom-made player
- Switching between video resolutions: 480p, 720p, and 1080p
- Thumbnails on hover or scrubbing over the timeline
- Embedded video player support
Technologies:
- App: vanilla Next.js, MongoDB
- Video processing: Node.js (Express.js), FFmpeg, MongoDB
- Google Cloud Storage and Pub/Sub
- Deployed on Vercel and Railway