nodejs-audio-visualizer 4.3.6 → 4.3.7
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/index.js +32 -24
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +257 -253
package/dist/index.js
CHANGED
|
@@ -258,11 +258,12 @@ function resolveBackgroundFrameBuffer(params) {
|
|
|
258
258
|
});
|
|
259
259
|
}
|
|
260
260
|
exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
261
|
-
return new Promise(function (resolve) { return __awaiter(void 0, void 0, void 0, function () {
|
|
262
|
-
var audioFilePath,
|
|
261
|
+
return new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {
|
|
262
|
+
var audioFilePath, outVideoPath_1, subtitleSpec, subtitleFilePath, subtitleFileIsTemporary, subtitleAlignmentAss, absPath, ext, raw, backgroundVideoPath, backgroundImagePath, useVideoBackground, audioReader, audioBuffer, sampleRate, spectrumBusMargin, FPS, ffmpeg_cfr, ffmpeg_preset, frame_processing_delay, audioDuration, framesCount, outputResolution, maxProgressReported_1, reportProgress_1, preprocessed, autoHighlight, spectrumsForRender, beatIndicesForRender, framesCountForRender, highlightSlice, separateHighlightFiles, passes, totalPassFrames, totalRenderMilestones_1, renderMilestonesCompleted_1, reportRenderProgress, lastExitCode, outputVideoFiles, _loop_1, _i, passes_1, pass, state_1, error_1;
|
|
263
263
|
return __generator(this, function (_a) {
|
|
264
264
|
switch (_a.label) {
|
|
265
265
|
case 0:
|
|
266
|
+
_a.trys.push([0, 13, , 14]);
|
|
266
267
|
if (config.outVideo.spectrum && config.outVideo.polar) {
|
|
267
268
|
throw new Error('Cannot use both "spectrum" and "polar" options. Please specify only one visualizer type.');
|
|
268
269
|
}
|
|
@@ -273,8 +274,9 @@ exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
|
273
274
|
throw new Error('Cannot use both "image" and "video" options. Please specify only one background source.');
|
|
274
275
|
}
|
|
275
276
|
audioFilePath = config_1.getAudioFilePath(config);
|
|
276
|
-
|
|
277
|
+
outVideoPath_1 = config_1.getOutVideoPath(config);
|
|
277
278
|
subtitleSpec = config_1.getSubtitleRenderSpec(config);
|
|
279
|
+
subtitleFilePath = void 0;
|
|
278
280
|
subtitleFileIsTemporary = false;
|
|
279
281
|
subtitleAlignmentAss = 2;
|
|
280
282
|
if (subtitleSpec) {
|
|
@@ -315,41 +317,42 @@ exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
|
315
317
|
audioDuration = audioBuffer.length / sampleRate;
|
|
316
318
|
framesCount = Math.trunc(audioDuration * FPS);
|
|
317
319
|
outputResolution = config_1.getOutputResolution(config);
|
|
318
|
-
|
|
319
|
-
|
|
320
|
+
maxProgressReported_1 = -1;
|
|
321
|
+
reportProgress_1 = function (progress) {
|
|
320
322
|
if (!onProgress) {
|
|
321
323
|
return;
|
|
322
324
|
}
|
|
323
325
|
var normalized = +Math.min(100, Math.max(0, progress)).toFixed(2);
|
|
324
|
-
if (normalized <=
|
|
326
|
+
if (normalized <= maxProgressReported_1) {
|
|
325
327
|
return;
|
|
326
328
|
}
|
|
327
|
-
|
|
329
|
+
maxProgressReported_1 = normalized;
|
|
328
330
|
onProgress(normalized);
|
|
329
331
|
};
|
|
330
|
-
|
|
332
|
+
reportProgress_1(0);
|
|
331
333
|
return [4 /*yield*/, preProcessAudio(audioBuffer, sampleRate, FPS, framesCount, function (progress) {
|
|
332
|
-
|
|
334
|
+
reportProgress_1(progress);
|
|
333
335
|
})];
|
|
334
336
|
case 2:
|
|
335
337
|
preprocessed = _a.sent();
|
|
336
|
-
|
|
338
|
+
reportProgress_1(PRE_PROCESS_PROGRESS_SHARE);
|
|
337
339
|
autoHighlight = config_1.getAudioAutoHighlight(config);
|
|
338
340
|
spectrumsForRender = preprocessed.spectrums;
|
|
339
341
|
beatIndicesForRender = preprocessed.beatFrameIndices;
|
|
340
342
|
framesCountForRender = framesCount;
|
|
343
|
+
highlightSlice = void 0;
|
|
341
344
|
if (!autoHighlight) return [3 /*break*/, 4];
|
|
342
|
-
|
|
345
|
+
reportProgress_1(PRE_PROCESS_PROGRESS_SHARE + 1);
|
|
343
346
|
return [4 /*yield*/, highlight_1.computeHighlightSlice(FPS, framesCount, preprocessed.spectrums, preprocessed.beatEvents, config_1.getAudioAutoHighlightCount(config))];
|
|
344
347
|
case 3:
|
|
345
348
|
highlightSlice = _a.sent();
|
|
346
349
|
spectrumsForRender = highlightSlice.spectrums;
|
|
347
350
|
beatIndicesForRender = highlightSlice.beatFrameIndices;
|
|
348
351
|
framesCountForRender = highlightSlice.highlightFrames;
|
|
349
|
-
|
|
352
|
+
reportProgress_1(PRE_PROCESS_PROGRESS_SHARE + POST_AUDIO_PROGRESS_SHARE);
|
|
350
353
|
return [3 /*break*/, 5];
|
|
351
354
|
case 4:
|
|
352
|
-
|
|
355
|
+
reportProgress_1(PRE_PROCESS_PROGRESS_SHARE + POST_AUDIO_PROGRESS_SHARE);
|
|
353
356
|
_a.label = 5;
|
|
354
357
|
case 5:
|
|
355
358
|
separateHighlightFiles = autoHighlight &&
|
|
@@ -357,9 +360,9 @@ exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
|
357
360
|
highlightSlice.runs.length > 1;
|
|
358
361
|
passes = separateHighlightFiles && highlightSlice
|
|
359
362
|
? highlightSlice.runs.map(function (run, i) {
|
|
360
|
-
var dir = path_1.default.dirname(
|
|
361
|
-
var ext = path_1.default.extname(
|
|
362
|
-
var base = path_1.default.basename(
|
|
363
|
+
var dir = path_1.default.dirname(outVideoPath_1);
|
|
364
|
+
var ext = path_1.default.extname(outVideoPath_1);
|
|
365
|
+
var base = path_1.default.basename(outVideoPath_1, ext);
|
|
363
366
|
var numberedPath = path_1.default.resolve(dir, base + "-" + (i + 1) + ext);
|
|
364
367
|
return {
|
|
365
368
|
outPath: numberedPath,
|
|
@@ -371,7 +374,7 @@ exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
|
371
374
|
})
|
|
372
375
|
: [
|
|
373
376
|
{
|
|
374
|
-
outPath:
|
|
377
|
+
outPath: outVideoPath_1,
|
|
375
378
|
spectrums: spectrumsForRender,
|
|
376
379
|
beatIndices: beatIndicesForRender,
|
|
377
380
|
frameCount: framesCountForRender,
|
|
@@ -383,14 +386,14 @@ exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
|
383
386
|
},
|
|
384
387
|
];
|
|
385
388
|
totalPassFrames = passes.reduce(function (sum, pass) { return sum + pass.frameCount; }, 0);
|
|
386
|
-
|
|
387
|
-
|
|
389
|
+
totalRenderMilestones_1 = totalPassFrames + (passes.length * 2);
|
|
390
|
+
renderMilestonesCompleted_1 = 0;
|
|
388
391
|
reportRenderProgress = function (milestoneIncrement) {
|
|
389
392
|
if (milestoneIncrement === void 0) { milestoneIncrement = 1; }
|
|
390
|
-
|
|
391
|
-
|
|
393
|
+
renderMilestonesCompleted_1 += milestoneIncrement;
|
|
394
|
+
reportProgress_1(PRE_PROCESS_PROGRESS_SHARE
|
|
392
395
|
+ POST_AUDIO_PROGRESS_SHARE
|
|
393
|
-
+ (RENDER_PROGRESS_SHARE *
|
|
396
|
+
+ (RENDER_PROGRESS_SHARE * renderMilestonesCompleted_1 / Math.max(1, totalRenderMilestones_1)));
|
|
394
397
|
};
|
|
395
398
|
lastExitCode = 0;
|
|
396
399
|
outputVideoFiles = [];
|
|
@@ -517,7 +520,7 @@ exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
|
517
520
|
return [3 /*break*/, 7];
|
|
518
521
|
case 10:
|
|
519
522
|
if (lastExitCode === 0 && outputVideoFiles.length === passes.length) {
|
|
520
|
-
|
|
523
|
+
reportProgress_1(100);
|
|
521
524
|
}
|
|
522
525
|
resolve({ exitCode: lastExitCode, outputVideoFiles: outputVideoFiles });
|
|
523
526
|
return [3 /*break*/, 12];
|
|
@@ -526,7 +529,12 @@ exports.renderAudioVisualizer = function (config, onProgress, shouldStop) {
|
|
|
526
529
|
video_1.cleanupTempFile(subtitleFilePath);
|
|
527
530
|
}
|
|
528
531
|
return [7 /*endfinally*/];
|
|
529
|
-
case 12: return [
|
|
532
|
+
case 12: return [3 /*break*/, 14];
|
|
533
|
+
case 13:
|
|
534
|
+
error_1 = _a.sent();
|
|
535
|
+
reject(error_1);
|
|
536
|
+
return [3 /*break*/, 14];
|
|
537
|
+
case 14: return [2 /*return*/];
|
|
530
538
|
}
|
|
531
539
|
});
|
|
532
540
|
}); });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -386,289 +386,293 @@ export interface RenderAudioVisualizerResult {
|
|
|
386
386
|
}
|
|
387
387
|
|
|
388
388
|
export const renderAudioVisualizer = (config: Config, onProgress?: (progress: number) => any, shouldStop?: () => boolean) =>
|
|
389
|
-
new Promise<RenderAudioVisualizerResult>(async (resolve) => {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
389
|
+
new Promise<RenderAudioVisualizerResult>(async (resolve, reject) => {
|
|
390
|
+
try {
|
|
391
|
+
if (config.outVideo.spectrum && config.outVideo.polar) {
|
|
392
|
+
throw new Error('Cannot use both "spectrum" and "polar" options. Please specify only one visualizer type.');
|
|
393
|
+
}
|
|
394
|
+
if (!config.image && !config.video) {
|
|
395
|
+
throw new Error('Either "image" or "video" must be specified as the background source.');
|
|
396
|
+
}
|
|
397
|
+
if (config.image && config.video) {
|
|
398
|
+
throw new Error('Cannot use both "image" and "video" options. Please specify only one background source.');
|
|
399
|
+
}
|
|
399
400
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
401
|
+
const audioFilePath = getAudioFilePath(config);
|
|
402
|
+
const outVideoPath = getOutVideoPath(config);
|
|
403
|
+
const subtitleSpec = getSubtitleRenderSpec(config);
|
|
404
|
+
let subtitleFilePath: string | undefined;
|
|
405
|
+
let subtitleFileIsTemporary = false;
|
|
406
|
+
let subtitleAlignmentAss = 2;
|
|
407
|
+
if (subtitleSpec) {
|
|
408
|
+
subtitleAlignmentAss = subtitleAlignmentToAss(subtitleSpec.alignment);
|
|
409
|
+
if (subtitleSpec.source.kind === 'file') {
|
|
410
|
+
const absPath = subtitleSpec.source.path;
|
|
411
|
+
const ext = path.extname(absPath).toLowerCase();
|
|
412
|
+
if (ext === '.lrc') {
|
|
413
|
+
const raw = readFileSync(absPath, 'utf-8');
|
|
414
|
+
subtitleFilePath = writeSubtitlesFile(lrcToSrt(raw));
|
|
415
|
+
subtitleFileIsTemporary = true;
|
|
416
|
+
} else {
|
|
417
|
+
subtitleFilePath = absPath;
|
|
418
|
+
}
|
|
415
419
|
} else {
|
|
416
|
-
subtitleFilePath =
|
|
420
|
+
subtitleFilePath = writeSubtitlesFile(
|
|
421
|
+
normalizeInlineSubtitlesToSrt(subtitleSpec.source.text),
|
|
422
|
+
);
|
|
423
|
+
subtitleFileIsTemporary = true;
|
|
417
424
|
}
|
|
418
|
-
} else {
|
|
419
|
-
subtitleFilePath = writeSubtitlesFile(
|
|
420
|
-
normalizeInlineSubtitlesToSrt(subtitleSpec.source.text),
|
|
421
|
-
);
|
|
422
|
-
subtitleFileIsTemporary = true;
|
|
423
425
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
const spectrumBusMargin = getSpectrumBusMargin();
|
|
437
|
-
const FPS = getFPS(config);
|
|
438
|
-
const ffmpeg_cfr = getFfmpeg_cfr(config);
|
|
439
|
-
const ffmpeg_preset = getFfmpeg_preset(config);
|
|
440
|
-
const frame_processing_delay = getFrame_processing_delay(config);
|
|
426
|
+
const backgroundVideoPath = getBackgroundVideoPath(config);
|
|
427
|
+
const backgroundImagePath = getBackgroundImagePath(config);
|
|
428
|
+
const useVideoBackground = !!backgroundVideoPath;
|
|
429
|
+
|
|
430
|
+
const audioReader = await createAudioBuffer(audioFilePath, FFMPEG_FORMAT);
|
|
431
|
+
const audioBuffer = audioReader.audioBuffer;
|
|
432
|
+
const sampleRate = audioReader.sampleRate;
|
|
433
|
+
if (!sampleRate) {
|
|
434
|
+
throw new Error('ffmpeg didn\'t show audio sample rate');
|
|
435
|
+
}
|
|
441
436
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
437
|
+
const spectrumBusMargin = getSpectrumBusMargin();
|
|
438
|
+
const FPS = getFPS(config);
|
|
439
|
+
const ffmpeg_cfr = getFfmpeg_cfr(config);
|
|
440
|
+
const ffmpeg_preset = getFfmpeg_preset(config);
|
|
441
|
+
const frame_processing_delay = getFrame_processing_delay(config);
|
|
445
442
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
return;
|
|
450
|
-
}
|
|
451
|
-
const normalized = +Math.min(100, Math.max(0, progress)).toFixed(2);
|
|
452
|
-
if (normalized <= maxProgressReported) {
|
|
453
|
-
return;
|
|
454
|
-
}
|
|
455
|
-
maxProgressReported = normalized;
|
|
456
|
-
onProgress(normalized);
|
|
457
|
-
};
|
|
458
|
-
reportProgress(0);
|
|
443
|
+
const audioDuration = audioBuffer.length / sampleRate;
|
|
444
|
+
const framesCount = Math.trunc(audioDuration * FPS);
|
|
445
|
+
const outputResolution = getOutputResolution(config);
|
|
459
446
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
>
|
|
478
|
-
? R
|
|
479
|
-
: never;
|
|
480
|
-
let highlightSlice: HighlightSliceResult | undefined;
|
|
481
|
-
|
|
482
|
-
if (autoHighlight) {
|
|
483
|
-
reportProgress(PRE_PROCESS_PROGRESS_SHARE + 1);
|
|
484
|
-
highlightSlice = await computeHighlightSlice(
|
|
447
|
+
let maxProgressReported = -1;
|
|
448
|
+
const reportProgress = (progress: number) => {
|
|
449
|
+
if (!onProgress) {
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
const normalized = +Math.min(100, Math.max(0, progress)).toFixed(2);
|
|
453
|
+
if (normalized <= maxProgressReported) {
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
maxProgressReported = normalized;
|
|
457
|
+
onProgress(normalized);
|
|
458
|
+
};
|
|
459
|
+
reportProgress(0);
|
|
460
|
+
|
|
461
|
+
const preprocessed = await preProcessAudio(
|
|
462
|
+
audioBuffer,
|
|
463
|
+
sampleRate,
|
|
485
464
|
FPS,
|
|
486
465
|
framesCount,
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
466
|
+
(progress: number) => {
|
|
467
|
+
reportProgress(progress);
|
|
468
|
+
},
|
|
490
469
|
);
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
highlightSlice
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
const passes: VideoRenderPass[] =
|
|
513
|
-
separateHighlightFiles && highlightSlice
|
|
514
|
-
? highlightSlice.runs.map((run, i) => {
|
|
515
|
-
const dir = path.dirname(outVideoPath);
|
|
516
|
-
const ext = path.extname(outVideoPath);
|
|
517
|
-
const base = path.basename(outVideoPath, ext);
|
|
518
|
-
const numberedPath = path.resolve(dir, `${base}-${i + 1}${ext}`);
|
|
519
|
-
return {
|
|
520
|
-
outPath: numberedPath,
|
|
521
|
-
spectrums: run.spectrums,
|
|
522
|
-
beatIndices: run.beatFrameIndices,
|
|
523
|
-
frameCount: run.highlightFrames,
|
|
524
|
-
audioSegment: run.audioSegment,
|
|
525
|
-
};
|
|
526
|
-
})
|
|
527
|
-
: [
|
|
528
|
-
{
|
|
529
|
-
outPath: outVideoPath,
|
|
530
|
-
spectrums: spectrumsForRender,
|
|
531
|
-
beatIndices: beatIndicesForRender,
|
|
532
|
-
frameCount: framesCountForRender,
|
|
533
|
-
audioSegment:
|
|
534
|
-
autoHighlight &&
|
|
535
|
-
highlightSlice &&
|
|
536
|
-
highlightSlice.audioSegments.length > 0
|
|
537
|
-
? highlightSlice.audioSegments[0]
|
|
538
|
-
: undefined,
|
|
539
|
-
},
|
|
540
|
-
];
|
|
541
|
-
|
|
542
|
-
const totalPassFrames =
|
|
543
|
-
passes.reduce((sum, pass) => sum + pass.frameCount, 0);
|
|
544
|
-
const totalRenderMilestones = totalPassFrames + (passes.length * 2);
|
|
545
|
-
let renderMilestonesCompleted = 0;
|
|
546
|
-
const reportRenderProgress = (milestoneIncrement = 1) => {
|
|
547
|
-
renderMilestonesCompleted += milestoneIncrement;
|
|
548
|
-
reportProgress(
|
|
549
|
-
PRE_PROCESS_PROGRESS_SHARE
|
|
550
|
-
+ POST_AUDIO_PROGRESS_SHARE
|
|
551
|
-
+ (RENDER_PROGRESS_SHARE * renderMilestonesCompleted / Math.max(1, totalRenderMilestones)),
|
|
552
|
-
);
|
|
553
|
-
};
|
|
554
|
-
let lastExitCode = 0;
|
|
555
|
-
const outputVideoFiles: string[] = [];
|
|
556
|
-
try {
|
|
557
|
-
passLoop: for (const pass of passes) {
|
|
558
|
-
const {
|
|
559
|
-
backgroundWidth,
|
|
560
|
-
backgroundHeight,
|
|
561
|
-
defaultColor,
|
|
562
|
-
staticBackgroundBuffer,
|
|
563
|
-
videoFrameReader,
|
|
564
|
-
videoFrameSize,
|
|
565
|
-
encodeVideoFrame,
|
|
566
|
-
concatFilePath,
|
|
567
|
-
} = await prepareBackgroundForRender({
|
|
568
|
-
useVideoBackground,
|
|
569
|
-
backgroundVideoPath,
|
|
570
|
-
backgroundImagePath,
|
|
571
|
-
beatFrameIndices: pass.beatIndices,
|
|
572
|
-
framesCount: pass.frameCount,
|
|
573
|
-
outputResolution,
|
|
574
|
-
fps: FPS,
|
|
575
|
-
autoEditVideo: getAutoEditVideo(config),
|
|
576
|
-
});
|
|
577
|
-
reportRenderProgress();
|
|
578
|
-
|
|
579
|
-
const createVisualizerFrame = createVisualizerFrameGenerator(
|
|
580
|
-
config, backgroundWidth, backgroundHeight, defaultColor, spectrumBusMargin
|
|
470
|
+
reportProgress(PRE_PROCESS_PROGRESS_SHARE);
|
|
471
|
+
|
|
472
|
+
const autoHighlight = getAudioAutoHighlight(config);
|
|
473
|
+
let spectrumsForRender = preprocessed.spectrums;
|
|
474
|
+
let beatIndicesForRender = preprocessed.beatFrameIndices;
|
|
475
|
+
let framesCountForRender = framesCount;
|
|
476
|
+
type HighlightSliceResult = ReturnType<typeof computeHighlightSlice> extends Promise<
|
|
477
|
+
infer R
|
|
478
|
+
>
|
|
479
|
+
? R
|
|
480
|
+
: never;
|
|
481
|
+
let highlightSlice: HighlightSliceResult | undefined;
|
|
482
|
+
|
|
483
|
+
if (autoHighlight) {
|
|
484
|
+
reportProgress(PRE_PROCESS_PROGRESS_SHARE + 1);
|
|
485
|
+
highlightSlice = await computeHighlightSlice(
|
|
486
|
+
FPS,
|
|
487
|
+
framesCount,
|
|
488
|
+
preprocessed.spectrums,
|
|
489
|
+
preprocessed.beatEvents,
|
|
490
|
+
getAudioAutoHighlightCount(config),
|
|
581
491
|
);
|
|
492
|
+
spectrumsForRender = highlightSlice.spectrums;
|
|
493
|
+
beatIndicesForRender = highlightSlice.beatFrameIndices;
|
|
494
|
+
framesCountForRender = highlightSlice.highlightFrames;
|
|
495
|
+
reportProgress(PRE_PROCESS_PROGRESS_SHARE + POST_AUDIO_PROGRESS_SHARE);
|
|
496
|
+
} else {
|
|
497
|
+
reportProgress(PRE_PROCESS_PROGRESS_SHARE + POST_AUDIO_PROGRESS_SHARE);
|
|
498
|
+
}
|
|
582
499
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
500
|
+
const separateHighlightFiles =
|
|
501
|
+
autoHighlight &&
|
|
502
|
+
highlightSlice &&
|
|
503
|
+
highlightSlice.runs.length > 1;
|
|
504
|
+
|
|
505
|
+
type VideoRenderPass = {
|
|
506
|
+
outPath: string;
|
|
507
|
+
spectrums: number[][];
|
|
508
|
+
beatIndices: number[];
|
|
509
|
+
frameCount: number;
|
|
510
|
+
audioSegment: import('./highlight').HighlightAudioSegment | undefined;
|
|
511
|
+
};
|
|
512
|
+
|
|
513
|
+
const passes: VideoRenderPass[] =
|
|
514
|
+
separateHighlightFiles && highlightSlice
|
|
515
|
+
? highlightSlice.runs.map((run, i) => {
|
|
516
|
+
const dir = path.dirname(outVideoPath);
|
|
517
|
+
const ext = path.extname(outVideoPath);
|
|
518
|
+
const base = path.basename(outVideoPath, ext);
|
|
519
|
+
const numberedPath = path.resolve(dir, `${base}-${i + 1}${ext}`);
|
|
520
|
+
return {
|
|
521
|
+
outPath: numberedPath,
|
|
522
|
+
spectrums: run.spectrums,
|
|
523
|
+
beatIndices: run.beatFrameIndices,
|
|
524
|
+
frameCount: run.highlightFrames,
|
|
525
|
+
audioSegment: run.audioSegment,
|
|
526
|
+
};
|
|
527
|
+
})
|
|
528
|
+
: [
|
|
529
|
+
{
|
|
530
|
+
outPath: outVideoPath,
|
|
531
|
+
spectrums: spectrumsForRender,
|
|
532
|
+
beatIndices: beatIndicesForRender,
|
|
533
|
+
frameCount: framesCountForRender,
|
|
534
|
+
audioSegment:
|
|
535
|
+
autoHighlight &&
|
|
536
|
+
highlightSlice &&
|
|
537
|
+
highlightSlice.audioSegments.length > 0
|
|
538
|
+
? highlightSlice.audioSegments[0]
|
|
539
|
+
: undefined,
|
|
540
|
+
},
|
|
541
|
+
];
|
|
542
|
+
|
|
543
|
+
const totalPassFrames =
|
|
544
|
+
passes.reduce((sum, pass) => sum + pass.frameCount, 0);
|
|
545
|
+
const totalRenderMilestones = totalPassFrames + (passes.length * 2);
|
|
546
|
+
let renderMilestonesCompleted = 0;
|
|
547
|
+
const reportRenderProgress = (milestoneIncrement = 1) => {
|
|
548
|
+
renderMilestonesCompleted += milestoneIncrement;
|
|
549
|
+
reportProgress(
|
|
550
|
+
PRE_PROCESS_PROGRESS_SHARE
|
|
551
|
+
+ POST_AUDIO_PROGRESS_SHARE
|
|
552
|
+
+ (RENDER_PROGRESS_SHARE * renderMilestonesCompleted / Math.max(1, totalRenderMilestones)),
|
|
553
|
+
);
|
|
554
|
+
};
|
|
555
|
+
let lastExitCode = 0;
|
|
556
|
+
const outputVideoFiles: string[] = [];
|
|
557
|
+
try {
|
|
558
|
+
passLoop: for (const pass of passes) {
|
|
559
|
+
const {
|
|
560
|
+
backgroundWidth,
|
|
561
|
+
backgroundHeight,
|
|
562
|
+
defaultColor,
|
|
563
|
+
staticBackgroundBuffer,
|
|
614
564
|
videoFrameReader,
|
|
615
565
|
videoFrameSize,
|
|
616
566
|
encodeVideoFrame,
|
|
617
|
-
|
|
567
|
+
concatFilePath,
|
|
568
|
+
} = await prepareBackgroundForRender({
|
|
569
|
+
useVideoBackground,
|
|
570
|
+
backgroundVideoPath,
|
|
571
|
+
backgroundImagePath,
|
|
572
|
+
beatFrameIndices: pass.beatIndices,
|
|
573
|
+
framesCount: pass.frameCount,
|
|
574
|
+
outputResolution,
|
|
575
|
+
fps: FPS,
|
|
576
|
+
autoEditVideo: getAutoEditVideo(config),
|
|
577
|
+
});
|
|
578
|
+
reportRenderProgress();
|
|
579
|
+
|
|
580
|
+
const createVisualizerFrame = createVisualizerFrameGenerator(
|
|
581
|
+
config, backgroundWidth, backgroundHeight, defaultColor, spectrumBusMargin
|
|
582
|
+
);
|
|
583
|
+
|
|
584
|
+
const ffmpegVideoWriter = spawnFfmpegVideoWriter({
|
|
585
|
+
audioFilename: audioFilePath,
|
|
586
|
+
videoFileName: pass.outPath,
|
|
587
|
+
...(subtitleFilePath && {
|
|
588
|
+
subtitleFilename: subtitleFilePath,
|
|
589
|
+
subtitleAlignmentAss,
|
|
590
|
+
}),
|
|
591
|
+
fps: FPS,
|
|
592
|
+
...(pass.audioSegment && { audioSegment: pass.audioSegment }),
|
|
593
|
+
...(ffmpeg_cfr && { crf: ffmpeg_cfr }),
|
|
594
|
+
...(ffmpeg_preset && { preset: ffmpeg_preset }),
|
|
595
|
+
});
|
|
596
|
+
|
|
597
|
+
const exitPromise = new Promise<number>(res => {
|
|
598
|
+
let settled = false;
|
|
599
|
+
ffmpegVideoWriter.on('exit', (code: number | null) => {
|
|
600
|
+
if (settled) {
|
|
601
|
+
return;
|
|
602
|
+
}
|
|
603
|
+
settled = true;
|
|
604
|
+
res(code ?? 0);
|
|
605
|
+
});
|
|
618
606
|
});
|
|
619
607
|
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
spectrum
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
608
|
+
let stoppedEarly = false;
|
|
609
|
+
for (let i = 0; i < pass.frameCount; i++) {
|
|
610
|
+
const spectrum = pass.spectrums[i];
|
|
611
|
+
|
|
612
|
+
const backgroundImageBuffer = await resolveBackgroundFrameBuffer({
|
|
613
|
+
frameIndex: i,
|
|
614
|
+
useVideoBackground,
|
|
615
|
+
videoFrameReader,
|
|
616
|
+
videoFrameSize,
|
|
617
|
+
encodeVideoFrame,
|
|
618
|
+
staticBackgroundBuffer,
|
|
619
|
+
});
|
|
620
|
+
|
|
621
|
+
const commonVisualizerFrameProps: CommonVisualizerFrameProps = {
|
|
622
|
+
backgroundImageBuffer,
|
|
623
|
+
spectrum,
|
|
624
|
+
};
|
|
625
|
+
const frameImage = createVisualizerFrame(commonVisualizerFrameProps);
|
|
626
|
+
const isFrameProcessed = ffmpegVideoWriter.stdin.write(frameImage.data);
|
|
627
|
+
if (!isFrameProcessed) {
|
|
628
|
+
const isDrained = await waitDrain(ffmpegVideoWriter.stdin, ffmpegVideoWriter);
|
|
629
|
+
if (!isDrained) {
|
|
630
|
+
stoppedEarly = true;
|
|
631
|
+
break;
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
if (shouldStop && shouldStop()) {
|
|
629
635
|
stoppedEarly = true;
|
|
630
636
|
break;
|
|
631
637
|
}
|
|
638
|
+
if (frame_processing_delay) {
|
|
639
|
+
await sleep(frame_processing_delay);
|
|
640
|
+
}
|
|
641
|
+
await waitForEventLoop();
|
|
642
|
+
reportRenderProgress();
|
|
632
643
|
}
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
644
|
+
|
|
645
|
+
if (videoFrameReader) {
|
|
646
|
+
videoFrameReader.kill();
|
|
636
647
|
}
|
|
637
|
-
if (
|
|
638
|
-
|
|
648
|
+
if (concatFilePath) {
|
|
649
|
+
cleanupConcatFile(concatFilePath);
|
|
639
650
|
}
|
|
640
|
-
|
|
641
|
-
reportRenderProgress();
|
|
642
|
-
}
|
|
651
|
+
ffmpegVideoWriter.stdin.end();
|
|
643
652
|
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
}
|
|
647
|
-
if (concatFilePath) {
|
|
648
|
-
cleanupConcatFile(concatFilePath);
|
|
649
|
-
}
|
|
650
|
-
ffmpegVideoWriter.stdin.end();
|
|
653
|
+
lastExitCode = await exitPromise;
|
|
654
|
+
reportRenderProgress();
|
|
651
655
|
|
|
652
|
-
|
|
653
|
-
|
|
656
|
+
if (lastExitCode === 0 && !stoppedEarly) {
|
|
657
|
+
outputVideoFiles.push(pass.outPath);
|
|
658
|
+
}
|
|
654
659
|
|
|
655
|
-
|
|
656
|
-
|
|
660
|
+
if (stoppedEarly || lastExitCode !== 0) {
|
|
661
|
+
break passLoop;
|
|
662
|
+
}
|
|
657
663
|
}
|
|
658
664
|
|
|
659
|
-
if (
|
|
660
|
-
|
|
665
|
+
if (lastExitCode === 0 && outputVideoFiles.length === passes.length) {
|
|
666
|
+
reportProgress(100);
|
|
661
667
|
}
|
|
662
|
-
}
|
|
663
668
|
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
} finally {
|
|
670
|
-
if (subtitleFilePath && subtitleFileIsTemporary) {
|
|
671
|
-
cleanupTempFile(subtitleFilePath);
|
|
669
|
+
resolve({ exitCode: lastExitCode, outputVideoFiles });
|
|
670
|
+
} finally {
|
|
671
|
+
if (subtitleFilePath && subtitleFileIsTemporary) {
|
|
672
|
+
cleanupTempFile(subtitleFilePath);
|
|
673
|
+
}
|
|
672
674
|
}
|
|
675
|
+
} catch (error) {
|
|
676
|
+
reject(error);
|
|
673
677
|
}
|
|
674
678
|
});
|