Looking for a developer to create a REST API that merges audio and images into an MP4 video

Hello everyone,

We are looking for a developer with experience in REST APIs to create a service that can merge audio files (MP3) with images and generate an MP4 video.

The goal is to send a main audio file, a secondary background audio file with adjustable volume, and a set of images with specified durations in the video. The API should return a downloadable MP4 with all these elements integrated.

Below are the specifications we need to implement:


Technical specifications of the REST API

Method: POST

Header:

  • Key: Identifier
  • Content-Type: Defined by the developer

Input parameters (Request INPUT):

  • Source: Specifies whether the MP3 file comes from a local source or a URL.
  • Main_Audio: Primary MP3 file. Its volume must be adjustable on a scale from 1 to 100.
  • Second_Audio: Secondary MP3 file (background audio), also with adjustable volume from 1 to 100.
  • DataImage: Array of images with the specified duration for each in the video. If no duration is specified, the image should last for the entire video.

Expected output (OUTPUT):

  • Video MP4: The API must return a URL with the generated video file ready for download.

Example of an HTTP request:

POST /jobs HTTP/1.1  
Host: apixxx.com  
x-api-key: xxxxxx  
Content-Type: text/plain  

{
    "input": [{
        "source": "remote",
        "main_audio": [{"https://drive.google.com/uc?export=download&id=1rkxxxxxxxxxxxxxx.mp3":"100"}],
		"second_audio": [{"https://drive.google.com/uc?export=download&id=1rkxxxxxxxxxxxxxx2.mp3":"10"}],
		"images": [{"Image1:30", "Image2:30"}]
    }],
    "conversion": [{
        "target": "mp4"
    }]
}

If anyone has experience in API development and multimedia processing or knows of a solution that could help us implement this, we would greatly appreciate your assistance. We are also open to paid collaborations if someone can take on the development.

If you’re interested, leave a comment or contact me via private message. Thank you.
You can contact me on: Javi@buzzmakers-agency.com

Yes, we have the expierence and the manpower to build something like this.

Feel free to book a 30 minute call:

Hi @Javier_Ramirez,

wouldn’t Json2Video work for this?

Cheers,
Julius

Too expensive…we just need add a estatic jpeg into a mp4… the thing is very simple BUT jason2video is billing you for minutes of video… isnt it?

Yeah, makes sense!

Hope you find someone good who can help :smiley:

Hey Javier,

before these guys skin you alive for an app like this - you can merge pictures and audio with the ffmpeg console command hosted on pythonanywhere. Which in turn you can call with an SSH module from a Make scenario, or setup a Flask App and call it with an HTTP module.

Scalable & Cost-Effective API for Video Processing

Hey @Javier_Ramirez, :wave:

I sent you an email but wanted to share some insights here too. My consultancy specializes in RESTful APIs, GCP, multimedia processing, and AI automation, and we’ve built similar solutions before.

A few key choices can improve performance, security, and cost-efficiency:
:white_check_mark: Serverless approach (Cloud Run + Pub/Sub) – Avoids unnecessary costs when idle.
:lock: Secure storage (gs:// + IAM) – Safer than public URLs.
:zap: Async job handling – Scales smoothly without performance issues.

We design APIs that work fast, stay cost-efficient, and scale seamlessly. Let me know if you’d like to discuss further! :rocket:

Feel free to visit our website, or book a meeting if you are interested.

+1 on @Stoyan_Vatov’s message about FFmpeg if you want to DIY it. (Open-source, highly customizable). If you want to call something in the env that you are already in (assuming GCP because of the Drive links, which would ideally be in GCS format for better IAM-controlled access) Google Cloud Media Transcoder API (Managed, scalable, but less flexible). If you need a balance, you can run FFmpeg on Cloud Run for processing while storing files in GCS (gs://).

This topic was automatically closed after 30 days. New replies are no longer allowed.