CCTV Streaming Module Development (Golang + MediaMTX)

Job ID: 40284536

Budget: $10 – $30 USD

CCTV Streaming Module Development (Golang + MediaMTX)
----------------------------------------------------
Project Overview
-----------------

I need to develop a CCTV streaming module using Golang and MediaMTX. The system will allow users to add cameras and stream them through a web interface. The application should support both desktop (laptop) and mobile browsers.

This project will be deployed on AWS infrastructure and should follow the architecture described below.

System Workflow
---------------------

The request flow will be as follows:

Frontend (Next.js hosted on AWS Amplify)

Amazon API Gateway

VPC Link

Application Load Balancer (ALB)

Backend Service (Golang running on ECS Fargate)

DynamoDB (camera metadata storage)


Frontend
-----------
The frontend is already developed using:

Next.js

HTML/CSS

Hosted on AWS Amplify

The frontend will call backend APIs to:

Add camera

Retrieve camera list

Stream camera feeds

Backend
-----------

The backend must be developed using Golang and deployed on AWS ECS Fargate.

The backend will:

Expose REST APIs

Handle camera registration

Generate unique camera IDs

Store camera metadata in DynamoDB

Integrate with MediaMTX for streaming

Media Streaming

MediaMTX will be used as the streaming server.

Responsibilities:
------------------

Handle RTSP/RTMP camera streams

Convert streams for web playback (HLS/WebRTC)

Provide stream URLs for frontend playback


Functional Flow
------------------
Add Camera

User clicks "Add Camera" in the frontend.

A request is sent to the backend API.

Backend generates a random unique camera ID.

Camera details are stored in DynamoDB.

MediaMTX is configured to accept the camera stream.

Backend returns the camera ID and streaming URL.

Stream Camera

User selects a camera from the list.

Frontend requests the stream URL.

MediaMTX provides the stream using HLS/WebRTC.

Video plays on desktop and mobile browsers.



Database (DynamoDB)
--------------------
Following table is already present

Example table structure:
------------------------
Field Description
camera_id Random generated unique ID
camera_name User-defined camera name
stream_url MediaMTX stream URL
price Camera subscription price
currency Currency type (USD/INR etc.)
created_at Timestamp
status active / inactive


Required Features
------------------
Golang module can perform below task

1. Add camera, List cameras,Delete cameras

2. Store camera metadata in DynamoDB

3. It will have one endpoint for health check

/fleet-app/v1/health-check


Technical Stack
-----------------
Backend
------------
Backend is developed by golang and mediamtx and hosted on server now.
But we need to make it serverless by

apigw - vpc link - alb- ecs fagate - dynamodb

Frontend
------------
Frontend is developed by nextjs and html/css and hosted on aws amplify


Cloud Infrastructure
----------------------
AWS API Gateway

VPC Link

Application Load Balancer

ECS Fargate

DynamoDB

Amplify


Deliverables
--------------

Fully Functional mobile and desktop compatible Golang backend source code




Notes
-------
This is initially a Proof of Concept (POC).

The system must work properly on mobile and laptop browsers.

Clean, scalable, and modular code is expected.

Infrastructure is already created.

Only the Infrastructure compatible backend module is required.

Frontend code is already developed.

Backend code is developed, but only it works in server by docker-compose which is nt aws environment compatible.

I will pay $30 for this single module.
If I like your work then I will pay an extra $20 and will consider you for future modules to develop.
I will award and pay you once you show me a demo.
I have encountered with multiple scammers and wasted time and money.
Related categories: JavaScript Python Linux Golang Node.js Docker WebRTC Next.js