FFMPEG audio processing


Link to the editor and link to the live page.
Record an audio file (.wav formatting), get the audio metadata by pressing the "get metadata" button, and trim the file by pressing the "trim" button. The file can be replayed immediately after recording or after trimming.

High level overview

There are 3 API calls to Google Cloud Functions:
  • Trim Audio & Upload to S3
  • Trim Audio & Return File
  • Get Metadata
The first "Trim Audio" function takes the URL of an audio file as an input and a number of seconds, and tries to cut that number of seconds off the end of the audio file. This also uploads the file to S3 when the file is trimmed.
The second Trim Audio function takes the base64 string of an audio file as an input and returns the raw, shortened audio file as an output.
Get-metadata accepts an audio file's URL as an input and returns the bitrate, sample rate and duration of an audio file.

Technical details

For client projects, the client should create a Google Cloud account, and we will transfer the cloud functions directly into their account so that they can be responsible for billing on those functions. The build can be tested using the functions on AirDev's account, but the client must provide login credentials for their Google Cloud account prior to launch in order to complete this transfer.
The client will also need to create an AWS S3 account if using the first (upload to S3) function..

Trim Audio & S3 Upload setup:

First, you must add the ffmpeg plugin to your app, which is currently private. Write to [email protected] (or Chris Anderson) if you need assistance on this.
In order for the function to work, you'll need to include the AWS API keys on the plugins credentials sections. For more info on what API keys to use, see the s3 plugin docs (the S3 plugin is not needed for this trimming function, but the same permissions are needed on the AWS API credentials).
If any additional operations on the audio file are needed, we can convert the audio file format, reduce the audio quality, concatenate audio files, and a number of other operations.
The function could also be edited to allow for the same operations to happen on videos.
Contact [email protected] for more info.

Get Metadata setup:

If any additional audio metadata is needed, a number of other fields can be retrieved. Contact [email protected] for more info.

Trim Audio & Return File setup:

This function accepts base64 instead of a file URL and returns a file directly to Bubble.
If you need support for this call and can't get it working, contact [email protected]. We recommend that the 1st approach be used due to the major performance impacts of sending entire audio files via the API Connector.