Skip to content

A collection of Node-RED media nodes that can be used with IBM Watson services

Notifications You must be signed in to change notification settings

ibm-early-programs/node-red-contrib-media-utils

Repository files navigation

node-red-contrib-media-utils

Node-RED media nodes using FFmpeg.

Install

Run the following command in the root directory of your Node-RED install

npm install node-red-contrib-media-utils

Usage

FFmpeg Conversion

Converts any audio or video format supported by FFmpeg into any supported audio format.

Supported msg.payload types:

  • String URL to audio or video
  • Buffer Raw Audio Bytes

Should support any audio or video input currently supported by FFmpeg. Full list found here.

Supported output formats (audio only):

  • MP3
  • WAV
  • FLAC
  • OGG

Additional output formats can be specified by setting msg.format. mp4 video output has been tested, by setting msg.format='mp4'

Returns a buffer of the converted data on msg.payload.

Currently been tested with:

  • MP4 to MP3/WAV/FLAC/OGG
  • WAV to MP3/WAV/FLAC/OGG

FFmpeg Silence Detection

Performs silence detection provided by FFmpeg on audio files.

Supported msg.payload types:

  • String URL to audio
  • Buffer Raw Audio Bytes

Should support any audio input currently supported by FFmpeg. Full list found here.

Returns a buffer of the audio data on msg.payload.

Currently been tested with:

  • WAV

Defaults

  • Noise tolerance: 0.008 amplitude ratio
  • Duration: 0.8 seconds

Resulting silence start and end times (in seconds) will be returned as an array on msg.silences, eg. [[0, 2], [5, 6]].

FFmpeg Segment

Splits audio files and sends a message for each segment.

Supported msg.payload types:

  • String URL to audio
  • Buffer Raw Audio Bytes

Should support any audio input currently supported by FFmpeg. Full list found here.

Returns a buffer of the split data on msg.payload.

Currently been tested with:

  • WAV

This node splits the input into a number of segments. It splits the audio using times specified on msg.times, eg. [5, 10] will split the audio at 5 seconds and 10 seconds.

Each resulting segment will be sent as an individual message on msg.payload from the node. The timesplits of each segment will be available on msg.timesplit, eg. a timesplit of [0, 5] started at 0 and ended at 5 seconds in the original.

Checking the "Send split messages in order with delay" checkbox will add a delay between sending each message. This delay will be equal to the previous segments length in seconds. This allows you to play the segments through a speaker in the original order for testing purposes.

Unzip

Unzips a .zip folder into separate files.

The node requires a .zip input file and will output the contents on the node's msg.payload object.

Supported msg.payload types:

  • .zip file

Output types:

  • A separate buffer for each of the files contained within the input folder.

Gotchas

Please note that currently the node returns a buffer of all the files contained in the .zip including any dotfiles.

Contributing

For simple typos and fixes please just raise an issue pointing out our mistakes. If you need to raise a pull request please read our contribution guidelines before doing so.

Copyright and license

Copyright 2014, 2016 IBM Corp. under the Apache 2.0 license.

About

A collection of Node-RED media nodes that can be used with IBM Watson services

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •