25 lines
718 B
JavaScript
25 lines
718 B
JavaScript
const WebmBaseDemuxer = require('../core/WebmBase');
|
|
|
|
const OPUS_HEAD = Buffer.from([...'OpusHead'].map(x => x.charCodeAt(0)));
|
|
|
|
/**
|
|
* Demuxes a Webm stream (containing Opus audio) to output an Opus stream.
|
|
* @extends core.WebmBaseDemuxer
|
|
* @memberof opus
|
|
* @example
|
|
* const fs = require('fs');
|
|
* const file = fs.createReadStream('./audio.webm');
|
|
* const demuxer = new prism.opus.WebmDemuxer();
|
|
* const opus = file.pipe(demuxer);
|
|
* // opus is now a ReadableStream in object mode outputting Opus packets
|
|
*/
|
|
class WebmDemuxer extends WebmBaseDemuxer {
|
|
_checkHead(data) {
|
|
if (!data.slice(0, 8).equals(OPUS_HEAD)) {
|
|
throw Error('Audio codec is not Opus!');
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = WebmDemuxer;
|