mulmocast 2.1.1 → 2.1.2
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/actions/movie.js +7 -4
- package/package.json +5 -5
package/lib/actions/movie.js
CHANGED
|
@@ -185,10 +185,13 @@ const addTransitionEffects = (ffmpegContext, captionedVideoId, context, transiti
|
|
|
185
185
|
// Cannot apply wipe without first frame
|
|
186
186
|
return prevVideoId;
|
|
187
187
|
}
|
|
188
|
-
//
|
|
189
|
-
// The
|
|
190
|
-
const
|
|
191
|
-
const
|
|
188
|
+
// Calculate the actual duration of the static frames
|
|
189
|
+
// The _last frame was generated with the previous beat's actual duration
|
|
190
|
+
const prevStudioBeat = context.studio.beats[beatIndex - 1];
|
|
191
|
+
const prevBeatActualDuration = Math.max(prevStudioBeat.duration + getExtraPadding(context, beatIndex - 1), prevStudioBeat.movieDuration ?? 0);
|
|
192
|
+
// xfade offset must be non-negative and within the first video's duration
|
|
193
|
+
// Start the transition at the end of the first video minus the transition duration
|
|
194
|
+
const xfadeOffset = Math.max(0, prevBeatActualDuration - duration);
|
|
192
195
|
// Apply xfade with explicit pixel format
|
|
193
196
|
const xfadeOutputId = `${transitionVideoId}_xfade`;
|
|
194
197
|
ffmpegContext.filterComplex.push(`[${transitionVideoId}]format=yuv420p[${transitionVideoId}_fmt]`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mulmocast",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.node.js",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"homepage": "https://github.com/receptron/mulmocast-cli#readme",
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@google-cloud/text-to-speech": "^6.4.0",
|
|
77
|
-
"@google/genai": "^1.
|
|
77
|
+
"@google/genai": "^1.32.0",
|
|
78
78
|
"@graphai/anthropic_agent": "^2.0.12",
|
|
79
79
|
"@graphai/browserless_agent": "^2.0.1",
|
|
80
80
|
"@graphai/gemini_agent": "^2.0.1",
|
|
@@ -94,11 +94,11 @@
|
|
|
94
94
|
"dotenv": "^17.2.3",
|
|
95
95
|
"fluent-ffmpeg": "^2.1.3",
|
|
96
96
|
"graphai": "^2.0.16",
|
|
97
|
-
"jsdom": "^27.
|
|
97
|
+
"jsdom": "^27.3.0",
|
|
98
98
|
"marked": "^17.0.1",
|
|
99
99
|
"mulmocast-vision": "^1.0.8",
|
|
100
100
|
"ora": "^9.0.0",
|
|
101
|
-
"puppeteer": "^24.32.
|
|
101
|
+
"puppeteer": "^24.32.1",
|
|
102
102
|
"replicate": "^1.4.0",
|
|
103
103
|
"yaml": "^2.8.2",
|
|
104
104
|
"yargs": "^18.0.0",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"prettier": "^3.7.4",
|
|
118
118
|
"tsx": "^4.21.0",
|
|
119
119
|
"typescript": "^5.9.3",
|
|
120
|
-
"typescript-eslint": "^8.
|
|
120
|
+
"typescript-eslint": "^8.49.0"
|
|
121
121
|
},
|
|
122
122
|
"engines": {
|
|
123
123
|
"node": ">=20.0.0"
|