matroska-subtitles
Writable stream for parsing embedded .mkv subtitles.
Supported formats: .srt
, .ssa
, .ass
.
install
npm install matroska-subtitles
example
const fs = require('fs')
const MatroskaSubtitles = require('matroska-subtitles')
var parser = new MatroskaSubtitles()
parser.once('tracks', function (tracks) {
console.log(tracks)
})
parser.on('subtitle', function (subtitle, trackNumber) {
console.log('Track ' + trackNumber + ':', subtitle)
})
fs.createReadStream('Sintel.2010.720p.mkv').pipe(parser)
See examples folder for more examples.
tracks
event response format
[
{ number: 3, language: 'eng', type: 'utf8' },
{ number: 4, language: 'jpn', type: 'ass', header: '[Script Info]\r\n...' }
]
Note that the language
may be undefined
if the mkv track doesn't specify it.
subtitle
event response format
{
text: 'This blade has a dark past.',
time: 107250,
duration: 1970
}
May also contain additional .ass
specific values
random access
The parser must obtain the tracks
metadata event before it can begin to emit subtitles.
To read subtitles from a specific position in the stream,
you can pass in a previous instance as parameter: parser = new MatroskaSubtitles(parser)
after the tracks
event and pipe from a given position. See examples/random-access.js for an example.
see also
mkv-subtitle-extractor
license
MIT