Add .gitignore to exclude all node packages and lock files
This commit is contained in:
Generated
Vendored
+75
@@ -0,0 +1,75 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.combineVideoStreams = void 0;
|
||||
const fs_1 = require("fs");
|
||||
const path_1 = require("path");
|
||||
const version_1 = require("remotion/version");
|
||||
const call_ffmpeg_1 = require("./call-ffmpeg");
|
||||
const convert_number_of_gif_loops_to_ffmpeg_1 = require("./convert-number-of-gif-loops-to-ffmpeg");
|
||||
const logger_1 = require("./logger");
|
||||
const parse_ffmpeg_progress_1 = require("./parse-ffmpeg-progress");
|
||||
const truthy_1 = require("./truthy");
|
||||
const combineVideoStreams = async ({ fps, codec, filelistDir, numberOfGifLoops, output, indent, logLevel, onProgress, files, addRemotionMetadata, binariesDirectory, cancelSignal, }) => {
|
||||
var _a;
|
||||
const fileList = files.map((p) => `file '${p}'`).join('\n');
|
||||
const fileListTxt = (0, path_1.join)(filelistDir, 'video-files.txt');
|
||||
(0, fs_1.writeFileSync)(fileListTxt, fileList);
|
||||
const encoder = codec === 'gif' ? 'gif' : 'copy';
|
||||
const command = [
|
||||
'-hide_banner',
|
||||
'-r',
|
||||
String(fps),
|
||||
'-f',
|
||||
'concat',
|
||||
'-safe',
|
||||
'0',
|
||||
'-i',
|
||||
fileListTxt,
|
||||
numberOfGifLoops === null ? null : '-loop',
|
||||
numberOfGifLoops === null
|
||||
? null
|
||||
: (0, convert_number_of_gif_loops_to_ffmpeg_1.convertNumberOfGifLoopsToFfmpegSyntax)(numberOfGifLoops),
|
||||
codec === 'gif' ? '-filter_complex' : null,
|
||||
codec === 'gif' ? 'split[v],palettegen,[v]paletteuse' : null,
|
||||
'-an',
|
||||
'-c:v',
|
||||
encoder,
|
||||
codec === 'h265' ? '-tag:v' : null,
|
||||
codec === 'h265' ? 'hvc1' : null,
|
||||
addRemotionMetadata ? `-metadata` : null,
|
||||
addRemotionMetadata ? `comment=Made with Remotion ${version_1.VERSION}` : null,
|
||||
'-y',
|
||||
output,
|
||||
].filter(truthy_1.truthy);
|
||||
const doesReencode = encoder !== 'copy';
|
||||
const startTime = Date.now();
|
||||
logger_1.Log.verbose({ indent, logLevel }, `Combining video ${doesReencode ? 'with reencoding' : 'without reencoding'}, command: ${command.join(' ')}`);
|
||||
try {
|
||||
const task = (0, call_ffmpeg_1.callFf)({
|
||||
args: command,
|
||||
bin: 'ffmpeg',
|
||||
indent,
|
||||
logLevel,
|
||||
binariesDirectory,
|
||||
cancelSignal,
|
||||
});
|
||||
(_a = task.stderr) === null || _a === void 0 ? void 0 : _a.on('data', (data) => {
|
||||
const parsed = (0, parse_ffmpeg_progress_1.parseFfmpegProgress)(data.toString('utf8'), fps);
|
||||
if (parsed === undefined) {
|
||||
logger_1.Log.verbose({ indent, logLevel }, data.toString('utf8'));
|
||||
}
|
||||
else {
|
||||
logger_1.Log.verbose({ indent, logLevel }, `Encoded ${parsed} video frames`);
|
||||
onProgress(parsed);
|
||||
}
|
||||
});
|
||||
await task;
|
||||
logger_1.Log.verbose({ indent, logLevel }, `Finished combining video in ${Date.now() - startTime}ms`);
|
||||
return output;
|
||||
}
|
||||
catch (e) {
|
||||
(0, fs_1.rmSync)(fileListTxt, { recursive: true });
|
||||
throw e;
|
||||
}
|
||||
};
|
||||
exports.combineVideoStreams = combineVideoStreams;
|
||||
Reference in New Issue
Block a user