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
Markdown
# 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.