Awesome
waveform
Input: any format audio or video file
Output: any or all of these:
- transcoded audio file
- waveform.js-compatible JSON representation of the audio file
- PNG rendering of the waveform
Usage
waveform [options] in [--transcode out] [--waveformjs out] [--png out]
(where `in` is a file path and `out` is a file path or `-` for STDOUT)
Options:
--scan duration scan (default off)
Transcoding Options:
--bitrate 320 audio bitrate in kbps
--format name e.g. mp3, ogg, mp4
--codec name e.g. mp3, vorbis, flac, aac
--mime mimetype e.g. audio/vorbis
--tag-artist artistname artist tag
--tag-title title title tag
--tag-year 2000 year tag
--tag-comment comment comment tag
WaveformJs Options:
--wjs-width 800 width in samples
--wjs-precision 4 how many digits of precision
--wjs-plain exclude metadata in output JSON (default off)
PNG Options:
--png-width 256 width of the image
--png-height 64 height of the image
--png-color-bg 00000000 bg color, rrggbbaa
--png-color-center 000000ff gradient center color, rrggbbaa
--png-color-outer 000000ff gradient outer color, rrggbbaa
Installation
-
Install libgroove dev package. Only the main library is needed.
-
Install libpng and zlib dev packages.
-
make