Tdarr_Plugins
Tdarr_Plugins copied to clipboard
[Bug] Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation - Incorrect file descriptor redirection in command?
I'm trying to use the Loudnorm Audio Normalisation on my files, but every file fails due to what appears to be an error in the command creation.
The error reported by ffmpeg is:
2022-05-06T12:27:30.595Z [NULL @ 00000194c74620c0] Unable to find a suitable output format for '2>"H:/Media/Anime/The Seven Deadly Sins/Season 03/The Seven Deadly Sins - S03E15 - To Our Captain (1080p HDTV).out"'
2022-05-06T12:27:30.595Z 2>"H:/Media/Anime/The Seven Deadly Sins/Season 03/The Seven Deadly Sins - S03E15 - To Our Captain (1080p HDTV).out": Invalid argument
This appears to be caused by the 2>
descriptor redirection being placed in the wrong part of the command:
C:/Users/me/Desktop/Media Related/tdarr/Tdarr_Node/node_modules/@ffmpeg-installer/win32-x64/ffmpeg.exe -i H:/Media/Anime/The Seven Deadly Sins/Season 03/The Seven Deadly Sins - S03E15 - To Our Captain (1080p HDTV).mkv -af loudnorm=I=-23.0:LRA=7.0:TP=-2.0:print_format=json -f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE="FirstPassComplete" 2>"H:/Media/Anime/The Seven Deadly Sins/Season 03/The Seven Deadly Sins - S03E15 - To Our Captain (1080p HDTV).out" C:/tmp/The Seven Deadly Sins - S03E15 - To Our Captain (1080p HDTV)-TdarrCacheFile-Uq7Ly5rXO.mkv
(Note the 2>"H:/Media/Anime/The Seven Deadly Sins/Season 03/The Seven Deadly Sins - S03E15 - To Our Captain (1080p HDTV).out"
appearing before the final cache file)
This may be related to running on Windows only, as I believe on Linux this should work.
Glancing at the file, I see that the preset
does appear to generate the command correctly:
https://github.com/HaveAGitGat/Tdarr_Plugins/blob/ba2dbf4470c06cddc50cec6ae52277e0c6dd5310/Community/Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation.js#L127
However, the final output file is being tacked on to the end the command. I can't see exactly where this output file is being added, so I'm not sure how to fix it so the arguments are in the correct order.
Any help would be appreciated.
Thanks!
This may be related to running on Windows only, as I believe on Linux this should work.
Also seeing this problem on linux!
Unable to find a suitable output format for '2>"/-TdarrCacheFile-VlLJwF-zk.out"'
2>"/-TdarrCacheFile-VlLJwF-zk.out": Invalid argument
I'm running this in Docker and get the same error. I looked a bit into it and it seems, the response.preset
string does not get directly converted into a plain command.
I tried copying the exact command from the error log:
tdarr-ffmpeg -i /temp/bbb_sunflower_1080p_60fps_normal-TdarrCacheFile-0UA9kVPSdU.mp4 -af loudnorm=I=-23.0:LRA=7.0:TP=-2.0:print_format=json -f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE="FirstPassComplete" 2>"/temp/bbb_sunflower_1080p_60fps_normal-TdarrCacheFile-0UA9kVPSdU.out" /temp/bbb_sunflower_1080p_60fps_normal-TdarrCacheFile-1NGbdhTjU_.mkv
and ran it inside the tdarr-node
container and it worked as expected. But ran by tdarr itself, the 2>"${logOutFile}"
seems to get interpreted as argument for ffmpeg instead of just another part of the cmd. And that argument is of course not valid.
Also, changing the code, so it says 2> "${logOutFile}"
(notice the extra space), leads to just 2>
being marked as invalid argument, instead of the whole expression, which supports my theory.
Unfortunately, I have no idea, how to fix this, as there seems to be no other way of saving the loudnorm-JSON to file and also no way to just run a "normal" command without tdarrs interpretation of the string around it.
Did anybody ever figure this out? Been struggling to find a way to normalize audio :/
I came here as I am also on linux and facing this issue
Same issue here. A fix would be appreciated.
+1, same issue here.
Is anyone working on this? Looks like (as of November 2022) this code hasn't been updated in the repo in at least 11 months. It doesn't show that it is assigned to anyone.
As others have reported, if I run the code manually, there's no problem and it creates the file as expected, but from inside tdarr, no luck.
Also dealing with this issue currently, running tdarr in docker and getting the same error as OP.
Bubbling this up, it seems to me this could be fixed by adding an additionalParams
section to the response that allows arbitrary bash commands after the ffmpeg/handbrake command is generated.
Something like:
const response = {
response.preset = `<io>-af loudnorm=I=${loudNorm_i}:LRA=${lra}:TP=${tp}:print_format=json -f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE="FirstPassComplete"`
response.container = '.mkv'
response.handBrakeMode = false
response.FFmpegMode = true
response.reQueueAfter = true;
response.processFile = true
Here --> response.additionalParams = `2>"${logOutFile}"`
response.infoLog += "Normalisation first pass processing \n"
return response
};
Since what I'm seeing is the below in which the path to the media file is always tacked on last:
2023-03-20T22:55:31.889Z LoGeB0RlC:Node[vega]:Worker[kmIm4Wig1]:Args: -i /data/media/movies/Movie/Movie.mkv -af loudnorm=I=-23.0:LRA=7.0:TP=-2.0:print_format=json -f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE="FirstPassComplete" 2>"/data/media/movies/Movie/Movie.out" /data/transcode/Movie.mkv
I've been able to get it close to working. Instead of using response.preset
, I'm letting it preprocess the file using child_process
...
let volumeData;
volumeData = JSON.parse(require("child_process").execSync(`ffmpeg -i "${currentfilename}" -af loudnorm=I=${loudNorm_i}:LRA=${lra}:TP=${tp}:print_format=json -vn -sn -dn -f null /dev/null -map 0 -c copy -metadata NORMALISATIONSTAGE="FirstPassComplete" 2>"${logOutFile}"`).toString())
//check for previous pass tags
...
Unfortunately, the ffmpeg command itself doesn't work properly. The output file stores the entirety of the ffmpeg output including the statuses. I've tried limiting this using -no_header -nostats
, but it still had some logging. I also tried using -loglevel
with varying levels, but none had the json output and nothing else.
I think you might be able to adjust the command by adding this onto the end:
&& RESULT=$(cat "${logOutFile}" | grep "{" -A 11) && echo ${RESULT} >"${logOutFile}"
This is just a very hacky and breakable workaround, though. It's letting it output all the data to the file, then reading the file, cutting out only the lines starting with "{" along with the eleven lines after, and saving that.
Adding another "doesn't work for me" to the list. Ticket has almost been opened a year now.
I made a rough attempt to put @droans idea into the script, but no luck. Also I don't know JS.
This generates a .out file with the correct JSON values and I removed the audio filtering done in the response. The response only adds the Normalisation stage metadata tag. This completes successfully after generating the .out file but it still doesn't get past the first normalisation stage because it jumps to the "Unknown normalisation stage" instead of the second stage.
Running FFMPEG as a raw command doesn't work if it's on a node without FFMPEG in the PATH.
I found the JSON values can't be stored in a variable because they lose the quote marks. Maybe loudnorm values can be added as metadata tags?
console.log("New way to create normalisation values. \n")
let volumeDataRaw;
volumeDataRaw = require("child_process").execSync(`ffmpeg -i "${currentfilename}" -af loudnorm=I=${loudNorm_i}:LRA=${lra}:TP=${tp}:print_format=json -vn -sn -dn -f null /dev/null -map 0 -c copy -metadata NORMALISATIONSTAGE="FirstPassComplete" 2>"${logOutFile}"`).toString()
let processTest1;
processTest1 = require("child_process").execSync(`cat "${logOutFile}" | grep "{" -A 11 > "${logOutFile}.tmp"`).toString()
processTest2 = require("child_process").execSync(`mv "${logOutFile}.tmp" "${logOutFile}"`).toString()
let volumeData;
volumeData = JSON.parse(require("child_process").execSync(`cat "${logOutFile}"`).toString())
console.log("Finished generating .out file")
//check for previous pass tags
if (typeof probeData.format === "undefined" || typeof probeData.format.tags.NORMALISATIONSTAGE === "undefined" || probeData.format.tags.NORMALISATIONSTAGE === "" || file.forceProcessing === true) {
//no metadata found first pass is required
console.log("Searching for audio normailisation values")
response.infoLog += "Searching for required normalisation values. \n"
var loudNormInfo = "";
//Do the first pass, output the log to the out file and use a secondary output for an unchanged file to allow Tdarr to track, Set metadata stage
response.preset = `<io>-f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE="FirstPassComplete"`
I've made a PR to fix this: https://github.com/HaveAGitGat/Tdarr_Plugins/pull/399
@chipfox yeah you could do it that way and use otherArguments.ffmpegPath
but main downside there is you get no feedback on the status.
The way I've done it is instead of creating a log file (can't do this with childProcess.spawn)
it reads from the job report on the server and parses the text to get the loudNormValues
Will merge the PR tomorrow or later today if it works okay..
Merged: https://github.com/HaveAGitGat/Tdarr_Plugins/pull/399
Does this update get beyond the first stage for anyone?
No, not for me. If you find a fix, certainly shout out!
The ${process.env.serverIp} variable was coming up blank for me. I replaced it with my server's IP and now it's working.
The ${process.env.serverIp} variable was coming up blank for me. I replaced it with my server's IP and now it's working.
It's working as in finishing the second pass, or provides a false positive after the first pass?
Made no difference to mine. I think the issue is in writing the results of the 1st pass to the log, or processing these in the second pass. I cannot see where the second pass is being attempted. I may have a different issue though, full log below, but the failure is around this:
2023-04-11T11:45:39.766Z Pre-processing - Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation 2023-04-11T11:45:39.766Z Searching for required normalisation values. 2023-04-11T11:45:39.766Z Normalisation first pass processing 2023-04-11T11:45:39.766Z 2023-04-11T11:45:39.784Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Worker will process 2023-04-11T11:45:39.801Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:[Step W04] [C3] Preparing command 2023-04-11T11:45:39.818Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Cache file stem: /temp 2023-04-11T11:45:39.837Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Cache file path: /temp/FileName-TdarrCacheFile-kIhJptC8S.avi 2023-04-11T11:45:39.853Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Create transcode args 2023-04-11T11:45:39.869Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Args: -i /temp/FileName-TdarrCacheFile-VkepBiFsi.avi -af loudnorm=I=-23.0:LRA=7.0:TP=-2.0:print_format=json -f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE=FirstPassComplete /temp/FileName-TdarrCacheFile-kIhJptC8S.avi 2023-04-11T11:45:39.884Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Getting source file size 2023-04-11T11:45:39.901Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Source file size: 0.31442977115511894 2023-04-11T11:45:39.918Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Performing safety check on worker config to see if old transcode args/container match new ones 2023-04-11T11:45:39.933Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Safety check [-error-]:The new transcode arguments were the exact same as the last ones meaning 2023-04-11T11:45:39.933Z the file/worker would most likely be stuck in an infinite transcode loop if not stopped. 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.933Z Last arguments: <io>-af loudnorm=I=-23.0:LRA=7.0:TP=-2.0:print_format=json -f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE=FirstPassComplete in .avi 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.933Z New arguments: <io>-af loudnorm=I=-23.0:LRA=7.0:TP=-2.0:print_format=json -f null NUL -map 0 -c copy -metadata NORMALISATIONSTAGE=FirstPassComplete in .avi 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.933Z Plugin Local Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.933Z Check your plugin stack or transcode settings to make sure that you have conditions to prevent an infinite transcode loop 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.933Z 2023-04-11T11:45:39.949Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:[Step W10] Worker processing end 2023-04-11T11:45:39.964Z OevcCMEDz:Node[MyInternalNode]:Worker[lone-liger]:Successfully updated server with verdict: transcodeError
Error Log.txt
The ${process.env.serverIp} variable was coming up blank for me. I replaced it with my server's IP and now it's working.
It's working as in finishing the second pass, or provides a false positive after the first pass?
It's completing the second pass.
@phoenixaus ty for the log. Seems that the -metadata NORMALISATIONSTAGE=FirstPassComplete
is not being applied to the new file correctly. I think this is a limitation of .avi
files as they may not support custom tags like mkv does.
So quick solution would be to use the remux plugin to remux to mkv
before using this plugin. @chipfox probably same for you.
Alternatively we'd need to use a different metadata tag such as copyright
which is supported by avi.
So I ran this on mkv, mp4, wmv, mov and avi and only works for mkv and wmv FYI as the others don't support the NORMALISATIONSTAGE
metadata tag.
This plugin was originally set to output mkv only so I've updated it with that. Should now work.
@HaveAGitGat I've still got an issue. its filing with:
Pre-processing - Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation☒Plugin error! Error: Error: getaddrinfo EAI_AGAIN undefined
I've attached the full log and a snip of the stack. Really appreciate your help with this!
0aVr822Hm-log.txt
@phoenixaus in the plugin there's this line:
const serverUrl = `http://${process.env.serverIp}:${process.env.serverPort}`;
Try putting in your server IP and Port e.g.
const serverUrl = 'http://localhost:8266'
;
@HaveAGitGat thank you for looking into this plugin again.
I had the same serverURL issue, fixed that with your suggestion but now I'm getting the error below
Pre-processing - Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation☒Plugin error! Error: Error: Failed to find loudnorm in report, please rerun
I'm running only 1 instance of Tdarr using the built in node as a docker container. I'm not seeing an output file from the plugin in either the cache directory or the file's original directory
@gouthamravee I struck that too, but only intermittently. I updated this line in the plugin from 10000 to 20000 to see if it needed more time to process the log. Not sure if it fixed it, but I haven't had the error again.
// wait for job report to be updated by server, await new Promise((resolve) => setTimeout(resolve, 20000));
@phoenixaus I tried a value of 30000 and 20000, getting the same error.
idk if this is useful but this is the log portion from the stage that fails
1
2023-04-18T21:32:34.334Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[Step W03] [C2] Analysing file - running plugins
2
2023-04-18T21:32:34.334Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:New cache file has already been scanned, no need to scan again
3
2023-04-18T21:32:34.335Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Updating Node relay: Processing
4
2023-04-18T21:32:34.335Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/2] Checking file frame count
5
2023-04-18T21:32:34.336Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/2] Frame count 0
6
2023-04-18T21:32:34.337Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Transcode task, determining transcode settings
7
2023-04-18T21:32:34.337Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin stack selected
8
2023-04-18T21:32:34.338Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: 52HBc2noV: Tdarr_Plugin_MC93_Migz6OrderStreams
9
2023-04-18T21:32:34.339Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
10
2023-04-18T21:32:34.339Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
11
2023-04-18T21:32:34.340Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
12
2023-04-18T21:32:34.340Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
13
2023-04-18T21:32:34.341Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{}}
14
2023-04-18T21:32:34.341Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
15
2023-04-18T21:32:34.342Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: yYqnKLBzz: Tdarr_Plugin_MC93_Migz2CleanTitle
16
2023-04-18T21:32:34.342Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
17
2023-04-18T21:32:34.343Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
18
2023-04-18T21:32:34.343Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
19
2023-04-18T21:32:34.344Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
20
2023-04-18T21:32:34.344Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"clean_audio":false,"clean_subtitles":false,"custom_title_matching":""}}
21
2023-04-18T21:32:34.345Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
22
2023-04-18T21:32:34.346Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: kuwfUn9ru: Tdarr_Plugin_rr01_drpeppershaker_extract_subs_to_SRT
23
2023-04-18T21:32:34.346Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
24
2023-04-18T21:32:34.347Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
25
2023-04-18T21:32:34.347Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
26
2023-04-18T21:32:34.348Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
27
2023-04-18T21:32:34.349Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"remove_subs":"yes"}}
28
2023-04-18T21:32:34.349Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
29
2023-04-18T21:32:34.350Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: lxkfOSUaF: Tdarr_Plugin_x7ac_Remove_Closed_Captions
30
2023-04-18T21:32:34.350Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
31
2023-04-18T21:32:34.351Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
32
2023-04-18T21:32:34.351Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
33
2023-04-18T21:32:34.352Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
34
2023-04-18T21:32:34.352Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{}}
35
2023-04-18T21:32:34.352Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
36
2023-04-18T21:32:34.353Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: ZChA90A0R: Tdarr_Plugin_vdka_Tiered_NVENC_CQV_BASED_CONFIGURABLE
37
2023-04-18T21:32:34.354Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
38
2023-04-18T21:32:34.354Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
39
2023-04-18T21:32:34.355Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
40
2023-04-18T21:32:34.355Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
41
2023-04-18T21:32:34.355Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"sdCQV":"21","hdCQV":"23","fullhdCQV":"25","uhdCQV":"28","bframe":"0","ffmpeg_preset":"slow"}}
42
2023-04-18T21:32:34.356Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
43
2023-04-18T21:32:34.356Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: dLfXS0ckJ: Tdarr_Plugin_MC93_Migz3CleanAudio
44
2023-04-18T21:32:34.357Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
45
2023-04-18T21:32:34.357Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
46
2023-04-18T21:32:34.358Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
47
2023-04-18T21:32:34.358Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
48
2023-04-18T21:32:34.359Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"language":"eng,spa,jap,und","commentary":false,"tag_language":"eng","tag_title":"true"}}
49
2023-04-18T21:32:34.359Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
50
2023-04-18T21:32:34.360Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: dFyEJSOG7: Tdarr_Plugin_MC93_Migz5ConvertAudio
51
2023-04-18T21:32:34.360Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
52
2023-04-18T21:32:34.361Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
53
2023-04-18T21:32:34.361Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
54
2023-04-18T21:32:34.362Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
55
2023-04-18T21:32:34.362Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"aac_stereo":"true","downmix":"true"}}
56
2023-04-18T21:32:34.363Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
57
2023-04-18T21:32:34.364Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: 2Ui_9trEQ: Tdarr_Plugin_00td_action_remove_audio_by_channel_count
58
2023-04-18T21:32:34.364Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
59
2023-04-18T21:32:34.365Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
60
2023-04-18T21:32:34.365Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
61
2023-04-18T21:32:34.366Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
62
2023-04-18T21:32:34.366Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"channelCounts":"19,12,10,8,6,4"}}
63
2023-04-18T21:32:34.367Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
64
2023-04-18T21:32:34.367Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: e-RCPinha: Tdarr_Plugin_00td_action_remux_container
65
2023-04-18T21:32:34.368Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
66
2023-04-18T21:32:34.368Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
67
2023-04-18T21:32:34.368Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
68
2023-04-18T21:32:34.369Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
69
2023-04-18T21:32:34.369Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"container":"mkv"}}
70
2023-04-18T21:32:34.370Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[5/5] Running plugin finished
71
2023-04-18T21:32:34.370Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Plugin: NUmEh3NwTH: Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation
72
2023-04-18T21:32:34.371Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[1/5] Reading plugin
73
2023-04-18T21:32:34.371Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[2/5] Plugin read
74
2023-04-18T21:32:34.371Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[3/5] Installing dependencies
75
2023-04-18T21:32:35.374Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:[4/5] Running plugin
76
2023-04-18T21:32:35.374Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:{"pluginInputs":{"i":"-23.0","lra":"7.0","tp":"-2.0"}}
77
2023-04-18T21:32:54.890Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Error Error: Error: Failed to find loudnorm in report, please rerun
78
2023-04-18T21:32:54.891Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Worker config: {
79
2023-04-18T21:32:54.891Z "processFile": false,
80
2023-04-18T21:32:54.891Z "preset": "",
81
2023-04-18T21:32:54.891Z "container": "",
82
2023-04-18T21:32:54.891Z "handBrakeMode": false,
83
2023-04-18T21:32:54.891Z "FFmpegMode": true,
84
2023-04-18T21:32:54.891Z "reQueueAfter": true,
85
2023-04-18T21:32:54.891Z "infoLog": "File is already in mkv \n",
86
2023-04-18T21:32:54.891Z "handbrakeMode": "",
87
2023-04-18T21:32:54.891Z "ffmpegMode": true,
88
2023-04-18T21:32:54.891Z "error": true,
89
2023-04-18T21:32:54.891Z "cliToUse": "ffmpeg"
90
2023-04-18T21:32:54.891Z }
91
2023-04-18T21:32:54.891Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Worker log:
92
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_MC93_Migz6OrderStreams
93
2023-04-18T21:32:54.891Z ☑ Streams are in expected order.
94
2023-04-18T21:32:54.891Z
95
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_MC93_Migz2CleanTitle
96
2023-04-18T21:32:54.891Z ☑File has no title metadata
97
2023-04-18T21:32:54.891Z
98
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_rr01_drpeppershaker_extract_subs_to_SRT
99
2023-04-18T21:32:54.891Z No subs in file to extract!
100
2023-04-18T21:32:54.891Z
101
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_x7ac_Remove_Closed_Captions
102
2023-04-18T21:32:54.891Z ☑Closed captions have not been detected on this file
103
2023-04-18T21:32:54.891Z
104
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_vdka_Tiered_NVENC_CQV_BASED_CONFIGURABLE
105
2023-04-18T21:32:54.891Z ☑File is a video!
106
2023-04-18T21:32:54.891Z ☑File is already in hevc!
107
2023-04-18T21:32:54.891Z
108
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_MC93_Migz3CleanAudio
109
2023-04-18T21:32:54.891Z ☑File doesn't contain audio tracks which are unwanted or that require tagging.
110
2023-04-18T21:32:54.891Z
111
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_MC93_Migz5ConvertAudio
112
2023-04-18T21:32:54.891Z ☑File contains all required audio formats.
113
2023-04-18T21:32:54.891Z
114
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_00td_action_remove_audio_by_channel_count
115
2023-04-18T21:32:54.891Z File only has 1 audio stream, skipping plugin
116
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_00td_action_remux_container
117
2023-04-18T21:32:54.891Z File is already in mkv
118
2023-04-18T21:32:54.891Z
119
2023-04-18T21:32:54.891Z Pre-processing - Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation☒Plugin error! Error: Error: Failed to find loudnorm in report, please rerun
120
2023-04-18T21:32:54.891Z
121
2023-04-18T21:32:54.892Z iVGa7FifO3:Node[CraftyCaper]:Worker[known-koi]:Worker config [-error-]:
@gouthamravee I struck that too, but only intermittently. I updated this line in the plugin from 10000 to 20000 to see if it needed more time to process the log. Not sure if it fixed it, but I haven't had the error again.
// wait for job report to be updated by server, await new Promise((resolve) => setTimeout(resolve, 20000));
I'm also only experiencing it intermittently. Doing this didn't fix it for me though
Yeah @HaveAGitGat , I'm striking this issue a lot more now as well.
I'm also seeing this in the log consistently, and haven't been able to address it:
[INFO] Tdarr_Node - The following external module needs to be installed for a plugin:[email protected]
ZA0SuJt5Ti-log.txt