Video Metadata icon

Video Metadata

Extract metadata from video files using FFprobe

Overview

This node extracts video metadata using FFprobe, supporting operations to get full metadata, video duration, or resolution. It can process videos from binary data or download them from a URL. Common use cases include analyzing video files in workflows to retrieve technical details like codec, duration, resolution, and bitrate for further processing or decision-making.

Use Case Examples

  1. Extract full metadata from a video file uploaded in a previous node.
  2. Get the duration of a video downloaded from a URL.
  3. Retrieve the resolution and quality classification of a video file from binary data.

Properties

Name Meaning
Input Mode Determines how the video file is provided to the node, either from binary data of a previous node or by downloading from a URL.
Video URL URL of the video file to analyze, required if input mode is 'Download from URL'.
Binary Property Name of the binary property containing the video file, required if input mode is 'Binary Data'.
Output Property Name Name of the output property where the extracted metadata will be stored.

Output

JSON

  • metadata
    • filename - Name of the video file.
    • format - Short format name of the video container.
    • format_long - Long descriptive format name.
    • duration - Duration of the video in seconds.
    • duration_formatted - Duration formatted as HH:MM:SS.
    • size - Size of the video file in bytes.
    • size_mb - Size of the video file in megabytes.
    • bitrate - Bitrate of the video file in bits per second.
    • bitrate_kbps - Bitrate in kilobits per second.
    • video
      * codec - Video codec name.
      * codec_long - Long name of the video codec.
      * profile - Profile of the video codec.
      * width - Width of the video in pixels.
      * height - Height of the video in pixels.
      * resolution - Resolution as width x height string.
      * aspect_ratio - Display aspect ratio of the video.
      * fps - Frames per second of the video.
      * bitrate - Bitrate of the video stream.
      * bitrate_kbps - Bitrate of the video stream in kbps.
      * pixel_format - Pixel format of the video.
      * level - Level of the video codec.
      * color_space - Color space of the video.
      * color_range - Color range of the video.
    • audio
      * codec - Audio codec name.
      * codec_long - Long name of the audio codec.
      * sample_rate - Sample rate of the audio in Hz.
      * sample_rate_khz - Sample rate of the audio in kHz.
      * channels - Number of audio channels.
      * channel_layout - Layout of audio channels.
      * bitrate - Bitrate of the audio stream.
      * bitrate_kbps - Bitrate of the audio stream in kbps.
    • streams_count
      * total - Total number of streams in the video file.
      * video - Number of video streams.
      * audio - Number of audio streams.
      * subtitle - Number of subtitle streams.

Dependencies

  • FFprobe (via ffprobe-static)
  • Node.js child_process for executing FFprobe
  • Node.js fs and fs/promises for file handling
  • Node.js http and https modules for downloading files

Troubleshooting

  • Invalid URL error if the provided video URL is not valid or does not start with 'http'. Ensure the URL is correct and accessible.
  • File download failures due to HTTP errors or network issues. Check the URL and network connectivity.
  • Errors if the binary property name does not exist or the binary data is missing in the input. Verify the binary property name and input data.
  • Temporary file creation or deletion errors. Ensure the node has permission to write to the system temporary directory.
  • FFprobe execution errors if the video file is corrupted or unsupported format. Validate the video file format and integrity.

Links

Discussion