UNPKG

media-converter

Version:

convert multimedia as easy as you like in nodejs (javascript on server): image, video and audio converter (with compression)

140 lines (90 loc) 3.32 kB
# Media Converter > Convert your multimedia in nodejs as easy as you like ## Description By installing this module, you can easily **convert** (with **compression**) your media in Node.JS. This module uses two other main modules that are referred to, at the end of this page. \ Besides, [**ffmpeg**](https://ffmpeg.org/) tools are utilized for having a better performance. Install the module by using one of these commands: ```bash npm install --save media-converter ``` OR ```bash yarn add media-converter ``` ---- ### Version 1.x.x \>> The **conversion** could be applied to these extensions: - Images => (`"jpg", "jpeg", "png", "gif", "svg", "webp"` ) - Videos => (`all formats supported by` [ffmpeg](https://ffmpeg.org)) - Audios => (`all formats supported by` [ffmpeg](https://ffmpeg.org)) \>> The **compression** is just being applied to the images (and not the other media) ---- ### Version 2.x.x > In Progress ... ---- ---- ---- ## Prerequisites ### 1. Install FFmpeg tools on your system Its size is about 67.5M You can find the installation solutions at their website here: **[ffmpeg](https://ffmpeg.org/)** OR You can do the following commands in preference to the first approach: - Windows : \ first, you need to install a download package manager for windows (sth like apt for Linux). \ I highly recommend you to download and install `choco` package manager from their website: **[chocolatey](https://chocolatey.org/)** \ after the installation, just open up a **command line** (cmd or PowerShell) as **administrator** and then do the commands below: ```bash choco install ffmpeg ``` - Linux (Ubuntu) : ```bash sudo apt update sudo apt install ffmpeg ``` - Mac : ```bash brew install ffmpeg --force brew link ffmpeg ``` *Notice:* \ **Make sure the FFmpeg address is added to the environment Path** ---- ---- ---- ## Usage This project has been accomplished with *node v10.16.3*. \ If you cannot run (and having errors) just feel free to open an issue on its GitHub page. ```js var convert = require('media-converter'); /* ** input [string]: the input media path to the file ** output [string]: the path for the output media ** callback [function]: the callback function ** verbose [boolean]: whether print the logs or not */ convert(input, output, callback, verbose); ``` ### Examples ```js const convert = require('media-converter'); convert('dog.jpg', 'dog.png'); //with no callbacks convert('dog.png', 'dog.webp', () => console.log("png => webp")); //with a simple callback convert('drinking.mkv', 'drinking.mp4', (err) => { if (!err){ console.log("Completed!") } }); //with a complete callback convert('bad-guy-video.mp4', 'bad-guy-audio.mp3', null, false); //with no verbose convert('billie-eilish.png', 'billie-eilish-compressed.png'); //just compressing ``` ---- ---- ---- ## References As I said before, this module uses some other tools: - [ffmpeg](https://ffmpeg.org/) tools - [fluent-ffmpeg](https://www.npmjs.com/package/fluent-ffmpeg) module - [imagemin](https://www.npmjs.com/package/imagemin) module Finally I thank the developers of the tools mentioned before.