Merge pull request #481 from HaveAGitGat/2.10.01

Add forceConform
This commit is contained in:
HaveAGitGat 2023-09-28 18:22:36 +01:00 committed by GitHub
commit bb27082cd3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 104 additions and 2 deletions

View file

@ -30,6 +30,19 @@ var details = function () { return ({
},
tooltip: 'Specify the container to use',
},
{
name: 'forceConform',
type: 'boolean',
defaultValue: 'false',
inputUI: {
type: 'dropdown',
options: [
'false',
'true',
],
},
tooltip: "\nSpecify if you want to force conform the file to the new container,\nThis is useful if not all streams are supported by the new container. \nFor example mkv does not support data streams.\n ",
},
],
outputs: [
{
@ -45,9 +58,42 @@ var plugin = function (args) {
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
args.inputs = lib.loadDefaultValues(args.inputs, details);
var newContainer = String(args.inputs.container);
var forceConform = args.inputs.forceConform;
if ((0, fileUtils_1.getContainer)(args.inputFileObj._id) !== args.inputs.container) {
args.variables.ffmpegCommand.container = newContainer;
args.variables.ffmpegCommand.shouldProcess = true;
if (forceConform === true) {
for (var i = 0; i < args.variables.ffmpegCommand.streams.length; i += 1) {
var stream = args.variables.ffmpegCommand.streams[i];
try {
var codecType = stream.codec_type.toLowerCase();
var codecName = stream.codec_name.toLowerCase();
if (newContainer === 'mkv') {
if (codecType === 'data'
|| [
'mov_text',
'eia_608',
'timed_id3',
].includes(codecName)) {
stream.removed = true;
}
}
if (newContainer === 'mp4') {
if ([
'hdmv_pgs_subtitle',
'eia_608',
'timed_id3',
'subrip',
].includes(codecName)) {
stream.removed = true;
}
}
}
catch (err) {
// Error
}
}
}
}
return {
outputFileObj: args.inputFileObj,