WAV to MP3 Conversion Service

This service facilitates the conversion of WAV format audio files to MP3 format, specifically tailored for the audio message feature. The primary motivation behind this service is to address file size restrictions, as WAV files are significantly larger than MP3 files for even short audio clips.

This is a fork of surebert/docker-ffmpeg-service

ffmpeg web service API

An web service for converting audio/video files using Nodejs, Express and FFMPEG

Based off of jrottenberg/ffmpeg container

Endpoints

POST /mp3 - Convert audio file in request body to mp3

POST /mp4 - Convert video file in request body to mp4

POST /jpg - Convert image file to jpg

GET /, /readme - Web Service Readme

/mp3, /m4a

Curl Ex:

curl -F "file=@input.wav" 127.0.0.1:3000/mp3 > output.mp3

curl -F "file=@input.m4a" 127.0.0.1:3000/mp3 > output.mp3

curl -F "file=@input.mov" 127.0.0.1:3000/mp4 > output.mp4

curl -F "file=@input.mp4" 127.0.0.1:3000/mp4 > output.mp4

curl -F "file=@input.tiff" 127.0.0.1:3000/jpg > output.jpg

curl -F "file=@input.png" 127.0.0.1:3000/jpg > output.jpg

Configuration and New Endpoints

You can change the ffmpeg conversion settings or add new endpoints by editing the /app/endpoints.js file

Installation

Requires local Node and FFMPEG installation.

1) Install FFMPEG https://ffmpeg.org/download.html

2) Install node https://nodejs.org/en/download/ Using homebrew:

$ brew install node

Dev - Running Local Node.js Web Service

Navigate to project directory and:

Install dependencies:

$ npm install

Start app:

$ node app.js

Check for errors with ESLint:

$ ./node_modules/.bin/eslint .

Running Local Docker Container

Build Docker Image from Dockerfile with a set image tag. ex: docker-ffpmeg

$ docker build -t surebert/docker-ffpmeg .

Launch Docker Container from Docker Image, exposing port 9025 on localhost only

docker run -d \ --name ffmpeg-service \ --restart=always \ -v /storage/tmpfs:/usr/src/app/uploads \ -p 127.0.0.1:9025:3000 \ surebert/docker-ffpmeg

Launch Docker Container from Docker Image, exposing port 9026 on all IPs

docker run -p 9025:3000 -d surebert/docker-ffpmeg