jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

25 lines
858 B

const ffmpeg = require('fluent-ffmpeg')
, { thumbSize } = require(__dirname+'/../../configs/main.js')
, uploadDirectory = require(__dirname+'/uploadDirectory.js');
module.exports = (file, geometry, frames) => {
return new Promise((resolve, reject) => {
ffmpeg(`${uploadDirectory}/file/${file.filename}`)
.on('end', () => {
return resolve();
})
.on('error', function(err, stdout, stderr) {
return reject(err);
})
.screenshots({
timestamps: [(frames === 'N/A' ? 0 : '1%')],//1% should remedy black first frames or fade-ins
count: 1,
filename: `thumb-${file.hash}${file.thumbextension}`,
folder: `${uploadDirectory}/file/`,
size: geometry.width > geometry.height ? `${thumbSize}x?` : `?x${thumbSize}`
//keep aspect ratio, but also making sure taller/wider thumbs dont exceed thumbSize in either dimension
});
});
};