| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- const hbjs = require('handbrake-js');
- const path = require('path');
- const settings = require('../data/settings.json'); // get the settings
- const { log } = require('./utils');
- // spawn a handbrake
- const process = (input, output, preset) => {
- return new Promise((resolve, reject) => {
- const inputName = path.basename(input);
- const outputName = path.basename(output);
- hbjs
- .spawn({
- input: input,
- output: output,
- preset: preset,
- })
- .on('start', err => {
- log(` -> "${outputName}" [starting] (${new Date()} with "${preset}")`);
- })
- .on('error', err => {
- log(` -> "${outputName}" [errored] (${new Date()}: ${err.message || err})\n`);
- //if (settings.queue.deleteOnFail)
- reject(err);
- })
- .on('progress', progress => {
- log(` -> "${outputName}" [transcoding] (${progress.percentComplete}%, ETA: ${progress.eta})`);
- })
- .on('cancelled', () => {
- log(` -> "${outputName}" [cancelled] (${new Date()})\n`);
- reject(new Error(`Processing "${outputName}" cancelled`));
- })
- .on('complete', () => {
- log(` -> "${outputName}" [completed] (${new Date()} with "${preset}")\n`);
- resolve(true);
- });
- });
- };
- module.exports = {
- process,
- };
|