shiveshnavin's picture
Rene frame and render vieo working
08ff55b
import _ from 'lodash'
import fs from 'fs'
import { SplitRenderPlugin } from './split-render.js';
import { FramesPlugin } from './frames.js';
import { CaptionPlugin } from './generate-captions.js';
import { CropPlugin } from './crop.js';
import { FlattenPathsPlugin } from './normalize-flatten-paths.js';
import { SpeedPlugin } from './speed.js';
import { OverlayPlugin } from './overlay.js';
import { HookPlugin } from './hook.js';
const pluginRegistry = {
'split-media-render': SplitRenderPlugin,
'frames': FramesPlugin,
'generate-captions': CaptionPlugin,
'crop': CropPlugin,
'flatten-paths': FlattenPathsPlugin,
'speed': SpeedPlugin,
'overlay': OverlayPlugin,
'hook': HookPlugin,
};
export async function applyPluginsPrerender(plugins, originalManuscript, originalManuscriptPath, jobId) {
for (let pluginInfo of plugins) {
let pluginName = pluginInfo.name;
let options = pluginInfo || {};
_.set(originalManuscript, 'meta.plugins', plugins)
console.log(`Applying plugin: ${pluginName} with options:`, options)
if (pluginRegistry[pluginName]) {
let pluginInstance = new pluginRegistry[pluginName](pluginName, options);
await pluginInstance.applyPrerender(originalManuscript, jobId);
} else {
console.warn(`Plugin ${pluginName} not found in registry.`);
}
fs.writeFileSync(originalManuscriptPath, JSON.stringify(originalManuscript, null, 2))
}
}
export async function applyPluginsPostrender(plugins, originalManuscript, originalManuscriptPath, jobId, outFiles) {
for (let pluginInfo of plugins) {
let pluginName = pluginInfo.name;
let options = pluginInfo || {};
console.log(`Applying post-render plugin: ${pluginName} with options:`, options)
if (pluginRegistry[pluginName]) {
let pluginInstance = new pluginRegistry[pluginName](pluginName, options);
await pluginInstance.applyPostrender(originalManuscript, jobId, outFiles);
} else {
console.warn(`Plugin ${pluginName} not found in registry.`);
}
}
fs.writeFileSync(originalManuscriptPath, JSON.stringify(originalManuscript, null, 2))
}