|
|
|
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
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
};
|