diff --git a/Community/Tdarr_Plugin_077b_HandBrake_NVENC_264_Configurable.js b/Community/Tdarr_Plugin_077b_HandBrake_NVENC_264_Configurable.js new file mode 100644 index 0000000..9359bfe --- /dev/null +++ b/Community/Tdarr_Plugin_077b_HandBrake_NVENC_264_Configurable.js @@ -0,0 +1,112 @@ + + + +module.exports.details = function details() { + + return { + id: "Tdarr_Plugin_077b_HandBrake_NVENC_264_Configurable", + Stage: "Pre-processing", + Name: "HandBrake NVENC 264 Configurable", + Type: "Video", + Operation: "Transcode", + Description: `[Contains built-in filter] If files are not in H264, they will be transcoded into H264 using HandBrake NVENC H264. All audio and subtitles are kept. \n\n`, + Version: "1.00", + Link: "", + Tags: 'pre-processing,handbrake,nvenc h264,configurable', + Inputs: [ + { + name: 'handbrake_preset', + tooltip: `\\nEnter the name of a HandBrake preset. + + + \\nYou can learn more about HandBrake presets here: + + \\nhttps://handbrake.fr/docs/en/latest/technical/official-presets.html + + + \\nExample:\\n + Very Fast 1080p30 + + \\nExample:\\n + Fast 1080p30 + + ` + }, + { + name: 'output_container', + tooltip: ` + \\nEnter the output container of the new file + + \\nExample:\\n + .mp4 + + \\nExample:\\n + .mkv + + ` + }, + ] + } + +} + +module.exports.plugin = function plugin(file, librarySettings, inputs) { + + + + //Must return this object + + var response = { + + processFile: false, + preset: '', + container: '.mp4', + handBrakeMode: false, + FFmpegMode: false, + reQueueAfter: false, + infoLog: '', + + } + + if (inputs.handbrake_preset === undefined + || inputs.output_container === undefined) { + + response.processFile = false + response.infoLog += "☒ Inputs not entered! \n" + return response + + } + + if (file.ffProbeData.streams[0].codec_name == 'h264') { + + + response.processFile = false + response.infoLog += "☑ File is already in h264, no need to transcode! \n" + return response + + + } else { + + var container = inputs.output_container + + if (container.charAt(0) != '.') { + container = '.' + container + } + + var response = { + + processFile: true, + preset: `-Z "${inputs.handbrake_preset}" -e nvenc_h264 --all-audio --all-subtitles`, + container: container, + handBrakeMode: true, + FFmpegMode: false, + reQueueAfter: true, + infoLog: '☒ File is not in h264, transcoding! \n' + } + + return response + + } + +} +