thumbnails-webvtt
v0.0.4
Published
Module for creating video thumbnails with WebVTT file as descriptor
Downloads
67
Maintainers
Readme
Video thumbnails + WebVTT using Node.js
Thumbnails generator module. Uses WebVTT as thumbnails descriptor. Can pack thumbnails into spritesheet using node-sprit module.
Installation
npm install thumbnails-webvtt --save
Requirements
- ffmpeg used by
fluent-ffmpeg
- ImageMagick as used by
node-sprite
Example
'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' } ]
API
thumbgen(source, options, callback)
Create thumbnails (and optionally pack them into spritesheet) and create WebVTT file for file(s). Options are described below
Options
output defaults to
"SOURCE_DIR/SOURCE_BASENAME.vtt"
- WebVTT filename
assetsDirectory defaults to
"SOURCE_BASENAME"
- Name of folder which keeps thumbnails or spritesheet.
size defaults to
null
- Size of generated thumbnails. If not specified original video stream
width
andheight
will be used. If onlywidth
orheight
is specified other will be computed according to source video ratio.
- Size of generated thumbnails. If not specified original video stream
size.width defaults to
SOURCE_WIDTH
- Read above
size.height defaults to
SOURCE_HEIGHT
- Read above
timemarks defaults to
null
- Array with timemarks in seconds. E.g. ['123.123', '345.345']
numThumbnails defaults to
0
- Number of thumbnails to generate. Used in opposite to
timemarks
. Each thumbnail moment is calculated assource_duration * 0.9 / numThumbnails
.
- Number of thumbnails to generate. Used in opposite to
secondsPerThumbnail defaults to
0
- If specified thumbnails will be generated each
secondsPerThumbnail
seconds.
- If specified thumbnails will be generated each
framesPerThumbnail defaults to
0
- If specified thumbnails will be generated each
framesPerThumbnail
frames.
- If specified thumbnails will be generated each
spritesheet defaults to
false
- Generate spritesheet or not.
spriteSheetName defaults to
"thumbnails"
- Spritesheet file name
spriteSheetOptions default to
null
- Spritesheet options passed to node-sprite
.sprite()
function.
- Spritesheet options passed to node-sprite
TODO
- Use cool spritesheet generator
- Tests
- Use some kind of WebVTT generator?