/* Done */ router.get('/effect-fadeout', function (req, res) { ffmpeg('videos/input.mp4') .audioCodec('libmp3lame') // Audio Codec .videoCodec('libx264') .videoFilters('fade=out:70:10') .output('videos/fadeout.mp4') .on('end', function (err) { if (!err) res.send("Successfull"); }) .on('error', function (err) { console.log('error: ' + err); }).run(); });
/* Done */ router.get('/effect-fadein', function (req, res) { ffmpeg('videos/input.mp4') .audioCodec('libmp3lame') // Audio Codec .videoCodec('libx264') .videoFilters('fade=in:0:200') .output('videos/fadein.mp4') .on('end', function (err) { if (!err) res.send("Successfull"); }) .on('progress', function (data) { console.log(data.percent); }) .on('error', function (err) { console.log('error: ' + err); }).run(); });
.audioCodec('libmp3lame') // Audio Codec .videoCodec('libx264') // Video Codec .setStartTime(03) // Start Position
let addLoopedImage = (input, output, image, duration) => { return new Promise((resolve, reject) => { ffmpeg(input) .input(image) .inputOptions(['-r 1', '-loop 1']) .audioCodec('copy') .outputOptions(['-shortest']) .output(output) .on('end', () => { console.log('') // fix stdout resolve() }) .on('error', (err) => { console.log('') // fix stdout reject(err) }) .on('start', (cmd) => { logger.log('debug', cmd) }) .on('progress', (msg) => { process.stdout.write(`Adding looped cover image to Audiobook ... ${currentTimemarkToPercent(msg.timemark, duration)}%` + '\r') }) .run() }) }
.audioCodec('libmp3lame') .videoCodec('libx264') .videoFilters({
let convertAudiobook = (input, output, activationBytes, duration) => { return new Promise((resolve, reject) => { ffmpeg(input) .audioCodec('copy') .noVideo() .inputOptions([`-activation_bytes ${activationBytes}`]) .output(output) .on('end', () => { console.log('') // fix stdout resolve() }) .on('error', (err) => { console.log('') // fix stdout reject(err) }) .on('start', (cmd) => { logger.log('debug', cmd) }) .on('progress', (msg) => { process.stdout.write(`Converting Audiobook (using ${activationBytes} for decryption) ... ${currentTimemarkToPercent(msg.timemark, duration)}%` + '\r') }) .run() }) }
/* Done */ router.get('/effect-sharpen', function (req, res) { ffmpeg('videos/input.mp4') .audioCodec('libmp3lame') // Audio Codec .videoCodec('libx264') .videoFilters('unsharp=7:7:-2:7:7:-2') .output('videos/sharpen.mp4') .on('end', function (err) { if (!err) res.send("Successfull"); }) .on('progress', function (data) { console.log(Math.floor(data.percent) + " %"); }) .on('error', function (err) { console.log('error: ' + err); //callback(err); }).run(); });
/* Done */ router.get('/effect-blur', function (req, res) { ffmpeg('./videos/input.mp4') .audioCodec('libmp3lame') // Audio Codec .videoCodec('libx264') .videoFilters('unsharp=7:7:-2:7:7:-2') .output('videos/blur.mp4') .on('end', function (err) { if (!err) res.send("Successfull"); }) .on('progress', function (data) { console.log(Math.floor(data.percent) + " %"); }) .on('error', function (err) { console.log('error: ' + err); }).run(); });