@haibun/utils 1.47.1 → 1.48.0
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/bin/generate-video.sh +1 -1
- package/build/generate-video.js +78 -66
- package/build/generate-video.js.map +1 -1
- package/package.json +2 -2
package/bin/generate-video.sh
CHANGED
|
@@ -19,7 +19,7 @@ PACKAGE_DIR=$(npm root)/@haibun/utils
|
|
|
19
19
|
# Generate editly configuration from monitor.json
|
|
20
20
|
echo "Generating editly configuration..."
|
|
21
21
|
# Use the correct path to the built JS file
|
|
22
|
-
node "$PACKAGE_DIR/build/generate-video.js"
|
|
22
|
+
node "$PACKAGE_DIR/build/generate-video.js" $* || handle_error "Failed to generate editly configuration"
|
|
23
23
|
|
|
24
24
|
# Run editly using Docker directly instead of alias
|
|
25
25
|
echo "Generating video with editly..."
|
package/build/generate-video.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getMediafileDuration } from '@haibun/core/build/steps/lib/tts.js';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
|
-
const generateEditlyConfig = async (logEntries, outputPath, inputFilePath, title) => {
|
|
3
|
+
const generateEditlyConfig = async (logEntries, outputPath, jitter, inputFilePath, title, endTitle) => {
|
|
4
4
|
// Get the base directory from the input file path to resolve relative paths
|
|
5
5
|
const basePath = inputFilePath.substring(0, inputFilePath.lastIndexOf('/') + 1);
|
|
6
6
|
console.log(`Base path for assets: ${basePath}`);
|
|
@@ -28,65 +28,71 @@ const generateEditlyConfig = async (logEntries, outputPath, inputFilePath, title
|
|
|
28
28
|
if (featureStartEntry) {
|
|
29
29
|
assets.featureStart = featureStartEntry.messageContext.incidentDetails.startTime;
|
|
30
30
|
}
|
|
31
|
+
else {
|
|
32
|
+
throw new Error('No FEATURE_START with startTime found in log.');
|
|
33
|
+
}
|
|
31
34
|
const featureEndEntry = logEntries.find(e => e.messageContext?.incident === 'FEATURE_END' && e.messageContext?.incidentDetails?.totalTime);
|
|
32
35
|
const totalDuration = featureEndEntry.messageContext.incidentDetails.totalTime / 1000;
|
|
33
36
|
if (!featureEndEntry)
|
|
34
37
|
throw new Error('No FEATURE_END with totalTime found in log.');
|
|
35
|
-
// Find the main video asset
|
|
36
38
|
if (assets.video.length === 0)
|
|
37
39
|
throw new Error('No video asset found.');
|
|
38
40
|
const mainVideoAsset = assets.video[0];
|
|
39
41
|
const videoFileDuration = await getMediafileDuration(mainVideoAsset.path);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
console.
|
|
47
|
-
console.
|
|
48
|
-
console.
|
|
49
|
-
console.
|
|
50
|
-
console.
|
|
51
|
-
console.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const timelineZero = 0;
|
|
56
|
-
// Find FEATURE_END for duration
|
|
42
|
+
const videoLayerStart = totalDuration - videoFileDuration;
|
|
43
|
+
const videoStartFromArtifact = logEntries.find(e => e.messageContext?.artifact?.artifactType === 'video/start').messageContext.artifact.start / 1000;
|
|
44
|
+
if (videoStartFromArtifact < 1)
|
|
45
|
+
throw new Error('No video start time found in log.');
|
|
46
|
+
console.info("\nAssets:");
|
|
47
|
+
console.info("video:", assets.video.map(v => ({ start: v.start, path: v.path })));
|
|
48
|
+
console.info("speech:", assets.speech.map(s => ({ start: s.start, path: s.path })));
|
|
49
|
+
console.info("featureStart", assets.featureStart);
|
|
50
|
+
console.info("totalDuration", totalDuration);
|
|
51
|
+
console.info("videoFileDuration", videoFileDuration);
|
|
52
|
+
console.info("videoLayerStart", videoLayerStart);
|
|
53
|
+
console.info('videoStartFromArtifact', videoStartFromArtifact);
|
|
54
|
+
// this is subject to wobble, videoLayerStart or videoStartFromArtifact are forays
|
|
55
|
+
const videoStart = videoStartFromArtifact + jitter;
|
|
56
|
+
const endSlideDuration = 2;
|
|
57
57
|
// Build layers for the single clip
|
|
58
58
|
const layers = [];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
transition: null
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
// Only add detached-audio for speech assets (no subtitle for speech)
|
|
59
|
+
layers.push({
|
|
60
|
+
type: 'title',
|
|
61
|
+
text: title,
|
|
62
|
+
textColor: '#cccccc',
|
|
63
|
+
backgroundColor: '#222',
|
|
64
|
+
position: 'center',
|
|
65
|
+
start: 0,
|
|
66
|
+
duration: videoStart,
|
|
67
|
+
fadeIn: 0,
|
|
68
|
+
transition: null
|
|
69
|
+
});
|
|
74
70
|
for (const speech of assets.speech) {
|
|
75
|
-
const relStartS = ((speech.start ?? 0) - timelineZero) / 1000;
|
|
76
71
|
layers.push({
|
|
77
72
|
type: 'detached-audio',
|
|
78
73
|
path: speech.path,
|
|
79
74
|
cutFrom: 0,
|
|
80
|
-
start:
|
|
75
|
+
start: speech.start / 1000,
|
|
81
76
|
mixVolume: 100
|
|
82
77
|
});
|
|
83
78
|
}
|
|
84
79
|
layers.push({
|
|
85
80
|
type: 'video',
|
|
86
81
|
path: mainVideoAsset.path,
|
|
87
|
-
start:
|
|
82
|
+
start: videoStart
|
|
83
|
+
});
|
|
84
|
+
// Add end slide
|
|
85
|
+
layers.push({
|
|
86
|
+
type: 'title',
|
|
87
|
+
text: endTitle,
|
|
88
|
+
textColor: '#cccccc',
|
|
89
|
+
backgroundColor: '#222',
|
|
90
|
+
position: 'center',
|
|
91
|
+
start: totalDuration,
|
|
92
|
+
duration: endSlideDuration,
|
|
93
|
+
fadeIn: 0,
|
|
94
|
+
transition: null
|
|
88
95
|
});
|
|
89
|
-
// Sort layers by their start time (if present)
|
|
90
96
|
layers.sort((a, b) => (a.start ?? 0) - (b.start ?? 0));
|
|
91
97
|
const config = {
|
|
92
98
|
outPath: outputPath,
|
|
@@ -97,7 +103,7 @@ const generateEditlyConfig = async (logEntries, outputPath, inputFilePath, title
|
|
|
97
103
|
},
|
|
98
104
|
clips: [
|
|
99
105
|
{
|
|
100
|
-
duration: totalDuration,
|
|
106
|
+
duration: totalDuration + endSlideDuration,
|
|
101
107
|
layers
|
|
102
108
|
}
|
|
103
109
|
]
|
|
@@ -105,39 +111,45 @@ const generateEditlyConfig = async (logEntries, outputPath, inputFilePath, title
|
|
|
105
111
|
return config;
|
|
106
112
|
};
|
|
107
113
|
const main = async () => {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
114
|
+
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));
|
|
115
|
+
let jitter = -2;
|
|
116
|
+
const positional = [];
|
|
117
|
+
for (const arg of process.argv.slice(2)) {
|
|
118
|
+
if (arg.startsWith('--jitter=')) {
|
|
119
|
+
const val = arg.split('=')[1];
|
|
120
|
+
if (!isNaN(Number(val))) {
|
|
121
|
+
jitter = Number(val);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
throw new Error(`Invalid value for --jitter: ${val}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
positional.push(arg);
|
|
112
129
|
}
|
|
113
|
-
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8'));
|
|
114
|
-
const args = process.argv.slice(2);
|
|
115
|
-
const inputFile = args[0];
|
|
116
|
-
const outputFile = args[1];
|
|
117
|
-
const configOutput = args[2];
|
|
118
|
-
const title = args[3] || packageJson?.description || packageJson?.name;
|
|
119
|
-
console.log(args);
|
|
120
|
-
console.log(`Input file: ${inputFile}`);
|
|
121
|
-
console.log(`Output video file: ${outputFile}`);
|
|
122
|
-
console.log(`Config output: ${configOutput}`);
|
|
123
|
-
console.log('Title:', title);
|
|
124
|
-
// Read monitor.json
|
|
125
|
-
const logData = fs.readFileSync(inputFile, 'utf-8');
|
|
126
|
-
const logEntries = JSON.parse(logData);
|
|
127
|
-
console.log(`Loaded ${logEntries.length} log entries`);
|
|
128
|
-
// Generate editly config
|
|
129
|
-
const editlyConfig = await generateEditlyConfig(logEntries, outputFile, inputFile, title);
|
|
130
|
-
// Write config to file
|
|
131
|
-
fs.writeFileSync(configOutput, JSON.stringify(editlyConfig, null, 2));
|
|
132
|
-
console.log(`\nEditly config written to ${configOutput}`);
|
|
133
|
-
console.log(`To generate video, run: editly ${configOutput}`);
|
|
134
130
|
}
|
|
135
|
-
|
|
136
|
-
console.error('
|
|
131
|
+
if (positional.length < 3) {
|
|
132
|
+
console.error('Usage: node generate-video.js [--jitter=<n>] <inputFile> <outputFile> <configOutput> [title] [endTitle]');
|
|
137
133
|
process.exit(1);
|
|
138
134
|
}
|
|
135
|
+
const defaultTitle = packageJson?.description || packageJson?.name;
|
|
136
|
+
const defaultEndTitle = "End of test";
|
|
137
|
+
const [inputFile, outputFile, configOutput, title, endTitle] = positional;
|
|
138
|
+
console.info('Jitter:', jitter);
|
|
139
|
+
console.info(`Input file: ${inputFile}`);
|
|
140
|
+
console.info(`Output video file: ${outputFile}`);
|
|
141
|
+
console.info(`Config output: ${configOutput}`);
|
|
142
|
+
console.info('Title:', title);
|
|
143
|
+
console.info('End Title:', endTitle);
|
|
144
|
+
const logData = fs.readFileSync(inputFile, 'utf-8');
|
|
145
|
+
const logEntries = JSON.parse(logData);
|
|
146
|
+
console.log(`Loaded ${logEntries.length} log entries`);
|
|
147
|
+
const editlyConfig = await generateEditlyConfig(logEntries, outputFile, jitter, inputFile, title || defaultTitle, endTitle || defaultEndTitle);
|
|
148
|
+
fs.writeFileSync(configOutput, JSON.stringify(editlyConfig, null, 2));
|
|
149
|
+
console.info(`\nEditly config written to ${configOutput}`);
|
|
139
150
|
};
|
|
140
151
|
main().catch((error) => {
|
|
141
152
|
console.error('Error in main function:', error);
|
|
153
|
+
process.exit(1);
|
|
142
154
|
});
|
|
143
155
|
//# sourceMappingURL=generate-video.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-video.js","sourceRoot":"","sources":["../src/generate-video.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAezB,MAAM,oBAAoB,GAAG,KAAK,EAAE,UAAsB,EAAE,UAAkB,EAAE,aAAqB,EAAE,KAAa,EAAsB,EAAE;
|
|
1
|
+
{"version":3,"file":"generate-video.js","sourceRoot":"","sources":["../src/generate-video.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haibun/utils",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.48.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"files": ["ref.package.json", "build/**", "scaffold/**"],
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
24
|
"gitHead": "7cf9680bd922fb622fb59f1e6bf5b65284cb8fd5",
|
|
25
|
-
"dependencies": { "@haibun/cli": "1.
|
|
25
|
+
"dependencies": { "@haibun/cli": "1.48.0", "@haibun/core": "1.48.0" }
|
|
26
26
|
}
|