Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Video Transcoder - Setup Instructions

Java-based application developed in Quarkus to run on the AWS EC2 instance worker nodes for the Transcoder system project. The application main features are:

  • Actively pooling the main SQS Queue for transcoding tasks
  • Downloading media from S3 bucket to transcode locally using FFMEPG tool
  • Updating the processing status of the transcoding task in DynammoDB table
  • Uploading transcoded media to S3 bucket
  • Deleting task from the Queue

Project Structure

src/main/java/org/acme/transcoder/
├── client/          # AWS SDK client configuration
├── controller/      # REST API endpoints
├── model/           # DTOs and data models
└── service/         # Business logic (interface + impl)
    ├── S3Service
    ├── TranscoderService
    └── SchedulerService

AWS Configuration

Update src/main/resources/application.properties with your AWS resources:

# AWS Configuration
aws.region=us-east-1
aws.s3.bucket=your-actual-bucket-name
aws.sqs.queue.url=https://sqs.us-east-1.amazonaws.com/123456789/your-queue-name
aws.dynamodb.table=video-processing-table

# Transcoder Configuration
transcoder.temp.dir=C:/temp/transcoder  # Windows path
transcoder.poll.interval=30s
ffmpeg.path=ffmpeg  # or full path like C:/ffmpeg/bin/ffmpeg.exe

Running the Application

Development Mode

mvn quarkus:dev

The application will start on http://localhost:8080

Production Build

mvn clean package
java -jar target/quarkus-app/quarkus-run.jar

Prerequisites

  • Java 17 or higher (you have Java 22 ✓)
  • Maven 3.x
  • FFmpeg installed and available in PATH
  • AWS Account with S3, SQS, and DynamoDB configured