This sample uses ffmpeg / fluent-ffmpeg and automatically converts audio files that are uploaded to Cloud Storage to FLAC file format with mono-channel audio @ 16000hz.
See file functions/index.js for the audio conversion code.
The audio conversion is performed using ffmpeg. The audio is first downloaded locally from the Cloud Storage bucket to the tmp
folder using the google-cloud SDK.
The dependencies are listed in functions/package.json.
The function triggers on upload of any file to your Firebase project's default Cloud Storage bucket.
To deploy and test the sample:
- Create a Firebase project on the Firebase Console and visit the Storage tab.
- Get the code, for instance using
git clone https://github.com/firebase/functions-samples
- Enter the correct directory
cd functions-samples/ffmpeg-convert-audio
- Setup the CLI to use your Firebase project using
firebase use --add
and select your Firebase project - Deploy your project's code using
firebase deploy
- Go to the Firebase Console Storage tab and upload an audio. After a short time a converted audio with the same name but a
_output.flac
suffix will be created in the same folder (make sure you refresh the UI to see the new file).
- Take into account that the audio files produced should not exceed the size of the memory of your function.
- The audio conversion could take a certain amount of time, increase the timeout of your function using the cloud functions webgui so the function can run for a longer time.