[SOLVED] Get Errors on AVIsynth-Nodes
[SOLVED] Get Errors on AVIsynth-Nodes
Hi there,
I got in troublle with pre-defined AVIsynth-Nodes. The internal "Resize" and "FPS Converter"-Nodes give me back Script-errors. I Attache the whole Workflow "TEST_Full_Scanner_Workflow_Stumm" where one part is the filtering and transcoding using AVIsynth-nodes. These Nodes are fed by a preceding node doing a ProRes. This workflow can be fed with an .AVI, filename must be 16FA2345INV7654.avi or N8FA2345INV76564.avi to get the Variables right.
When I isolate the Workflow and only take the AVIsynth-Nodes, it works (TEST Resize_FPS_Crop). This workflow takes .mov-files.
I attach the latest .LOG - maybe this helps?
Any idea?
regards,
the desperate Thomas
I got in troublle with pre-defined AVIsynth-Nodes. The internal "Resize" and "FPS Converter"-Nodes give me back Script-errors. I Attache the whole Workflow "TEST_Full_Scanner_Workflow_Stumm" where one part is the filtering and transcoding using AVIsynth-nodes. These Nodes are fed by a preceding node doing a ProRes. This workflow can be fed with an .AVI, filename must be 16FA2345INV7654.avi or N8FA2345INV76564.avi to get the Variables right.
When I isolate the Workflow and only take the AVIsynth-Nodes, it works (TEST Resize_FPS_Crop). This workflow takes .mov-files.
I attach the latest .LOG - maybe this helps?
Any idea?
regards,
the desperate Thomas
- Attachments
-
- 20190605-115525-234-85E2E0E2E128.txt
- (130.02 KiB) Downloaded 376 times
-
- TEST_Full_Scanner_Workflow_Stumm.xml
- (109.96 KiB) Downloaded 390 times
-
- TEST Resize_FPS_Crop.xml
- (16.1 KiB) Downloaded 390 times
Last edited by ThomasM on Fri Jun 07, 2019 7:41 am, edited 1 time in total.
Re: Get Errors on AVIsynth-Nodes
Hey Thomas, very nice workflow, congrats!
Up in front, for avisynth related errors, it is mostly very helpful to get the .avs file of interest. You have to enable "keep cache files" option in your workflow to get access to it. In your case this would be:
now to the problem: In your workflow that does NOT work, you have the following code in your avisynth script.
In the example that works, you have a number instead of a variable. Are you sure the variable "s_assumed_fps_from_log" has the correct value at the time when the failing node, assumefps is executed?
Also i am pretty sure that you can also use the builtin fps converter with "Just set playback speed" option. maybe this spits out a better error message. But in the end it don't matter, personally i prefer to work with the custom nodes wherever possible.
Cheers,
emcodem
Up in front, for avisynth related errors, it is mostly very helpful to get the .avs file of interest. You have to enable "keep cache files" option in your workflow to get access to it. In your case this would be:
Code: Select all
D:\FFAStrans-WorkFolder\20190604150347\20190605-115525-234-85E2E0E2E128\avs_v_fpsconv_20190605-115553-818-645590E04CAA.avs
Code: Select all
m_clip = AssumeFPS(m_clip, %s_assumed_fps_from_log%, 1, true)
Also i am pretty sure that you can also use the builtin fps converter with "Just set playback speed" option. maybe this spits out a better error message. But in the end it don't matter, personally i prefer to work with the custom nodes wherever possible.
Cheers,
emcodem
emcodem, wrapping since 2009 you got the rhyme?
Re: Get Errors on AVIsynth-Nodes
Hallo emcodem,
Danke für Deine schnelle Antwort - thanks for your fast reply!
I checked the workflow and found out, that populating the variable (Set FPS VAR) does not work because the RegEx takes the whole path with drive and not only the File I created with another node more to the beginning (FIND _assumefps_ Echo). The latter node extracts a string from the original LOG-file from the scanned .AVI-File. I tried to get the CMD in the "populate Variables"-node, but I was not successful with this.
Is there an easy way to get the Number from the string into the variable? I tried
$regext("%s_original_path%\%s_archnumber%\*.fps","(\w+)_Archivdigitalisat")
and
$regext("%s_original_path%\%s_archnumber%\*.fps","(\A..)")
the latter gave out z: and not 22 (or any other FPS the Log could have...).
Now it is clear - I have to have an expression which gives me only the last numbers from the end of the filename. I also could rename this temporary .fps to ANYNAME_22.fps, maybe this is easier to handle?
Any help appreciated,
Thomas
Danke für Deine schnelle Antwort - thanks for your fast reply!
I checked the workflow and found out, that populating the variable (Set FPS VAR) does not work because the RegEx takes the whole path with drive and not only the File I created with another node more to the beginning (FIND _assumefps_ Echo). The latter node extracts a string from the original LOG-file from the scanned .AVI-File. I tried to get the CMD in the "populate Variables"-node, but I was not successful with this.
Is there an easy way to get the Number from the string into the variable? I tried
$regext("%s_original_path%\%s_archnumber%\*.fps","(\w+)_Archivdigitalisat")
and
$regext("%s_original_path%\%s_archnumber%\*.fps","(\A..)")
the latter gave out z: and not 22 (or any other FPS the Log could have...).
Now it is clear - I have to have an expression which gives me only the last numbers from the end of the filename. I also could rename this temporary .fps to ANYNAME_22.fps, maybe this is easier to handle?
Any help appreciated,
Thomas
Re: Get Errors on AVIsynth-Nodes
Hey Thomas
besides the regex might not currently work, i guess the variable value will still not be set in the "Set Assume FPS" Node. Variables are always only visible to the current brach (Zweig) and it's sub-branches. You'd need to connect DEL###.fps to "Wait For Var Ready" if that's possible. This way, "Set FPS VAR" which sets your variable and "Set Assume FPS" which consumes your variable are in the same branch.
Also, i fear the way you want to use the populate variable does not work the way you assume it to work. Your expression is:
This looks like you expect it to look for a file on the filesystem which it just does not do. It is just about strings, not about finding files on the filesystem.
I don't have more time today, sorry. It is best for you to write the fps value to a file with a fixed filename (or a filename containing %s_job_id% and folder and use the $read function to read the value from the file in your populate variables processor...
besides the regex might not currently work, i guess the variable value will still not be set in the "Set Assume FPS" Node. Variables are always only visible to the current brach (Zweig) and it's sub-branches. You'd need to connect DEL###.fps to "Wait For Var Ready" if that's possible. This way, "Set FPS VAR" which sets your variable and "Set Assume FPS" which consumes your variable are in the same branch.
Also, i fear the way you want to use the populate variable does not work the way you assume it to work. Your expression is:
Code: Select all
$regext("%s_original_path%\%s_archnumber%\*.fps","(\w+)_Archivdigitalisat")
I don't have more time today, sorry. It is best for you to write the fps value to a file with a fixed filename (or a filename containing %s_job_id% and folder and use the $read function to read the value from the file in your populate variables processor...
emcodem, wrapping since 2009 you got the rhyme?
Re: Get Errors on AVIsynth-Nodes
emcodem,
Thank you so much - good hint with the branches. I was not aware of this. I thought, a var is valid thoughout a starting workflow... Always learning.
Ok, feierabend - enjoy the sunny evening...
Regards,
Tom
Thank you so much - good hint with the branches. I was not aware of this. I thought, a var is valid thoughout a starting workflow... Always learning.
Ok, feierabend - enjoy the sunny evening...
Regards,
Tom
Re: Get Errors on AVIsynth-Nodes
Hi Thomas, the branch thing is a crucial aspect to be aware of. Think about it: Create and connect at the same level two "Populate variables" to a node. Select the exact same variable populated with different data. Which one will be used on the next connected node(s)? The one that finish first? No, you actually split your workflow in two thus creating two separate branches which are mostly totaly unaware of each other. So you cannot populate a variable in one branch and use the data in another branch. What you CAN do is store the data in a file and in another branch wait for that file to exist, read its contents and use the data. That is probably currently the best way to share data from populated variables between branches.
And as emcodem points out, the $regext() function and most other functions work on the string presented (or the value a variable represent). If you want to read contents of a file use $read("\\full\file.path") to a variable. Now you can use regext to extract strings from the file read.
So with this in mind, restructure your (impressive (non-working )) workflow and give it another try. Best of luck!
-steinar
And as emcodem points out, the $regext() function and most other functions work on the string presented (or the value a variable represent). If you want to read contents of a file use $read("\\full\file.path") to a variable. Now you can use regext to extract strings from the file read.
So with this in mind, restructure your (impressive (non-working )) workflow and give it another try. Best of luck!
-steinar
Re: Get Errors on AVIsynth-Nodes
Steinar,
thank you for this explanation. emcodem gave this explanation in his great instructional-thread, but i did not get the point correctliy - sorry for that.
Now - today I will restructure all.
Again, thanks for your advice!
regards,
tom
thank you for this explanation. emcodem gave this explanation in his great instructional-thread, but i did not get the point correctliy - sorry for that.
Now - today I will restructure all.
Again, thanks for your advice!
regards,
tom
Re: Get Errors on AVIsynth-Nodes
...it's me again...
so, I tried the $read-function:
$read("%s_original_path%\%s_archnumber%\FPS.fps")
where the FPS.fps-file has only the extracted FPS-number as content (for example: 22 - no more than these two digits).
But the outcome is not 22 when I try to echo the variable to a text-file. I also tried $read(input string = "%s_original_path%\%s_archnumber%\FPS.fps") without success. What do i miss out?
I attach the new Workflow for reference.
rergards,
tom
so, I tried the $read-function:
$read("%s_original_path%\%s_archnumber%\FPS.fps")
where the FPS.fps-file has only the extracted FPS-number as content (for example: 22 - no more than these two digits).
But the outcome is not 22 when I try to echo the variable to a text-file. I also tried $read(input string = "%s_original_path%\%s_archnumber%\FPS.fps") without success. What do i miss out?
I attach the new Workflow for reference.
rergards,
tom
- Attachments
-
- TEST_Full_Scanner_Workflow_Stumm.xml
- (105.42 KiB) Downloaded 384 times
Re: Get Errors on AVIsynth-Nodes
Hi there,
is it possible, that $read() does not accept wildcards?
$read("%s_original_path%\Input.fps") -> works
$read("%s_original_path%\*.fps") -> does not work.
Will test the whole workflow tomorow...
Regards,
tom
is it possible, that $read() does not accept wildcards?
$read("%s_original_path%\Input.fps") -> works
$read("%s_original_path%\*.fps") -> does not work.
Will test the whole workflow tomorow...
Regards,
tom
Re: Get Errors on AVIsynth-Nodes
Hey thomas,
exactly, the * symbol cannot be used here. You have to point to the full, correct path in the read function. Fun fact: there is a chance that windows 8.1 notation works where ~ is used as wildcard but please do not dig too deep into that topic.
My recommendation for creating temporary files in your workflow is to use the cache direcrory variable and the jobid variable. Keep all the temp files in one folder so u dont need to delete all files separately.
cheers!
emcodem
exactly, the * symbol cannot be used here. You have to point to the full, correct path in the read function. Fun fact: there is a chance that windows 8.1 notation works where ~ is used as wildcard but please do not dig too deep into that topic.
My recommendation for creating temporary files in your workflow is to use the cache direcrory variable and the jobid variable. Keep all the temp files in one folder so u dont need to delete all files separately.
cheers!
emcodem
emcodem, wrapping since 2009 you got the rhyme?