QUT CAB432 Cloud Computing · Assessment 3

Share videos at full quality.

Upload once, send a link, and it plays in any browser. We repackage your video for fast start-up and seeking, and re-encode it only when we have to.

  • No account needed
  • Private storage
  • Deleted after 7 days

Drag and drop your video

or

MP4, MOV, WebM or MKV · up to 500 MiB · up to 10 minutes

Photo of Van Thien Phuoc (Lucas) Mai
Van Thien Phuoc (Lucas) MaiStudent ID 11642556 · QUT CAB432 Cloud Computing

From upload to link in four steps

Each step is a separate cloud service, so uploads, processing and playback scale independently.

  1. UploadYour browser sends the file straight to private cloud storage. You get the share link at once.
  2. QueueThe upload adds a job to a queue, so bursts of videos wait their turn instead of failing.
  3. OptimiseA worker repackages the video, or converts it to H.264 and AAC if needed.
  4. WatchThe video is served from a global edge cache, so repeat views are quick.
Amazon S3SQSECS FargateDynamoDBLambdaCloudFrontBedrock (AI)
Scales to zeroNo workers run while nobody is uploading, which keeps costs low. The first video after a quiet period waits about 4 minutes for a worker to start; later ones are quick.
Handles burstsWhen many videos arrive together, the queue grows and more workers start automatically, up to a safe limit.
Cached at the edgePlayback is served by CloudFront, so the same video does not hit storage again for every viewer.

Architecture at a glance

Uploading and watching take different paths, so a burst of uploads never slows down people who are watching.

ClipShift architecture Upload path: the browser uploads to a private S3 bucket with a presigned POST. S3 sends an event to an SQS queue with a dead-letter queue. ECS Fargate workers running ffmpeg read the queue, write the optimised video back to S3 and update the status in DynamoDB. After the video is ready, the worker sends six small frames to Amazon Bedrock, an optional AI service, which writes a short description that is saved in DynamoDB. CloudWatch alarms drive Application Auto Scaling between 0 and 4 workers. Watch path: the browser talks to CloudFront, which serves media from S3 through an origin access identity and sends API calls to a Lambda function that reads DynamoDB. UPLOAD AND PROCESS WATCH AND SHARE CloudWatch alarms → Auto Scaling: 0 to 4 workers Browseruploader and viewer Amazon S3private bucket Amazon SQSjobs queue + DLQ ECS FargateDocker + ffmpegwrites video to S3 Amazon BedrockGemma 3 12B (AI)describes the videooptional, best effort CloudFrontedge cache AWS LambdaHTTP API DynamoDBvideo status presignedPOST S3event jobmessage HTTPS /a3 API read /media (OAI) status + AI text 6 framesafter READY

The optional AI description

After a video is ready, an AI service can write a one-or-two-sentence description. When someone opens the share link, a "Video insights" button appears in the corner and opens a small summary panel with it. This is an extra: ClipShift works exactly the same without it.

What we measured

Measured on 28 October 2026 in ap-southeast-2 (Sydney), with one worker size of 1 vCPU and 2 GB. These are results from our own tests, not guarantees.

Design decisions

Built for QUT CAB432 on AWS

ClipShift is a student cloud computing project. Every box below is a real piece of the running system.

QUT logo
CAB432 Cloud ComputingAssessment 3 · Queensland University of Technology
Amazon Web Services (AWS)Amazon Web Services (AWS)Docker
Deployed on AWS Region: Asia Pacific (Sydney), ap-southeast-2. Workers are containerised with Docker.
Amazon Web ServicesDockerPythonFFmpeg

Independent student project. It is not an official QUT or AWS service and is not endorsed by either. QUT, AWS and Docker names and logos belong to their owners. Background and logo artwork was created with AI assistance. Video descriptions are generated by an AI model (Amazon Bedrock) and may contain mistakes.