little-media-box
v0.1.0
Published
> Convenient atomicized classes for representing digital multimedia assets > in distributed Node.js DSP pipelines.
Downloads
19
Readme
little-media-box
Convenient atomicized classes for representing digital multimedia assets in distributed Node.js DSP pipelines.
Installation
$ npm install little-media-box
Status
Development/Testing/Documentation
Usage
const { Delivery, Source } = require('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.
API
const lmb = require('little-media-box')
Import little-media-box
.
demuxStream = lmb.createDemuxStream(source, [opts])
Extracts the media track from the given source
and returns it as a
stream.Readable
.
delivery = new lmb.Delivery([opts])
An object, which provides one or more Source
objects. Extends nanoresource-pool.
lmb.demux(source, [opts], callback)
Extracts one or more media tracks from the given source, and saves each to its own individual Matroska container.
lmb.mux(sources, [opts], callback)
The callback
receives error
and output
arguments.
{ bin } = lmb.settings
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,
}
settings = new lmb.configure([opts])
lmb.constants
Contains many constants used in various operations.
{1: iso6391, 2: iso6392, 2: iso6393} = lmb.iso639
lmb.extensions
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.
asset = new lmb.Asset(uri, [opts])
Extends nanoresource.
source = new lmb.Source(uri, [opts])
Extends nanoresource.
track = new lmb.Track(source, [opts])
Extends nanoresource.
subtitleTrack = new lmb.SubtitleTrack(source, [opts]
Extends Track
.
videoTrack = new lmb.VideoTrack(source, [opts])
Extends Track
.
audioTrack = new lmb.AudioTrack(source, [opts])
Extends Track
.
lmb.TrackError
Track errors. Contains the following custom properties:
{
track,
code: 'TRACK_ERROR'
}
lmb.TrackPropertiesError
code
: TRACK_PROPERTIES_ERROR
.
lmb.TrackPropertiesMissingFormatError
code
: TRACK_FORMAT_NOT_FOUND
.
lmb.TrackPropertiesMissingStreamError
code
: TRACK_STREAM_NOT_FOUND
.
lmb.TrackValidationError
code
: TRACK_STREAM_NOT_FOUND
.
lmb.ffmpeg = require('fluent-ffmpeg')
Forward require of fluent-ffmpeg
.
lmb.FFPROBE_BIN_PATH
Path to ffprobe
bin.
lmb.FFMPEG_BIN_PATH
Path to ffmpeg
bin.
lmb.MKVMERGE_BIN_PATH
Path to static binary for mkvmerge
.
lmb.X264_BIN_PATH
Path to static binary x264
.
License
MIT