Work / API · 2023

Soundwave Generator

An Adazing media tool: a user uploads an audio clip and a cover image, picks a colour and position, and gets a 1280×720 video with an animated waveform over the image. A Laravel API starts FFmpeg in the background, finds finished renders by polling a status table and emails the download link. I wrote it during my first period at Adazing.

  • employer
  • api
  • client anonymized
  • archived
Client
Soundwave Generator
Type
API · Media processing: audiogram video renderer
Built with
PHP, Laravel, FFmpeg, PHPMailer, React
Also uses
Next.js, Vue
Last active
2023

What it does

  • Upload audio and an image, choose colour and position, get a 1280×720 waveform video.
  • JSON variant of the render for a browser upload component (base64 audio and image).
  • Background rendering with status polling, email delivery of the download link, and clean-up of delivered files.

How it is built

  • Upload-then-poll with no queue: the Laravel API stores the upload, starts FFmpeg detached and returns immediately; a status endpoint polls a database table, builds public URLs for finished renders and emails them; a clean-up endpoint removes delivered files. A separately built Next.js static front end calls the hosted API.

Decisions

  • Run FFmpeg detached and deliver by email instead of holding the request open.
  • Offer a JSON/base64 endpoint alongside multipart upload for the browser component.

Skills

  • Media processing with FFmpeg filter graphs
  • Asynchronous job handling in PHP/Laravel

Client work: links and code are not public.

All projects →