How to convert a GIF to Video in Node.js
In this article, we will show you how to convert a GIF to Video in Node.js. Here, we’ll show you the simple way to generate a video from animated GIF using NPM package.
Package Version
File Structure
- generate-gif-nodejs
- images
- result.gif
- node_modules
- output
- result.mp4
- package-lock.json
- package.json
- README.md
- server.js
- images
Steps to convert a video from gif
1. Setup Node project
To create a REST API in Node.js, we’ll use the express framework. If you don’t know how to design a REST API in Node.js using the express framework, please checkout the link below.
2. Install NPM dependencies
To generate a video, we need to install the @ffmpeg-installer/ffmpeg, @ffprobe-installer/ffprobe and fluent-ffmpeg NPM packages to project. Run the following command to install the dependencies.
1 | npm i @ffmpeg-installer/ffmpeg @ffprobe-installer/ffprobe fluent-ffmpeg |
3. API to convert a video from gif
Here, we will get the GIF image from the directory called images
and generate a mp4 video in output
directory. You can refer the file structure for more understanding.
Now, check the following API code to convert a GIF to video.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | const ffmpegInstaller = require("@ffmpeg-installer/ffmpeg"); const ffprobe = require("@ffprobe-installer/ffprobe"); const ffmpeg = require("fluent-ffmpeg")() .setFfprobePath(ffprobe.path) .setFfmpegPath(ffmpegInstaller.path); app.get('/gif-to-video', (req, res) => { ffmpeg .input('./images/result.gif') .noAudio() .outputOptions('-pix_fmt yuv420p') .output(`./output/result.mp4`) .on("end", () => { res.send({ message: 'Video Generated!' }); }) .on("error", (e) => console.log(e)) .run(); }); |
In the above code, we have initialize the fluent-ffmpeg
and set the path. You can add audio during conversion.
4. Output
Open the output
directory after running the project API. You’ll see that the created mp4 video is available.
I hope you find this article helpful.
Thank you for reading. Happy Coding..!!