video-compression-ffm v1.2.4
��# Media Compression
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 tools are utilized for having a better performance.
Install the module by using one of these commands:
npm install --save video-compression-ffm
OR
yarn add video-compression-ffm
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) - Audios => (
all formats supported by
ffmpeg)
>> The compression is just being applied to the Videos (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
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 \ after the installation, just open up a command line (cmd or PowerShell) as administrator and then do the commands below:choco install ffmpeg
Linux (Ubuntu) :
sudo apt update sudo apt install ffmpeg
Mac :
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 v12.16.3. \ If you cannot run (and having errors) just feel free to open an issue on its GitHub page.
var compress = require('video-compression-ffm');
/*
** input [string]: the input media path to the file
** output [string]: the path for the output media
** options [object]: the options includes resolution
** verbose [boolean]: whether print the logs or not
*/
compress(input, output, options);
Examples
var compress = require('video-compression-ffm');
// convert('./dog.mp4', './dog.mp4'); //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.mp4', 'billie-eilish-compressed.mp4'); //just compressing
References
As I said before, this module uses some other tools:
- ffmpeg tools
- fluent-ffmpeg module
Finally I thank the developers of the tools mentioned before.