n8n-nodes-sb-render 1.3.26 → 1.3.27
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/dist/nodes/SbRender/services/AudioMixer.d.ts.map +1 -1
- package/dist/nodes/SbRender/services/AudioMixer.js +7 -2
- package/dist/nodes/SbRender/services/AudioMixer.js.map +1 -1
- package/dist/nodes/SbRender/services/VideoComposer.d.ts +0 -5
- package/dist/nodes/SbRender/services/VideoComposer.d.ts.map +1 -1
- package/dist/nodes/SbRender/services/VideoComposer.js +175 -306
- package/dist/nodes/SbRender/services/VideoComposer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioMixer.d.ts","sourceRoot":"","sources":["../../../../nodes/SbRender/services/AudioMixer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElE;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAOlB;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"AudioMixer.d.ts","sourceRoot":"","sources":["../../../../nodes/SbRender/services/AudioMixer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElE;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC;IAOlB;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,GAAG,MAAM;IAkH/E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,GAAG,MAAM;IAQ9E;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;CAyB9C"}
|
|
@@ -52,8 +52,13 @@ class AudioMixer {
|
|
|
52
52
|
bgmFilter += `,afade=t=in:ss=0:d=${bgmFadeIn}`;
|
|
53
53
|
console.log(`[AudioMixer] Adding BGM fade in: ${bgmFadeIn}s`);
|
|
54
54
|
}
|
|
55
|
-
//
|
|
56
|
-
|
|
55
|
+
// Add fade out if specified and valid
|
|
56
|
+
const bgmFadeOut = config.bgmFadeOut || 0;
|
|
57
|
+
if (bgmFadeOut > 0 && !isNaN(bgmFadeOut) && videoDuration > bgmFadeOut) {
|
|
58
|
+
const fadeOutStart = videoDuration - bgmFadeOut;
|
|
59
|
+
bgmFilter += `,afade=t=out:st=${fadeOutStart.toFixed(3)}:d=${bgmFadeOut}`;
|
|
60
|
+
console.log(`[AudioMixer] Adding BGM fade out: ${bgmFadeOut}s starting at ${fadeOutStart.toFixed(3)}s`);
|
|
61
|
+
}
|
|
57
62
|
bgmFilter += `[bgm]`;
|
|
58
63
|
console.log(`[AudioMixer] BGM filter: ${bgmFilter}`);
|
|
59
64
|
filters.push(bgmFilter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioMixer.js","sourceRoot":"","sources":["../../../../nodes/SbRender/services/AudioMixer.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,UAAU;IACrB;;;OAGG;IACH,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,OAAwB;QAExB,kDAAkD;QAClD,yEAAyE;QACzE,qDAAqD;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,MAAuB,EAAE,gBAAyB;QACpE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,oDAAoD;QAExE,gCAAgC;QAChC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;QAC5B,CAAC;QAED,sCAAsC;QACtC,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,aAAa,oBAAoB,gBAAgB,oBAAoB,aAAa,GAAG,CAAC,CAAC;QAEzL,8BAA8B;QAC9B,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QAED,YAAY;QACZ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;YACzC,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;YAExC,OAAO,CAAC,GAAG,CAAC,yCAAyC,SAAS,eAAe,aAAa,GAAG,CAAC,CAAC;YAE/F,gDAAgD;YAChD,oCAAoC;YACpC,iEAAiE;YACjE,IAAI,SAAS,GAAG,IAAI,UAAU,aAAa,SAAS,EAAE,CAAC;YAEvD,qDAAqD;YACrD,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,SAAS,IAAI,sBAAsB,SAAS,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,oCAAoC,SAAS,GAAG,CAAC,CAAC;YAChE,CAAC;
|
|
1
|
+
{"version":3,"file":"AudioMixer.js","sourceRoot":"","sources":["../../../../nodes/SbRender/services/AudioMixer.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,11 +20,6 @@ export declare class VideoComposer implements IVideoComposer {
|
|
|
20
20
|
* Get audio file duration
|
|
21
21
|
*/
|
|
22
22
|
getAudioDuration(audioPath: string): Promise<number>;
|
|
23
|
-
/**
|
|
24
|
-
* Get video's audio track duration
|
|
25
|
-
* This is useful when video has audio that might be longer than video duration
|
|
26
|
-
*/
|
|
27
|
-
getVideoAudioDuration(videoPath: string): Promise<number>;
|
|
28
23
|
/**
|
|
29
24
|
* Get video metadata (duration, resolution, codec)
|
|
30
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoComposer.d.ts","sourceRoot":"","sources":["../../../../nodes/SbRender/services/VideoComposer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VideoComposer.d.ts","sourceRoot":"","sources":["../../../../nodes/SbRender/services/VideoComposer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAyEzF;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD;;OAEG;IACG,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,CAAC;IAiGlB;;OAEG;IACG,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,CAAC;IAgRlB;;OAEG;YACW,mBAAmB;IAuBjC;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc1D;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA0FlE;;OAEG;IACH,OAAO,CAAC,MAAM;IAcd;;OAEG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,SAAY,EACtB,OAAO,SAAS,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,SAAQ,GACnB,OAAO,CAAC,MAAM,CAAC;IA6KlB;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,SAAY,EACtB,OAAO,SAAS,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,SAAQ,GACnB,OAAO,CAAC,MAAM,CAAC;IA4ElB;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;CAiBlD"}
|
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -6,32 +39,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
39
|
exports.VideoComposer = void 0;
|
|
7
40
|
const fs_1 = require("fs");
|
|
8
41
|
const path_1 = require("path");
|
|
9
|
-
const child_process_1 = require("child_process");
|
|
10
42
|
const fluent_ffmpeg_1 = __importDefault(require("fluent-ffmpeg"));
|
|
43
|
+
const ffmpeg_1 = __importDefault(require("@ffmpeg-installer/ffmpeg"));
|
|
44
|
+
const ffprobeInstaller = __importStar(require("@ffprobe-installer/ffprobe"));
|
|
11
45
|
// Debug mode: set SB_RENDER_DEBUG=true to enable file-based debug logging
|
|
12
46
|
const DEBUG_MODE = process.env.SB_RENDER_DEBUG === 'true';
|
|
13
47
|
const DEBUG_LOG_PATH = '/tmp/sb-render-debug.log';
|
|
14
|
-
// Configuration constants
|
|
15
|
-
const CONFIG = {
|
|
16
|
-
// Video defaults
|
|
17
|
-
DEFAULT_WIDTH: 1920,
|
|
18
|
-
DEFAULT_HEIGHT: 1080,
|
|
19
|
-
DEFAULT_FPS: 24,
|
|
20
|
-
DEFAULT_DURATION: 30,
|
|
21
|
-
// Audio defaults
|
|
22
|
-
AUDIO_SAMPLE_RATE: 44100,
|
|
23
|
-
AUDIO_CHANNELS: 2,
|
|
24
|
-
AUDIO_BITRATE: '192k',
|
|
25
|
-
DEFAULT_BGM_VOLUME: 30,
|
|
26
|
-
DEFAULT_NARRATION_VOLUME: 100,
|
|
27
|
-
// Timeouts (in milliseconds)
|
|
28
|
-
FFMPEG_TIMEOUT_MS: 3600000, // 1 hour for long videos
|
|
29
|
-
FFPROBE_TIMEOUT_MS: 30000, // 30 seconds for metadata
|
|
30
|
-
// Limits
|
|
31
|
-
MAX_BGM_LOOPS: 100,
|
|
32
|
-
MIN_SUBTITLE_DURATION: 0.1,
|
|
33
|
-
SUBTITLE_GAP: 0.05,
|
|
34
|
-
};
|
|
35
48
|
// Helper function for debug logging
|
|
36
49
|
function debugLog(message) {
|
|
37
50
|
if (DEBUG_MODE) {
|
|
@@ -39,125 +52,64 @@ function debugLog(message) {
|
|
|
39
52
|
(0, fs_1.appendFileSync)(DEBUG_LOG_PATH, `${timestamp} ${message}\n`);
|
|
40
53
|
}
|
|
41
54
|
}
|
|
42
|
-
|
|
43
|
-
* Create a timeout wrapper for FFmpeg commands
|
|
44
|
-
*/
|
|
45
|
-
function createTimeoutPromise(promise, timeoutMs, operationName, cleanup) {
|
|
46
|
-
return new Promise((resolve, reject) => {
|
|
47
|
-
const timeoutId = setTimeout(() => {
|
|
48
|
-
if (cleanup)
|
|
49
|
-
cleanup();
|
|
50
|
-
reject(new Error(`[${operationName}] Operation timed out after ${timeoutMs / 1000}s`));
|
|
51
|
-
}, timeoutMs);
|
|
52
|
-
promise
|
|
53
|
-
.then((result) => {
|
|
54
|
-
clearTimeout(timeoutId);
|
|
55
|
-
resolve(result);
|
|
56
|
-
})
|
|
57
|
-
.catch((error) => {
|
|
58
|
-
clearTimeout(timeoutId);
|
|
59
|
-
reject(error);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Check if a command is available in the system
|
|
65
|
-
*/
|
|
66
|
-
function isCommandAvailable(command) {
|
|
67
|
-
try {
|
|
68
|
-
(0, child_process_1.execSync)(`which ${command}`, { stdio: 'ignore' });
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Fix permissions for npm-installed binaries
|
|
77
|
-
*/
|
|
78
|
-
function fixBinaryPermissions(binaryPath) {
|
|
79
|
-
try {
|
|
80
|
-
if ((0, fs_1.existsSync)(binaryPath)) {
|
|
81
|
-
(0, child_process_1.execSync)(`chmod +x "${binaryPath}"`, { stdio: 'ignore' });
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
debugLog(`[VideoComposer] Failed to fix permissions for ${binaryPath}: ${error}`);
|
|
87
|
-
}
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
// Set FFmpeg and FFprobe paths with intelligent fallback strategy
|
|
91
|
-
// Priority: 1. System binaries (most reliable in Docker)
|
|
92
|
-
// 2. npm packages with permission fix
|
|
93
|
-
// 3. Graceful degradation
|
|
55
|
+
// Set FFmpeg and FFprobe paths with validation
|
|
94
56
|
try {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
//
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
if (isCommandAvailable('ffprobe')) {
|
|
104
|
-
ffprobePath = 'ffprobe';
|
|
105
|
-
console.log('[VideoComposer] ✅ Using system ffprobe');
|
|
106
|
-
debugLog('[VideoComposer] Using system ffprobe');
|
|
107
|
-
}
|
|
108
|
-
// STRATEGY 2: Try npm-installed binaries if system binaries not available
|
|
109
|
-
if (!ffmpegPath || !ffprobePath) {
|
|
57
|
+
const ffmpegPath = ffmpeg_1.default.path;
|
|
58
|
+
const ffprobePath = ffprobeInstaller.path;
|
|
59
|
+
// Validate that binaries actually exist (critical for n8n environment)
|
|
60
|
+
if (!(0, fs_1.existsSync)(ffmpegPath)) {
|
|
61
|
+
console.error(`[VideoComposer] FFmpeg binary not found at: ${ffmpegPath}`);
|
|
62
|
+
debugLog(`[VideoComposer] FFmpeg binary missing: ${ffmpegPath}`);
|
|
63
|
+
// Try system ffmpeg as fallback
|
|
110
64
|
try {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const ffprobeInstaller = require('@ffprobe-installer/ffprobe');
|
|
115
|
-
if (!ffmpegPath && ffmpegInstaller.path) {
|
|
116
|
-
if ((0, fs_1.existsSync)(ffmpegInstaller.path)) {
|
|
117
|
-
// Try to fix permissions
|
|
118
|
-
fixBinaryPermissions(ffmpegInstaller.path);
|
|
119
|
-
ffmpegPath = ffmpegInstaller.path;
|
|
120
|
-
console.log(`[VideoComposer] ✅ Using npm ffmpeg: ${ffmpegPath}`);
|
|
121
|
-
debugLog(`[VideoComposer] Using npm ffmpeg: ${ffmpegPath}`);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (!ffprobePath && ffprobeInstaller.path) {
|
|
125
|
-
if ((0, fs_1.existsSync)(ffprobeInstaller.path)) {
|
|
126
|
-
// Try to fix permissions
|
|
127
|
-
fixBinaryPermissions(ffprobeInstaller.path);
|
|
128
|
-
ffprobePath = ffprobeInstaller.path;
|
|
129
|
-
console.log(`[VideoComposer] ✅ Using npm ffprobe: ${ffprobePath}`);
|
|
130
|
-
debugLog(`[VideoComposer] Using npm ffprobe: ${ffprobePath}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
65
|
+
fluent_ffmpeg_1.default.setFfmpegPath('ffmpeg');
|
|
66
|
+
console.warn('[VideoComposer] Using system ffmpeg as fallback');
|
|
67
|
+
debugLog('[VideoComposer] Using system ffmpeg as fallback');
|
|
133
68
|
}
|
|
134
|
-
catch (
|
|
135
|
-
|
|
136
|
-
debugLog(`[VideoComposer] npm packages unavailable: ${npmError}`);
|
|
69
|
+
catch (systemError) {
|
|
70
|
+
throw new Error(`FFmpeg binary not found at ${ffmpegPath} and system ffmpeg unavailable`);
|
|
137
71
|
}
|
|
138
72
|
}
|
|
139
|
-
// Set the paths in fluent-ffmpeg
|
|
140
|
-
if (ffmpegPath) {
|
|
141
|
-
fluent_ffmpeg_1.default.setFfmpegPath(ffmpegPath);
|
|
142
|
-
}
|
|
143
73
|
else {
|
|
144
|
-
|
|
145
|
-
|
|
74
|
+
fluent_ffmpeg_1.default.setFfmpegPath(ffmpegPath);
|
|
75
|
+
console.log(`[VideoComposer] ✅ FFmpeg verified: ${ffmpegPath}`);
|
|
76
|
+
debugLog(`[VideoComposer] FFmpeg path set and verified: ${ffmpegPath}`);
|
|
146
77
|
}
|
|
147
|
-
if (ffprobePath) {
|
|
148
|
-
|
|
78
|
+
if (!(0, fs_1.existsSync)(ffprobePath)) {
|
|
79
|
+
console.error(`[VideoComposer] FFprobe binary not found at: ${ffprobePath}`);
|
|
80
|
+
debugLog(`[VideoComposer] FFprobe binary missing: ${ffprobePath}`);
|
|
81
|
+
// Try system ffprobe as fallback
|
|
82
|
+
try {
|
|
83
|
+
fluent_ffmpeg_1.default.setFfprobePath('ffprobe');
|
|
84
|
+
console.warn('[VideoComposer] Using system ffprobe as fallback');
|
|
85
|
+
debugLog('[VideoComposer] Using system ffprobe as fallback');
|
|
86
|
+
}
|
|
87
|
+
catch (systemError) {
|
|
88
|
+
console.warn('[VideoComposer] System ffprobe also unavailable, metadata detection will be limited');
|
|
89
|
+
debugLog('[VideoComposer] System ffprobe unavailable, will use fallback metadata');
|
|
90
|
+
// Don't throw - we'll handle this gracefully in getVideoMetadata
|
|
91
|
+
}
|
|
149
92
|
}
|
|
150
93
|
else {
|
|
151
|
-
|
|
152
|
-
|
|
94
|
+
fluent_ffmpeg_1.default.setFfprobePath(ffprobePath);
|
|
95
|
+
console.log(`[VideoComposer] ✅ FFprobe verified: ${ffprobePath}`);
|
|
96
|
+
debugLog(`[VideoComposer] FFprobe path set and verified: ${ffprobePath}`);
|
|
153
97
|
}
|
|
154
|
-
// Log final configuration
|
|
155
|
-
console.log('[VideoComposer] 🎬 FFmpeg configuration complete');
|
|
156
|
-
debugLog(`[VideoComposer] Final config - FFmpeg: ${ffmpegPath || 'none'}, FFprobe: ${ffprobePath || 'none'}`);
|
|
157
98
|
}
|
|
158
99
|
catch (error) {
|
|
159
|
-
console.error('[VideoComposer]
|
|
100
|
+
console.error('[VideoComposer] CRITICAL: Failed to initialize FFmpeg/FFprobe:', error);
|
|
160
101
|
debugLog(`[VideoComposer] Initialization error: ${error}`);
|
|
102
|
+
// Final fallback: try system binaries
|
|
103
|
+
try {
|
|
104
|
+
fluent_ffmpeg_1.default.setFfmpegPath('ffmpeg');
|
|
105
|
+
fluent_ffmpeg_1.default.setFfprobePath('ffprobe');
|
|
106
|
+
console.warn('[VideoComposer] Using system ffmpeg/ffprobe binaries as last resort');
|
|
107
|
+
debugLog('[VideoComposer] Using system binaries as last resort');
|
|
108
|
+
}
|
|
109
|
+
catch (systemError) {
|
|
110
|
+
console.error('[VideoComposer] No FFmpeg/FFprobe available - operations will be limited');
|
|
111
|
+
debugLog('[VideoComposer] No FFmpeg available - critical error');
|
|
112
|
+
}
|
|
161
113
|
}
|
|
162
114
|
/**
|
|
163
115
|
* VideoComposer Service
|
|
@@ -184,8 +136,7 @@ class VideoComposer {
|
|
|
184
136
|
// __dirname is dist/nodes/SbRender/services, go up 4 levels to package root
|
|
185
137
|
const fontsDir = (0, path_1.join)((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)(__dirname)))), 'fonts');
|
|
186
138
|
const escapedFontsDir = fontsDir.replace(/\\/g, '/').replace(/:/g, '\\:');
|
|
187
|
-
|
|
188
|
-
videoFilters.push(`subtitles=${escapedPath}:fontsdir=${escapedFontsDir}`);
|
|
139
|
+
videoFilters.push(`ass=${escapedPath}:fontsdir=${escapedFontsDir}`);
|
|
189
140
|
}
|
|
190
141
|
// Apply video filters if any
|
|
191
142
|
if (videoFilters.length > 0) {
|
|
@@ -255,83 +206,79 @@ class VideoComposer {
|
|
|
255
206
|
* Compose with complex audio mixing
|
|
256
207
|
*/
|
|
257
208
|
async composeWithAudioMix(videoPath, bgmPath, narrationPath, subtitlePath, audioFilterChain, outputPath, config) {
|
|
258
|
-
//
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
debugLog(`[ComposeAudioMix] Video metadata: ${JSON.stringify(videoMetadata)}`);
|
|
209
|
+
// Get video duration with better error handling for n8n
|
|
210
|
+
let videoMetadata;
|
|
211
|
+
try {
|
|
212
|
+
videoMetadata = await this.getVideoMetadata(videoPath);
|
|
213
|
+
console.log(`[ComposeAudioMix] Video metadata: duration=${videoMetadata.duration}s, hasAudio=${videoMetadata.hasAudio}`);
|
|
214
|
+
debugLog(`[ComposeAudioMix] Video metadata: ${JSON.stringify(videoMetadata)}`);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
console.warn('[ComposeAudioMix] Failed to get video metadata, using fallback duration detection');
|
|
218
|
+
debugLog(`[ComposeAudioMix] Metadata detection failed: ${error}`);
|
|
219
|
+
// Fallback: Use ffprobe directly on video to get duration
|
|
220
|
+
try {
|
|
221
|
+
const fallbackDuration = await this.getFallbackDuration(videoPath);
|
|
222
|
+
videoMetadata = {
|
|
223
|
+
duration: fallbackDuration,
|
|
224
|
+
width: 1920,
|
|
225
|
+
height: 1080,
|
|
226
|
+
hasAudio: true, // Assume audio exists in n8n to preserve it
|
|
227
|
+
videoCodec: 'unknown'
|
|
228
|
+
};
|
|
229
|
+
console.log(`[ComposeAudioMix] Using fallback duration: ${fallbackDuration}s`);
|
|
230
|
+
}
|
|
231
|
+
catch (fallbackError) {
|
|
232
|
+
console.warn('[ComposeAudioMix] Fallback duration detection also failed, using 30s default');
|
|
233
|
+
videoMetadata = {
|
|
234
|
+
duration: 30, // Conservative default for multiple merged videos
|
|
235
|
+
width: 1920,
|
|
236
|
+
height: 1080,
|
|
237
|
+
hasAudio: true,
|
|
238
|
+
videoCodec: 'unknown'
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
}
|
|
292
242
|
const videoDuration = videoMetadata.duration;
|
|
293
|
-
//
|
|
294
|
-
let
|
|
295
|
-
if (
|
|
243
|
+
// Get BGM duration if exists
|
|
244
|
+
let bgmDuration = 0;
|
|
245
|
+
if (bgmPath) {
|
|
296
246
|
try {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
247
|
+
bgmDuration = await this.getAudioDuration(bgmPath);
|
|
248
|
+
console.log(`[ComposeAudioMix] BGM duration: ${bgmDuration}s, video duration: ${videoDuration}s`);
|
|
249
|
+
debugLog(`[ComposeAudioMix] BGM duration: ${bgmDuration}s`);
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
console.warn('Failed to get BGM duration:', error);
|
|
253
|
+
bgmDuration = 180; // Default 3 minutes
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Get narration duration if exists
|
|
257
|
+
let narrationDuration = 0;
|
|
258
|
+
if (narrationPath) {
|
|
259
|
+
try {
|
|
260
|
+
const narrationMetadata = await this.getAudioDuration(narrationPath);
|
|
261
|
+
narrationDuration = narrationMetadata;
|
|
262
|
+
console.log(`[ComposeAudioMix] Narration duration: ${narrationDuration}s`);
|
|
302
263
|
}
|
|
303
264
|
catch (error) {
|
|
304
|
-
console.warn('Failed to get
|
|
265
|
+
console.warn('Failed to get narration duration:', error);
|
|
305
266
|
}
|
|
306
267
|
}
|
|
307
|
-
// Calculate
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
const safeNarrationDuration = isNaN(narrationDuration) || narrationDuration < 0 ? 0 : narrationDuration;
|
|
311
|
-
const maxDuration = Math.max(safeVideoDuration, safeNarrationDuration) + 10;
|
|
312
|
-
console.log(`[ComposeAudioMix] Max duration for BGM: ${maxDuration}s (video: ${safeVideoDuration}s, narration: ${safeNarrationDuration}s)`);
|
|
268
|
+
// Calculate effective duration (max of video and narration) to ensure BGM covers the whole duration
|
|
269
|
+
const effectiveDuration = Math.max(videoDuration, narrationDuration);
|
|
270
|
+
console.log(`[ComposeAudioMix] Effective duration for BGM: ${effectiveDuration}s (Video: ${videoDuration}s, Narration: ${narrationDuration}s)`);
|
|
313
271
|
return new Promise((resolve, reject) => {
|
|
314
272
|
try {
|
|
315
273
|
const command = (0, fluent_ffmpeg_1.default)(videoPath);
|
|
316
|
-
// Add BGM input with
|
|
274
|
+
// Add BGM input with simple approach
|
|
317
275
|
if (bgmPath) {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
let requiredLoops = 10; // Default minimum
|
|
322
|
-
if (safeBgmDuration > 0 && maxDuration > 0) {
|
|
323
|
-
requiredLoops = Math.ceil((maxDuration / safeBgmDuration) * 1.1); // 10% buffer
|
|
324
|
-
requiredLoops = Math.max(requiredLoops, 1); // At least 1 loop
|
|
325
|
-
requiredLoops = Math.min(requiredLoops, CONFIG.MAX_BGM_LOOPS); // Cap to prevent memory issues
|
|
326
|
-
}
|
|
327
|
-
// Ensure maxDuration is valid for -t option
|
|
328
|
-
const safeTrimDuration = isNaN(maxDuration) || maxDuration <= 0 ? CONFIG.DEFAULT_DURATION + 10 : maxDuration;
|
|
329
|
-
console.log(`[ComposeAudioMix] Adding BGM input: duration=${safeBgmDuration}s, maxNeeded=${safeTrimDuration}s, loops=${requiredLoops}`);
|
|
330
|
-
debugLog(`[ComposeAudioMix] BGM strategy: dynamic loop calculation`);
|
|
331
|
-
// Use calculated loops to ensure BGM covers entire duration
|
|
276
|
+
console.log(`[ComposeAudioMix] Adding BGM input for ${effectiveDuration}s video`);
|
|
277
|
+
debugLog(`[ComposeAudioMix] BGM strategy: simple input mapping`);
|
|
278
|
+
// Use simple input approach without complex looping
|
|
332
279
|
command.input(bgmPath).inputOptions([
|
|
333
|
-
'-stream_loop',
|
|
334
|
-
'-t',
|
|
280
|
+
'-stream_loop', '-1', // Infinite loop to cover any duration
|
|
281
|
+
'-t', (effectiveDuration + 10).toString() // Buffer time based on effective duration
|
|
335
282
|
]);
|
|
336
283
|
}
|
|
337
284
|
// Add narration input
|
|
@@ -360,14 +307,6 @@ class VideoComposer {
|
|
|
360
307
|
finalAudioFilterChain = audioMixer.getAudioFilterChain(audioConfig, videoMetadata.hasAudio);
|
|
361
308
|
console.log(`[ComposeAudioMix] Generated filter chain: "${finalAudioFilterChain}"`);
|
|
362
309
|
debugLog(`[ComposeAudioMix] Generated filter chain: ${finalAudioFilterChain}`);
|
|
363
|
-
// If Half Frame Rate is enabled, pad audio to match doubled video duration
|
|
364
|
-
if (config.halfFrameRate && finalAudioFilterChain && finalAudioFilterChain.includes('[mixed]')) {
|
|
365
|
-
const paddedVideoDuration = videoDuration * 2;
|
|
366
|
-
// Add apad filter to extend audio with silence to match video duration
|
|
367
|
-
finalAudioFilterChain = finalAudioFilterChain.replace('[mixed]', `,apad=whole_dur=${paddedVideoDuration}[mixed]`);
|
|
368
|
-
console.log(`[ComposeAudioMix] Padding audio to ${paddedVideoDuration}s for Half Frame Rate`);
|
|
369
|
-
debugLog(`[ComposeAudioMix] Audio padding filter added: whole_dur=${paddedVideoDuration}`);
|
|
370
|
-
}
|
|
371
310
|
}
|
|
372
311
|
// Apply complex audio filter with fallback to simple approach
|
|
373
312
|
if (finalAudioFilterChain && finalAudioFilterChain.trim() !== '') {
|
|
@@ -424,33 +363,15 @@ class VideoComposer {
|
|
|
424
363
|
}
|
|
425
364
|
// Video filters
|
|
426
365
|
const videoFilters = [];
|
|
427
|
-
//
|
|
428
|
-
let targetVideoDuration = videoDuration;
|
|
366
|
+
// Half frame rate if enabled (doubles duration)
|
|
429
367
|
if (config.halfFrameRate) {
|
|
430
|
-
//
|
|
368
|
+
// Slow down video by doubling PTS and maintaining consistent frame timing
|
|
431
369
|
videoFilters.push('setpts=2.0*PTS');
|
|
432
|
-
targetVideoDuration = videoDuration * 2;
|
|
433
|
-
console.log(`[ComposeAudioMix] Half frame rate: ${videoDuration}s → ${targetVideoDuration}s (setpts=2.0*PTS)`);
|
|
434
|
-
debugLog(`[ComposeAudioMix] Video PTS doubled for half frame rate`);
|
|
435
|
-
}
|
|
436
|
-
else if (config.syncToAudio && narrationDuration > 0) {
|
|
437
|
-
// Sync to audio: stretch/compress video to match narration duration using setpts
|
|
438
|
-
// setpts multiplier: >1 = slower/longer, <1 = faster/shorter
|
|
439
|
-
const ptsFactor = narrationDuration / videoDuration;
|
|
440
|
-
videoFilters.push(`setpts=${ptsFactor.toFixed(4)}*PTS`);
|
|
441
|
-
targetVideoDuration = narrationDuration;
|
|
442
|
-
console.log(`[ComposeAudioMix] Sync to audio: ${videoDuration}s → ${targetVideoDuration}s (setpts=${ptsFactor.toFixed(4)}*PTS)`);
|
|
443
|
-
debugLog(`[ComposeAudioMix] Video PTS adjustment: ${ptsFactor.toFixed(4)}x for audio sync`);
|
|
444
370
|
}
|
|
445
|
-
// If narration is longer than
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
// Validate freezeDuration to prevent NaN errors
|
|
450
|
-
if (!isNaN(freezeDuration) && freezeDuration > 0) {
|
|
451
|
-
videoFilters.push(`tpad=stop_mode=clone:stop_duration=${freezeDuration.toFixed(3)}`);
|
|
452
|
-
console.log(`[ComposeAudioMix] Extending video with freeze frame: +${freezeDuration.toFixed(3)}s`);
|
|
453
|
-
}
|
|
371
|
+
// If narration is longer than video AND sync enabled, freeze last frame
|
|
372
|
+
if (config.syncToAudio && narrationDuration > videoDuration) {
|
|
373
|
+
const freezeDuration = narrationDuration - videoDuration;
|
|
374
|
+
videoFilters.push(`tpad=stop_mode=clone:stop_duration=${freezeDuration}`);
|
|
454
375
|
}
|
|
455
376
|
// Add subtitle overlay if present
|
|
456
377
|
if (subtitlePath) {
|
|
@@ -458,8 +379,7 @@ class VideoComposer {
|
|
|
458
379
|
// __dirname is dist/nodes/SbRender/services, go up 4 levels to package root
|
|
459
380
|
const fontsDir = (0, path_1.join)((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)(__dirname)))), 'fonts');
|
|
460
381
|
const escapedFontsDir = fontsDir.replace(/\\/g, '/').replace(/:/g, '\\:');
|
|
461
|
-
|
|
462
|
-
videoFilters.push(`subtitles=${escapedPath}:fontsdir=${escapedFontsDir}`);
|
|
382
|
+
videoFilters.push(`ass=${escapedPath}:fontsdir=${escapedFontsDir}`);
|
|
463
383
|
}
|
|
464
384
|
if (videoFilters.length > 0) {
|
|
465
385
|
command.videoFilters(videoFilters);
|
|
@@ -471,8 +391,10 @@ class VideoComposer {
|
|
|
471
391
|
'-preset medium',
|
|
472
392
|
'-movflags +faststart',
|
|
473
393
|
];
|
|
474
|
-
//
|
|
475
|
-
|
|
394
|
+
// Add explicit frame rate for half frame rate mode to ensure proper playback
|
|
395
|
+
if (config.halfFrameRate) {
|
|
396
|
+
outputOptions.push('-r 24');
|
|
397
|
+
}
|
|
476
398
|
// Map video and mixed audio with safe fallback
|
|
477
399
|
if (finalAudioFilterChain && finalAudioFilterChain.includes('[mixed]')) {
|
|
478
400
|
// Complex filter was successfully applied
|
|
@@ -488,17 +410,12 @@ class VideoComposer {
|
|
|
488
410
|
}
|
|
489
411
|
else if (narrationPath && !bgmPath) {
|
|
490
412
|
// Narration only - map narration audio and video
|
|
491
|
-
|
|
492
|
-
outputOptions.unshift(
|
|
493
|
-
}
|
|
494
|
-
else if (bgmPath && narrationPath) {
|
|
495
|
-
// Both BGM and narration - Input 0: video, Input 1: BGM, Input 2: narration
|
|
496
|
-
// Use amix filter for proper mixing, but fallback maps BGM (input 1)
|
|
497
|
-
outputOptions.unshift('-map 1:a', '-map 0:v');
|
|
413
|
+
const narrationIndex = videoMetadata.hasAudio ? 1 : 1;
|
|
414
|
+
outputOptions.unshift(`-map ${narrationIndex}:a`, '-map 0:v');
|
|
498
415
|
}
|
|
499
416
|
else {
|
|
500
|
-
//
|
|
501
|
-
outputOptions.unshift('-map
|
|
417
|
+
// Both BGM and narration - use first audio input (BGM)
|
|
418
|
+
outputOptions.unshift('-map 1:a', '-map 0:v');
|
|
502
419
|
}
|
|
503
420
|
}
|
|
504
421
|
else {
|
|
@@ -580,41 +497,6 @@ class VideoComposer {
|
|
|
580
497
|
});
|
|
581
498
|
});
|
|
582
499
|
}
|
|
583
|
-
/**
|
|
584
|
-
* Get video's audio track duration
|
|
585
|
-
* This is useful when video has audio that might be longer than video duration
|
|
586
|
-
*/
|
|
587
|
-
async getVideoAudioDuration(videoPath) {
|
|
588
|
-
return new Promise((resolve, reject) => {
|
|
589
|
-
fluent_ffmpeg_1.default.ffprobe(videoPath, (error, metadata) => {
|
|
590
|
-
var _a, _b;
|
|
591
|
-
if (error) {
|
|
592
|
-
reject(new Error(`Failed to get video audio duration: ${error.message}`));
|
|
593
|
-
return;
|
|
594
|
-
}
|
|
595
|
-
// Find audio stream and get its duration
|
|
596
|
-
const audioStream = (_a = metadata.streams) === null || _a === void 0 ? void 0 : _a.find((stream) => stream.codec_type === 'audio');
|
|
597
|
-
if (audioStream && audioStream.duration !== undefined) {
|
|
598
|
-
const duration = typeof audioStream.duration === 'string'
|
|
599
|
-
? parseFloat(audioStream.duration)
|
|
600
|
-
: audioStream.duration;
|
|
601
|
-
if (!isNaN(duration) && duration > 0) {
|
|
602
|
-
resolve(duration);
|
|
603
|
-
return;
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
// Fallback to format duration with validation
|
|
607
|
-
const formatDuration = (_b = metadata.format) === null || _b === void 0 ? void 0 : _b.duration;
|
|
608
|
-
if (formatDuration && !isNaN(formatDuration) && formatDuration > 0) {
|
|
609
|
-
resolve(formatDuration);
|
|
610
|
-
}
|
|
611
|
-
else {
|
|
612
|
-
console.warn('[VideoAudioDuration] Unable to determine audio duration, returning 0');
|
|
613
|
-
resolve(0);
|
|
614
|
-
}
|
|
615
|
-
});
|
|
616
|
-
});
|
|
617
|
-
}
|
|
618
500
|
/**
|
|
619
501
|
* Get video metadata (duration, resolution, codec)
|
|
620
502
|
*/
|
|
@@ -624,8 +506,16 @@ class VideoComposer {
|
|
|
624
506
|
console.log(logMsg);
|
|
625
507
|
// Also write to file for n8n debugging
|
|
626
508
|
debugLog(`${logMsg}`);
|
|
627
|
-
//
|
|
628
|
-
//
|
|
509
|
+
// Try to use ffprobe
|
|
510
|
+
// Ensure path is set in case n8n environment is different
|
|
511
|
+
try {
|
|
512
|
+
fluent_ffmpeg_1.default.setFfprobePath(ffprobeInstaller.path);
|
|
513
|
+
debugLog(`[Metadata] FFprobe path reconfirmed: ${ffprobeInstaller.path}`);
|
|
514
|
+
}
|
|
515
|
+
catch (e) {
|
|
516
|
+
console.warn('[Metadata] Could not set ffprobe path:', e);
|
|
517
|
+
debugLog(`[Metadata] FFprobe path setting failed: ${e}`);
|
|
518
|
+
}
|
|
629
519
|
fluent_ffmpeg_1.default.ffprobe(videoPath, (error, metadata) => {
|
|
630
520
|
var _a;
|
|
631
521
|
if (error) {
|
|
@@ -652,22 +542,8 @@ class VideoComposer {
|
|
|
652
542
|
}
|
|
653
543
|
const videoStream = metadata.streams.find((s) => s.codec_type === 'video');
|
|
654
544
|
const audioStream = metadata.streams.find((s) => s.codec_type === 'audio');
|
|
655
|
-
// Extract frame rate from video stream
|
|
656
|
-
let fps;
|
|
657
|
-
if (videoStream) {
|
|
658
|
-
// r_frame_rate is a fraction like "24/1" or "30000/1001"
|
|
659
|
-
const frameRateStr = videoStream.r_frame_rate || videoStream.avg_frame_rate;
|
|
660
|
-
if (frameRateStr) {
|
|
661
|
-
const [num, den] = frameRateStr.split('/').map(Number);
|
|
662
|
-
if (den && den > 0) {
|
|
663
|
-
fps = num / den;
|
|
664
|
-
console.log(`[Metadata] Detected frame rate: ${fps.toFixed(2)}fps (${frameRateStr})`);
|
|
665
|
-
debugLog(`[Metadata] Frame rate: ${fps}fps from ${frameRateStr}`);
|
|
666
|
-
}
|
|
667
|
-
}
|
|
668
|
-
}
|
|
669
545
|
const streamInfo = {
|
|
670
|
-
videoStream: videoStream ? `${videoStream.codec_name} ${videoStream.width}x${videoStream.height}
|
|
546
|
+
videoStream: videoStream ? `${videoStream.codec_name} ${videoStream.width}x${videoStream.height}` : 'none',
|
|
671
547
|
audioStream: audioStream ? `${audioStream.codec_name} channels=${audioStream.channels}` : 'none'
|
|
672
548
|
};
|
|
673
549
|
console.log(`[Metadata] Streams found:`, streamInfo);
|
|
@@ -689,7 +565,6 @@ class VideoComposer {
|
|
|
689
565
|
hasAudio: hasValidAudio,
|
|
690
566
|
videoCodec: 'unknown',
|
|
691
567
|
audioCodec: audioStream === null || audioStream === void 0 ? void 0 : audioStream.codec_name,
|
|
692
|
-
fps: undefined,
|
|
693
568
|
});
|
|
694
569
|
return;
|
|
695
570
|
}
|
|
@@ -700,7 +575,6 @@ class VideoComposer {
|
|
|
700
575
|
hasAudio: hasValidAudio,
|
|
701
576
|
videoCodec: videoStream.codec_name || 'unknown',
|
|
702
577
|
audioCodec: audioStream === null || audioStream === void 0 ? void 0 : audioStream.codec_name,
|
|
703
|
-
fps: fps,
|
|
704
578
|
};
|
|
705
579
|
console.log(`[Metadata] ✅ Result:`, result);
|
|
706
580
|
resolve(result);
|
|
@@ -779,7 +653,7 @@ class VideoComposer {
|
|
|
779
653
|
const hasMixedAudio = !allHaveAudio && hasAudio.some(has => has);
|
|
780
654
|
if (allHaveAudio || hasMixedAudio) {
|
|
781
655
|
// All videos have audio OR mixed audio - normalize video and ensure audio for all
|
|
782
|
-
const scaleFilters = videoPaths.map((_, index) => `[${index}:v]scale=1920:1080:force_original_aspect_ratio=
|
|
656
|
+
const scaleFilters = videoPaths.map((_, index) => `[${index}:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=24[v${index}]`).join(';');
|
|
783
657
|
// Prepare audio streams
|
|
784
658
|
const audioStreams = [];
|
|
785
659
|
let audioFilters = '';
|
|
@@ -792,11 +666,9 @@ class VideoComposer {
|
|
|
792
666
|
// Generate silent audio for this video using anullsrc
|
|
793
667
|
// We use the video duration to trim the silence
|
|
794
668
|
const duration = videoMetadataList[index].duration;
|
|
795
|
-
// Validate duration to prevent NaN errors in FFmpeg
|
|
796
|
-
const safeDuration = isNaN(duration) || duration <= 0 ? CONFIG.DEFAULT_DURATION : duration;
|
|
797
669
|
// anullsrc generates infinite silence, we trim it to video duration
|
|
798
670
|
// We use a unique label for this silence stream
|
|
799
|
-
audioFilters += `anullsrc=r=44100:cl=stereo,atrim=duration=${
|
|
671
|
+
audioFilters += `anullsrc=r=44100:cl=stereo,atrim=duration=${duration}[silence${index}];`;
|
|
800
672
|
audioStreams.push(`[silence${index}]`);
|
|
801
673
|
}
|
|
802
674
|
});
|
|
@@ -808,7 +680,7 @@ class VideoComposer {
|
|
|
808
680
|
}
|
|
809
681
|
else {
|
|
810
682
|
// No videos have audio - normalize and concat video only
|
|
811
|
-
const scaleFilters = videoPaths.map((_, index) => `[${index}:v]scale=1920:1080:force_original_aspect_ratio=
|
|
683
|
+
const scaleFilters = videoPaths.map((_, index) => `[${index}:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=24[v${index}]`).join(';');
|
|
812
684
|
const videoStreams = videoPaths.map((_, index) => `[v${index}]`).join('');
|
|
813
685
|
filterString = `${scaleFilters};${videoStreams}concat=n=${videoPaths.length}:v=1:a=0[outv]`;
|
|
814
686
|
}
|
|
@@ -885,19 +757,16 @@ class VideoComposer {
|
|
|
885
757
|
const command = (0, fluent_ffmpeg_1.default)();
|
|
886
758
|
// Add all images as inputs with loop and duration
|
|
887
759
|
imagePaths.forEach((imagePath, index) => {
|
|
888
|
-
// Validate duration to prevent NaN errors in FFmpeg
|
|
889
|
-
const duration = durations[index];
|
|
890
|
-
const safeDuration = isNaN(duration) || duration <= 0 ? CONFIG.DEFAULT_DURATION : duration;
|
|
891
760
|
command
|
|
892
761
|
.input(imagePath)
|
|
893
762
|
.inputOptions([
|
|
894
763
|
'-loop 1',
|
|
895
|
-
`-t ${
|
|
764
|
+
`-t ${durations[index]}`,
|
|
896
765
|
]);
|
|
897
766
|
});
|
|
898
767
|
// Build filter to scale all images to 1920x1080 and concat
|
|
899
|
-
// Each image is scaled to
|
|
900
|
-
const scaleFilters = imagePaths.map((_, index) => `[${index}:v]scale=1920:1080:force_original_aspect_ratio=
|
|
768
|
+
// Each image is scaled to fit within 1920x1080 with padding (black bars) if needed
|
|
769
|
+
const scaleFilters = imagePaths.map((_, index) => `[${index}:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fps=24[v${index}]`).join(';');
|
|
901
770
|
const concatInputs = imagePaths.map((_, index) => `[v${index}]`).join('');
|
|
902
771
|
const filterString = `${scaleFilters};${concatInputs}concat=n=${imagePaths.length}:v=1:a=0[outv]`;
|
|
903
772
|
console.log(`FFmpeg image to video filter: scale and concat`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoComposer.js","sourceRoot":"","sources":["../../../../nodes/SbRender/services/VideoComposer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VideoComposer.js","sourceRoot":"","sources":["../../../../nodes/SbRender/services/VideoComposer.ts"],"names":[],"mappings":"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"}
|