beamcoder-stream
Node.js Stream API for beamcoder
Installation
npm install beamcoder-stream
Usage example
const {
createDemuxerReadStream,
createDecoderStream,
createFilterStream,
createFiltererStream
} = require('../lib/index.js');
const demuxerStream = createDemuxerReadStream('./test/Big_Buck_Bunny_first_23_seconds_1080p.ogv.480p.vp9.webm');
const dm = await demuxerStream.demuxer
const {codecpar, index} = dm.streams.find(x => x.codecpar.codec_type === 'video')
const filterStream = createFilterStream(a => a.stream_index === index)
const decoderStream = createDecoderStream({demuxer: demuxerStream.demuxer, stream_index: 0});
const inputParams = [{
width: codecpar.width,
height: codecpar.height,
pixelFormat: codecpar.format,
timeBase: [1, 90000],
pixelAspect: codecpar.sample_aspect_ratio
}];
const filtererStream = createFiltererStream({
filterType: 'video',
inputParams,
outputParams: [{pixelFormat: codecpar.format}],
filterSpec: 'scale=1280:720'
});
const stream = demuxerStream.pipe(filterStream).pipe(decoderStream).pipe(filtererStream);
stream.on('data', (frames) => {
})
Documentation
This library is a wrapper around beamcoder so to get details on the possible input configuration, you will be able to get infos from beamcoder.