FFMPEG audio processing
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.
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.
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..
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.
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.