diff options
| author | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-04-03 02:37:42 -0700 |
| commit | 60867fb030bae582082340ead7dbc7efdc2f5398 (patch) | |
| tree | 4c6a7356351be2e4914e15c4703172597c45656e /node_modules/prism-media/src/transcoders/MediaTranscoder.js | |
| parent | commenting (diff) | |
| download | s5nical-60867fb030bae582082340ead7dbc7efdc2f5398.tar.xz s5nical-60867fb030bae582082340ead7dbc7efdc2f5398.zip | |
2020/04/03, 02:34, v1.2.0
Diffstat (limited to 'node_modules/prism-media/src/transcoders/MediaTranscoder.js')
| -rw-r--r-- | node_modules/prism-media/src/transcoders/MediaTranscoder.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/node_modules/prism-media/src/transcoders/MediaTranscoder.js b/node_modules/prism-media/src/transcoders/MediaTranscoder.js new file mode 100644 index 0000000..217e34c --- /dev/null +++ b/node_modules/prism-media/src/transcoders/MediaTranscoder.js @@ -0,0 +1,31 @@ +const Ffmpeg = require('./ffmpeg/Ffmpeg'); + +const transcoders = [ + 'ffmpeg', +]; + +class MediaTranscoder { + constructor(prism) { + this.prism = prism; + this.ffmpeg = new Ffmpeg(this); + } + + static verifyOptions(options) { + if (!options) throw new Error('Options must be passed to MediaTranscoder.transcode()'); + if (!options.type) throw new Error('Options.type must be passed to MediaTranscoder.transcode()'); + if (!transcoders.includes(options.type)) throw new Error(`Options.type must be: ${transcoders.join(' ')}`); + return options; + } + + /** + * Transcodes a media stream based on specified options + * @param {Object} options the options to use when transcoding + * @returns {ReadableStream} the transcodeed stream + */ + transcode(options) { + options = MediaTranscoder.verifyOptions(options); + return this[options.type].transcode(options); + } +} + +module.exports = MediaTranscoder; |