Get video resolution in nodejs Get video resolution in nodejs node.js node.js

Get video resolution in nodejs


To be honest I think the best method I found was to use fluent-ffmpeg with ffprobe as you are able to set the the path to the executable. The only problem is that ffmpeg has to be shipped with the app. So different executables have to be shipped, one for each distribution/os/derivation. If anyone has anything better I am open to answers.

Getting the width, height and aspect ratio using fluent-ffmpeg is done like so:

var ffmpeg = require('fluent-ffmpeg');ffmpeg.setFfprobePath(pathToFfprobeExecutable);ffmpeg.ffprobe(pathToYourVideo, function(err, metadata) {    if (err) {        console.error(err);    } elseĀ {        // metadata should contain 'width', 'height' and 'display_aspect_ratio'        console.log(metadata);    }});


There's a npm package called get-video-dimensions that also use ffprobe and it's much easier to use. It also support promises and async/await.

import getDimensions from 'get-video-dimensions';

Using promise:

getDimensions('video.mp4').then(dimensions => {  console.log(dimensions.width);  console.log(dimensions.height);})

or async/await:

const dimensions = await getDimensions('video.mp4');console.log(dimensions.width);console.log(dimensions.height);


I use node-ffprobe to accomplish this for images:

var probe = require('/usr/lib/node_modules/node-ffprobe');probe(filePath, function (err, data) {    //the 'data' variable contains the information about the media file});