HTTP-based service responsible for encoding .mp4 videos.
Depends on:
- Remote Storage (e.g. GCP Cloud Bucket).
Responsibilities:
- Download .mp4 files from a Cloud Bucket in GCP.
- Convert .mp4 files into fragments using mp4fragment.
- Generate video slices using Bento4.
Background process responsible for uploading recently encoded videos to a remote storage.
Depends on:
- VideoService
- Remote Storage (e.g. GCP Cloud Bucket).
Responsibilities:
- Scan for recently encoded videos.
- Upload video slices in batches to Remote Storage.
- Start all applications in background with
docker compose up -d
- Navigate to your local instance of RabbitMQ Manager at localhost:15
- Create a new exchange called "dlx" type "fanout" and durability "durable".
- Create a new queue named "processed-videos" and bind it to "amq.direct" with routing key "jobs"
- Create a new queue named "rejected-videos" and bind it to "dlx" with no specific routing key.
- Publish a new message to "videos" with the following format:
{
"resource_id": "my-resource-id-can-be-a-uuid-type",
"file_path": "convite.mp4"
}
- Follow the logs to see the application running.
- The queue
processed-videos
should have a new message by now. Otherwise, something should be forwarded torejected-videos
in case of failure.