Add .gitignore to exclude all node packages and lock files
This commit is contained in:
Generated
Vendored
+127
@@ -0,0 +1,127 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.createAudio = void 0;
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const calculate_asset_positions_1 = require("./assets/calculate-asset-positions");
|
||||
const convert_assets_to_file_urls_1 = require("./assets/convert-assets-to-file-urls");
|
||||
const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
|
||||
const compress_audio_1 = require("./compress-audio");
|
||||
const delete_directory_1 = require("./delete-directory");
|
||||
const logger_1 = require("./logger");
|
||||
const merge_audio_track_1 = require("./merge-audio-track");
|
||||
const audio_codec_1 = require("./options/audio-codec");
|
||||
const preprocess_audio_track_1 = require("./preprocess-audio-track");
|
||||
const truthy_1 = require("./truthy");
|
||||
const createAudio = async ({ assets, onDownload, fps, logLevel, onProgress, downloadMap, remotionRoot, indent, binariesDirectory, audioBitrate, audioCodec, cancelSignal, chunkLengthInSeconds, trimLeftOffset, trimRightOffset, forSeamlessAacConcatenation, }) => {
|
||||
const fileUrlAssets = await (0, convert_assets_to_file_urls_1.convertAssetsToFileUrls)({
|
||||
assets,
|
||||
onDownload: onDownload !== null && onDownload !== void 0 ? onDownload : (() => () => undefined),
|
||||
downloadMap,
|
||||
indent,
|
||||
logLevel,
|
||||
binariesDirectory,
|
||||
});
|
||||
(0, download_and_map_assets_to_file_1.markAllAssetsAsDownloaded)(downloadMap);
|
||||
const assetPositions = (0, calculate_asset_positions_1.calculateAssetPositions)(fileUrlAssets);
|
||||
logger_1.Log.verbose({ indent, logLevel, tag: 'audio' }, 'asset positions', JSON.stringify(assetPositions));
|
||||
const preprocessProgress = new Array(assetPositions.length).fill(0);
|
||||
let mergeProgress = 0;
|
||||
let compressProgress = 0;
|
||||
const updateProgress = () => {
|
||||
const preprocessProgressSum = preprocessProgress.length === 0
|
||||
? 1
|
||||
: preprocessProgress.reduce((a, b) => a + b, 0) / assetPositions.length;
|
||||
const totalProgress = preprocessProgressSum * 0.7 +
|
||||
mergeProgress * 0.1 +
|
||||
compressProgress * 0.2;
|
||||
onProgress(totalProgress);
|
||||
};
|
||||
const audioTracks = await Promise.all(assetPositions.map(async (asset, index) => {
|
||||
const filterFile = path_1.default.join(downloadMap.audioMixing, `${index}.wav`);
|
||||
const result = await (0, preprocess_audio_track_1.preprocessAudioTrack)({
|
||||
outName: filterFile,
|
||||
asset,
|
||||
fps,
|
||||
downloadMap,
|
||||
indent,
|
||||
logLevel,
|
||||
binariesDirectory,
|
||||
cancelSignal,
|
||||
onProgress: (progress) => {
|
||||
preprocessProgress[index] = progress;
|
||||
updateProgress();
|
||||
},
|
||||
chunkLengthInSeconds,
|
||||
trimLeftOffset,
|
||||
trimRightOffset,
|
||||
forSeamlessAacConcatenation,
|
||||
audioStreamIndex: asset.audioStreamIndex,
|
||||
});
|
||||
preprocessProgress[index] = 1;
|
||||
updateProgress();
|
||||
return result;
|
||||
}));
|
||||
await downloadMap.inlineAudioMixing.finish({
|
||||
indent,
|
||||
logLevel,
|
||||
binariesDirectory,
|
||||
cancelSignal,
|
||||
});
|
||||
const inlinedAudio = downloadMap.inlineAudioMixing.getListOfAssets();
|
||||
const preprocessed = [
|
||||
...audioTracks.filter(truthy_1.truthy),
|
||||
...inlinedAudio.map((asset) => ({
|
||||
outName: asset,
|
||||
filter: {
|
||||
filter: null,
|
||||
pad_start: null,
|
||||
pad_end: null,
|
||||
},
|
||||
})),
|
||||
];
|
||||
const merged = path_1.default.join(downloadMap.audioPreprocessing, 'merged.wav');
|
||||
const extension = (0, audio_codec_1.getExtensionFromAudioCodec)(audioCodec);
|
||||
const outName = path_1.default.join(downloadMap.audioPreprocessing, `audio.${extension}`);
|
||||
await (0, merge_audio_track_1.mergeAudioTrack)({
|
||||
files: preprocessed,
|
||||
outName: merged,
|
||||
downloadMap,
|
||||
remotionRoot,
|
||||
indent,
|
||||
logLevel,
|
||||
binariesDirectory,
|
||||
cancelSignal,
|
||||
fps,
|
||||
onProgress: (progress) => {
|
||||
mergeProgress = progress;
|
||||
updateProgress();
|
||||
},
|
||||
chunkLengthInSeconds,
|
||||
});
|
||||
await (0, compress_audio_1.compressAudio)({
|
||||
audioBitrate,
|
||||
audioCodec,
|
||||
binariesDirectory,
|
||||
indent,
|
||||
logLevel,
|
||||
inName: merged,
|
||||
outName,
|
||||
cancelSignal,
|
||||
chunkLengthInSeconds,
|
||||
fps,
|
||||
onProgress: (progress) => {
|
||||
compressProgress = progress;
|
||||
updateProgress();
|
||||
},
|
||||
});
|
||||
(0, delete_directory_1.deleteDirectory)(merged);
|
||||
(0, delete_directory_1.deleteDirectory)(downloadMap.audioMixing);
|
||||
preprocessed.forEach((p) => {
|
||||
(0, delete_directory_1.deleteDirectory)(p.outName);
|
||||
});
|
||||
return outName;
|
||||
};
|
||||
exports.createAudio = createAudio;
|
||||
Reference in New Issue
Block a user