Thumbnails generator module. Uses WebVTT as thumbnails descriptor. Can pack thumbnails into spritesheet using [node-sprit]() module.
npm install thumbnails-webvtt --save
fluent-ffmpeg
node-sprite
'use strict'
var thumbgen = require('thumbnails-webvtt')
thumbgen('/media/Hammer.of.the.Gods.2013.BluRay.720p.mkv', {
output: '/vtt/Hammer.of.the.Gods.2013.BluRay.720p.vtt',
size: {
width: 480
},
numThumbnails: 6,
spritesheet: true
}, function(err, metadata) {
if (err) {
throw err
}
console.dir(metadata)
})
will print
[ { path: '/Hammer.of.the.Gods.2013.BluRay.720p/thumbnails.png#xywh=0,808,480,200',
from: '00:00:00.000',
to: '00:14:49.474' },
{ path: '/Hammer.of.the.Gods.2013.BluRay.720p/thumbnails.png#xywh=0,0,480,200',
from: '00:14:49.474',
to: '00:29:38.947' },
{ path: '/Hammer.of.the.Gods.2013.BluRay.720p/thumbnails.png#xywh=0,202,480,200',
from: '00:29:38.947',
to: '00:44:28.421' },
{ path: '/Hammer.of.the.Gods.2013.BluRay.720p/thumbnails.png#xywh=0,404,480,200',
from: '00:44:28.421',
to: '00:59:17.894' },
{ path: '/Hammer.of.the.Gods.2013.BluRay.720p/thumbnails.png#xywh=0,606,480,200',
from: '00:59:17.894',
to: '01:14:07.368' },
{ path: '/Hammer.of.the.Gods.2013.BluRay.720p/thumbnails.png#xywh=0,1010,480,200',
from: '01:14:07.368',
to: '01:38:49.824' } ]
Create thumbnails (and optionally pack them into spritesheet) and create WebVTT file for file(s). Options are described below
output defaults to "SOURCE_DIR/SOURCE_BASENAME.vtt"
assetsDirectory defaults to "SOURCE_BASENAME"
size defaults to null
width
and height
will be used. If only width
or height
is specified other will be computed according to source video ratio.size.width defaults to SOURCE_WIDTH
size.height defaults to SOURCE_HEIGHT
timemarks defaults to null
numThumbnails defaults to 0
timemarks
. Each thumbnail moment is calculated as source_duration * 0.9 / numThumbnails
.secondsPerThumbnail defaults to 0
secondsPerThumbnail
seconds.framesPerThumbnail defaults to 0
framesPerThumbnail
frames.spritesheet defaults to false
spriteSheetName defaults to "thumbnails"
spriteSheetOptions default to null
.sprite()
function.