Convenient atomicized classes for representing digital multimedia assets in distributed Node.js DSP pipelines. NOTE: This is an audio-centric fork of the original little-media-box repository. For the baseline module, see
@little-core-labs/little-media-box
At Storyboard, we have strong opinions on how to handle audio, especially when
it is UGC sourced from the web. Leveraging our expertise in the handling of
multimedia assets in distributed cloud pipelines, we have built out and extended
little-media-box
to meet audio-centric use cases.
$ npm install @storyboard-fm/little-media-box
Development/Testing/Documentation
const { Delivery, Source } = require('@storyboard-fm/little-media-box')
const uri = 'http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4'
const delivery = new Delivery()
delivery.ready(() => {
delivery.source(uri)
delivery.probe(console.log)
//delivery.demux(console.log).on('progress', console.log)
// {
// 'http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_60fps_normal.mp4': // {
// streams: [ [Object], [Object], [Object] ],
// format: {
// filename: 'bbb_sunflower_1080p_60fps_normal.mp4',
// nb_streams: 3,
// nb_programs: 0,
// format_name: 'mov,mp4,m4a,3gp,3g2,mj2',
// format_long_name: 'QuickTime / MOV',
// start_time: 0,
// duration: 634.533333,
// size: 'N/A',
// bit_rate: 'N/A',
// probe_score: 100,
// tags: [Object]
// },
// chapters: []
// }
// }
})
See examples for additional use-cases.
Import little-media-box
.
Extracts the media track from the given source
and returns it as a
stream.Readable
.
An object, which provides one or more Source
objects. Extends nanoresource-pool.
Extracts one or more media tracks from the given source, and saves each to its own individual Matroska container.
The callback
receives error
and output
arguments.
A settings object containing a bin
object with the following properties:
{
x264: X264_BIN_PATH,
ffmpeg: FFMPEG_BIN_PATH,
ffprobe: FFPROBE_BIN_PATH,
mkvmerge: MKVMERGE_BIN_PATH,
}
Contains many constants used in various operations.
An extended Array
that contains a set of lexicographically-sorted unique file
extension names. Provides various methods like checking the file type for an
extension.
Extends nanoresource.
Extends nanoresource.
Extends nanoresource.
Extends Track
.
Extends Track
.
Extends Track
.
Track errors. Contains the following custom properties:
{
track,
code: 'TRACK_ERROR'
}
code
: TRACK_PROPERTIES_ERROR
.
code
: TRACK_FORMAT_NOT_FOUND
.
code
: TRACK_STREAM_NOT_FOUND
.
code
: TRACK_STREAM_NOT_FOUND
.
Forward require of fluent-ffmpeg
.
Path to ffprobe
bin.
Path to ffmpeg
bin.
Path to static binary for mkvmerge
.
Path to static binary x264
.
MIT