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
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
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.exemvn quarkus:devThe application will start on http://localhost:8080
mvn clean package
java -jar target/quarkus-app/quarkus-run.jar- 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