Add Custom Arguments

This commit is contained in:
HaveAGitGat 2023-10-03 11:32:22 +01:00
parent 0d2da16688
commit 251b0cf064
4 changed files with 69 additions and 8 deletions

View file

@ -7,10 +7,9 @@ import {
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = () :IpluginDetails => ({
name: 'Custom Arguments',
description: 'Custom Arguments',
description: 'Set FFmpeg custome input and output arguments',
style: {
borderColor: '#6efefc',
opacity: 0.5,
},
tags: 'video',
isStartPlugin: false,
@ -18,7 +17,27 @@ const details = () :IpluginDetails => ({
requiresVersion: '2.11.01',
sidebarPosition: -1,
icon: '',
inputs: [],
inputs: [
{
name: 'inputArguments',
type: 'string',
defaultValue: '',
inputUI: {
type: 'text',
},
tooltip: 'Specify input arguments',
},
{
name: 'outputArguments',
type: 'string',
defaultValue: '',
inputUI: {
type: 'text',
},
tooltip: 'Specify output arguments',
},
],
outputs: [
{
number: 1,
@ -33,6 +52,17 @@ const plugin = (args:IpluginInputArgs):IpluginOutputArgs => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
args.inputs = lib.loadDefaultValues(args.inputs, details);
const inputArguments = String(args.inputs.inputArguments);
const outputArguments = String(args.inputs.outputArguments);
if (inputArguments) {
args.variables.ffmpegCommand.overallInputArguments.push(...inputArguments.split(' '));
}
if (outputArguments) {
args.variables.ffmpegCommand.overallOuputArguments.push(...outputArguments.split(' '));
}
return {
outputFileObj: args.inputFileObj,
outputNumber: 1,

View file

@ -74,7 +74,9 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
cliArgs.push('-i');
cliArgs.push(args.inputFileObj._id);
const inputArgs: string[] = [];
const inputArgs: string[] = [
...args.variables.ffmpegCommand.overallInputArguments,
];
let { shouldProcess, streams } = args.variables.ffmpegCommand;
streams = streams.filter((stream) => {
@ -123,6 +125,7 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
const idx = cliArgs.indexOf('-i');
cliArgs.splice(idx, 0, ...inputArgs);
cliArgs.push(...args.variables.ffmpegCommand.overallOuputArguments);
const outputFilePath = `${getPluginWorkDir(args)}/${getFileName(args.inputFileObj._id)}`
+ `.${args.variables.ffmpegCommand.container}`;