@quatrain/worker 1.1.22 → 1.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/FileSystem.js CHANGED
@@ -91,6 +91,7 @@ class FileSystem {
91
91
  static uploadFile(filename, meta, mime = 'video/mp4') {
92
92
  // try to get more file metadata
93
93
  meta = { ...meta, ...FileSystem.getInfo(filename) };
94
+ Worker_1.Worker.info(`Uploading file ${filename} to ${meta.uploadUrl}`);
94
95
  return new Promise((resolve, reject) => {
95
96
  try {
96
97
  let done = 0; // total bytes uploaded
@@ -119,7 +120,10 @@ class FileSystem {
119
120
  },
120
121
  })
121
122
  .then(() => resolve({ ...meta, size, uploadUrl: undefined }))
122
- .catch((err) => reject(err));
123
+ .catch((err) => {
124
+ Worker_1.Worker.error(`An error occured while uploading ${filename}: ${err.message}`);
125
+ reject(err);
126
+ });
123
127
  }
124
128
  catch (err) {
125
129
  Worker_1.Worker.error(err);
@@ -137,7 +141,7 @@ class FileSystem {
137
141
  Worker_1.Worker.error(err);
138
142
  reject(err);
139
143
  }
140
- Worker_1.Worker.debug(`ffprobe getInfo: ${JSON.stringify(metadata)}`);
144
+ // Worker.debug(`ffprobe getInfo: ${JSON.stringify(metadata)}`)
141
145
  const { width, height, duration, bit_rate: bitrate, nb_frames: nbFramees, } = metadata.streams[0];
142
146
  const nb_frames = parseFloat(nbFramees);
143
147
  const framerate = nb_frames / parseFloat(duration);
@@ -0,0 +1,11 @@
1
+ export declare class Helpers {
2
+ static FFMPEG: string;
3
+ /**
4
+ * Generate a thubnail from a video file at given frame position
5
+ * @param videoPath path to video file
6
+ * @param frame frame to extract thumbnail from
7
+ * @param width width of thumbnail (4/3 ratio)
8
+ * @returns
9
+ */
10
+ static generateVideoThumbnail: (videoPath: string, frame?: number, width?: number) => Promise<any>;
11
+ }
package/lib/Helpers.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Helpers = void 0;
7
+ const Worker_1 = require("./Worker");
8
+ const path_1 = __importDefault(require("path"));
9
+ class Helpers {
10
+ static FFMPEG = '/usr/bin/ffmpeg';
11
+ /**
12
+ * Generate a thubnail from a video file at given frame position
13
+ * @param videoPath path to video file
14
+ * @param frame frame to extract thumbnail from
15
+ * @param width width of thumbnail (4/3 ratio)
16
+ * @returns
17
+ */
18
+ static generateVideoThumbnail = async (videoPath, frame = 0, width = 320) => {
19
+ const resolution = `${width}x${Math.ceil(width * 0.75)}`;
20
+ const outputPath = path_1.default.resolve(videoPath.split('.')[0], `_${frame}_${resolution}.jpg`);
21
+ const ffmpegParams = [
22
+ '-i',
23
+ videoPath,
24
+ '-vframes',
25
+ '1',
26
+ '-vf',
27
+ `select=gte(n\,${frame})`,
28
+ '-s',
29
+ resolution,
30
+ '-ss',
31
+ '1',
32
+ outputPath,
33
+ '-y',
34
+ ];
35
+ Worker_1.Worker.info(`Generating Thumbnail : ${outputPath}`);
36
+ return await Worker_1.Worker.execPromise(Helpers.FFMPEG, ffmpegParams);
37
+ };
38
+ }
39
+ exports.Helpers = Helpers;
package/lib/Worker.js CHANGED
@@ -76,7 +76,6 @@ class Worker extends core_1.Core {
76
76
  */
77
77
  static handler = async (messageHandler, config) => {
78
78
  try {
79
- Worker.info(`Worker version ${require('../package.json').version} started in ${config.mode} mode`);
80
79
  switch (config.mode) {
81
80
  case 'queue':
82
81
  const { Queue } = require('@quatrain/queue');
package/lib/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Worker } from './Worker';
2
2
  import { FileSystem } from './FileSystem';
3
+ import { Helpers } from './Helpers';
3
4
  import { HandlerParameters } from './types/HandlerParameters';
4
5
  import { ModeEnum } from './types/ModeEnum';
5
- export { Worker, FileSystem, ModeEnum, HandlerParameters };
6
+ export { Worker, FileSystem, Helpers, ModeEnum, HandlerParameters };
package/lib/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModeEnum = exports.FileSystem = exports.Worker = void 0;
3
+ exports.ModeEnum = exports.Helpers = exports.FileSystem = exports.Worker = void 0;
4
4
  const Worker_1 = require("./Worker");
5
5
  Object.defineProperty(exports, "Worker", { enumerable: true, get: function () { return Worker_1.Worker; } });
6
6
  const FileSystem_1 = require("./FileSystem");
7
7
  Object.defineProperty(exports, "FileSystem", { enumerable: true, get: function () { return FileSystem_1.FileSystem; } });
8
+ const Helpers_1 = require("./Helpers");
9
+ Object.defineProperty(exports, "Helpers", { enumerable: true, get: function () { return Helpers_1.Helpers; } });
8
10
  const ModeEnum_1 = require("./types/ModeEnum");
9
11
  Object.defineProperty(exports, "ModeEnum", { enumerable: true, get: function () { return ModeEnum_1.ModeEnum; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/worker",
3
- "version": "1.1.22",
3
+ "version": "1.1.25",
4
4
  "description": "Container Worker helpers",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@quatrain/core": "^1.1.19",
29
- "@quatrain/queue": "^1.1.15",
29
+ "@quatrain/queue": "^1.1.16",
30
30
  "axios": "^1.7.7",
31
31
  "fluent-ffmpeg": "^2.1.2",
32
32
  "fs-extra": "^11.2.0",