ffprobe

WebJar for ffprobe

License

License

BSD 3-Clause
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

ffprobe
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

ffprobe
WebJar for ffprobe
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/eugeneware/ffprobe

Download ffprobe

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/ffprobe/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>ffprobe</artifactId>
    <version>1.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/ffprobe/
implementation 'org.webjars.npm:ffprobe:1.1.0'
// https://jarcasting.com/artifacts/org.webjars.npm/ffprobe/
implementation ("org.webjars.npm:ffprobe:1.1.0")
'org.webjars.npm:ffprobe:jar:1.1.0'
<dependency org="org.webjars.npm" name="ffprobe" rev="1.1.0">
  <artifact name="ffprobe" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='ffprobe', version='1.1.0')
)
libraryDependencies += "org.webjars.npm" % "ffprobe" % "1.1.0"
[org.webjars.npm/ffprobe "1.1.0"]

Dependencies

compile (3)

Group / Artifact Type Version
org.webjars.npm : JSONStream jar [1.0.7,2)
org.webjars.npm : bl jar [1.0.0,2)
org.webjars.npm : deferential jar [1.0.0,2)

Project Modules

There are no modules declared in this project.

ffprobe

Use ffprobe to get info from media files and return as JSON

build status

Installation

This module is installed via npm:

$ npm install ffprobe

Example Usage

ffprobe is a dual API, supporting both node.js callbacks AND Promises.

Callback API

List the output of ffprobe for a media file in a convenient JSON format:

var ffprobe = require('ffprobe'),
    ffprobeStatic = require('ffprobe-static');

ffprobe('./file.mp4', { path: ffprobeStatic.path }, function (err, info) {
  if (err) return done(err);
  console.log(info);
/***
{
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "High",
            "codec_type": "video",
            "codec_time_base": "1/50",
            "codec_tag_string": "avc1",
            "codec_tag": "0x31637661",
            "width": 1280,
            "height": 720,
            "coded_width": 1280,
            "coded_height": 720,
            "has_b_frames": 0,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "16:9",
            "pix_fmt": "yuv420p",
            "level": 31,
            "chroma_location": "left",
            "refs": 1,
            "is_avc": "1",
            "nal_length_size": "4",
            "r_frame_rate": "25/1",
            "avg_frame_rate": "25/1",
            "time_base": "1/25",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 299,
            "duration": "11.960000",
            "bit_rate": "1031739",
            "bits_per_raw_sample": "8",
            "nb_frames": "299",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0
            },
            "tags": {
                "language": "und",
                "handler_name": "VideoHandler"
            }
        },
        {
            "index": 1,
            "codec_name": "aac",
            "codec_long_name": "AAC (Advanced Audio Coding)",
            "profile": "LC",
            "codec_type": "audio",
            "codec_time_base": "1/44100",
            "codec_tag_string": "mp4a",
            "codec_tag": "0x6134706d",
            "sample_fmt": "fltp",
            "sample_rate": "44100",
            "channels": 2,
            "channel_layout": "stereo",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/44100",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 528384,
            "duration": "11.981497",
            "bit_rate": "192287",
            "max_bit_rate": "203120",
            "nb_frames": "516",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0
            },
            "tags": {
                "creation_time": "2015-11-16 00:48:42",
                "language": "eng",
                "handler_name": "IsoMedia File Produced by Google, 5-11-2011"
            }
        }
    ]
}
 **/
});

Promise API

List the output of ffprobe for a media file in a convenient JSON format:

var ffprobe = require('ffprobe'),
    ffprobeStatic = require('ffprobe-static');

ffprobe('./file.mp4', { path: ffprobeStatic.path })
  .then(function (info) {
    console.log(info);
    /***
    {
        "streams": [
            {
                "index": 0,
                "codec_name": "h264",
                "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
                "profile": "High",

                ...
                }
            }
        ]
    }
     **/
  })
  .catch(function (err) {
    console.error(err);
  })
});

API

ffprobe(mediaFilePath, opts, [cb])

  • mediaFilePath - path to your audio / video / image that you want to get media info for.
  • opts - options object with the following options:
    • path - path to ffprobe binary (You can use ffprobe-static to easily get a static binary that you can install with npm.
  • cb(err, info) - standard callback, with the info returned as a javascript object. NB: If the cb parameter is not provided, a Promise will be returned allowing chained then(), catch() methods.

Versions

Version
1.1.0