Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
|
Thread Tools | Search this Thread | Display Modes |
3rd November 2020, 23:35 | #321 | Link | |
Registered User
Join Date: Oct 2018
Location: Germany
Posts: 1,000
|
Quote:
If not then my posting was a bump
__________________
Live and let live |
|
4th November 2020, 08:05 | #322 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
|
Not really...
I'm still stuck... EDIT: For the sake of avoid a potential Windows-related thing, I tried the very same script on Windows 10 x64 Enterprise with the very same version of MPP and AVS+; same result, unhandled C++ exception... Let's see if great master Ferenc is gonna jump on this one and come to rescue... Last edited by FranceBB; 4th November 2020 at 08:09. |
4th November 2020, 11:15 | #323 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
So I have put some debugging into MP_Pipeline. The error comes from parsing the inherit block (my new error message, much better than unknown exception). "Error in regex library while copying 'inherit block': regex_error(error_stack): There was insufficient memory to determine whether the regular expression could match the specified character sequence" Parsing is done with the standard std::regex C++ library. Pattern is ^\s*### inherit start ###\s*$(?:.|\s)*?^\s*### inherit end ###\s*$ Probably this pattern is too complex for the engine to analyze against the source. Right now I have not any clue about the workaround. This is what I have found about the topic. https://stackoverflow.com/questions/...ultiline-match edit: of course one can do it w/o involving the regex library, though this present method is more elegant (but fails) Last edited by pinterf; 4th November 2020 at 14:24. Reason: fix pattern |
|
4th November 2020, 18:18 | #324 | Link | |
Registered User
Join Date: Oct 2018
Location: Germany
Posts: 1,000
|
Quote:
I think I didn't have any problems with older Avisynth versions without 'Plus', but I can also be wrong.
__________________
Live and let live |
|
13th November 2020, 22:58 | #326 | Link | |
Registered User
Join Date: Oct 2018
Location: Germany
Posts: 1,000
|
Quote:
I am sure that I opened Avisynth scripts with 'Eval' back then. After an update to a newer version (I think it was one of the first MT versions at that time), I could only open scripts with AviSource, depending on the content. The current Avisynth versions are at war with Ansi Strings. Edit: I don't know if I got it right. Have you already fixed something in this regard?
__________________
Live and let live Last edited by gispos; 13th November 2020 at 23:21. |
|
13th November 2020, 23:31 | #327 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
|
Just for the sake of testing, I tested the very same script with the new Avisynth Test 4 version and it still behaves the same.
By the way and totally unrelated, ConvertBits() no longer throws an error for 8-16 when the input = output bit depth correctly! |
16th November 2020, 09:29 | #329 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
New version, download v0.22
Code:
Fix crash when there were too many characters (over some hundred) in script between inherit start and inherit end markers (regex library limitation) |
16th November 2020, 18:24 | #330 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
|
Thanks!
Now I no longer have an unhandled C++ exception and I get an error message from all the scripts. Code:
MP_Pipeline(""" video1=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1220_001.MP4") ### export clip: video1 ### ### video2=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1226_001.MP4") ### export clip: video2 ### pass clip: video1 ### ### video3=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2005_001.MP4") ### export clip: video3 ### pass clip: video1, video2 ### ### video4=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2008_001.MP4") ### export clip: video4 ### pass clip: video1, video2, video3 ### ### video5=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2010_001.MP4") ### export clip: video5 ### pass clip: video1, video2, video3, video4 ### ### video6=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2011_001.MP4") ### export clip: video6 ### pass clip: video1, video2, video3, video4, video5 ### ### video7=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2013_001.MP4") ### export clip: video7 ### pass clip: video1, video2, video3, video4, video5, video6 ### ### video8=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1014_001.MP4") ### export clip: video8 ### pass clip: video1, video2, video3, video4, video5, video6, video7 ### ### video9=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1015_001.MP4") ### export clip: video9 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8 ### ### video10=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1016_001.MP4") ### export clip: video10 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9 ### ### video11=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1531_002.MP4") ### export clip: video11 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10 ### ### video12=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1619_001.MP4") ### export clip: video12 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11 ### ### video13=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1620_001.MP4") ### export clip: video13 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12 ### ### video14=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1621_001.MP4") ### export clip: video14 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13 ### ### video15=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1400_001.MP4") ### export clip: video15 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14 ### ### video16=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1947_001.MP4") ### export clip: video16 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15 ### ### video17=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1948_001.MP4") ### export clip: video17 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16 ### ### video18=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_2006_001.MP4") ### export clip: video18 ### pass clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16, video17 ### ### video1++video2++video3++video4++video5++video6++video7++video8++video9++video10++video11++video12++video13++video14++video15++video16++video17++video18 return last """) Code:
MP_Pipeline(""" video1=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1220_001.MP4") ### export clip: video1 ### ### video2=FFVideoSource("I:\temp\Raw Canon EOS R\20190806_1226_001.MP4") ### export clip: video1, video2 ### ### video3=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2005_001.MP4") ### export clip: video1, video2, video3 ### ### video4=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2008_001.MP4") ### export clip: video1, video2, video3, video4 ### ### video5=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2010_001.MP4") ### export clip: video1, video2, video3, video4, video5 ### ### video6=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2011_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6 ### ### video7=FFVideoSource("I:\temp\Raw Canon EOS R\20190807_2013_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7 ### ### video8=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1014_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8 ### ### video9=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1015_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9 ### ### video10=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1016_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10 ### ### video11=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1531_002.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11 ### ### video12=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1619_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12 ### ### video13=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1620_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13 ### ### video14=FFVideoSource("I:\temp\Raw Canon EOS R\20190808_1621_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14 ### ### video15=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1400_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15 ### ### video16=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1947_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16 ### ### video17=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_1948_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16, video17 ### ### video18=FFVideoSource("I:\temp\Raw Canon EOS R\20190812_2006_001.MP4") ### export clip: video1, video2, video3, video4, video5, video6, video7, video8, video9, video10, video11, video12, video13, video14, video15, video16, video17, video18 ### ### video1++video2++video3++video4++video5++video6++video7++video8++video9++video10++video11++video12++video13++video14++video15++video16++video17++video18 return last """) Code:
MP_Pipeline(""" ### inherit start ### video1 = String(ScriptDir()) + "20190806_1220_001.MP4" video1 = Exist(video1) ? video1 : "I:\temp\Raw Canon EOS R\20190806_1220_001.MP4" video2 = String(ScriptDir()) + "20190806_1226_001.MP4" video2 = Exist(video2) ? video2 : "I:\temp\Raw Canon EOS R\20190806_1226_001.MP4" video3 = String(ScriptDir()) + "20190807_2005_001.MP4" video3 = Exist(video3) ? video3 : "I:\temp\Raw Canon EOS R\20190807_2005_001.MP4" video4 = String(ScriptDir()) + "20190807_2008_001.MP4" video4 = Exist(video4) ? video4 : "I:\temp\Raw Canon EOS R\20190807_2008_001.MP4" video5 = String(ScriptDir()) + "20190807_2010_001.MP4" video5 = Exist(video5) ? video5 : "I:\temp\Raw Canon EOS R\20190807_2010_001.MP4" video6 = String(ScriptDir()) + "20190807_2011_001.MP4" video6 = Exist(video6) ? video6 : "I:\temp\Raw Canon EOS R\20190807_2011_001.MP4" video7 = String(ScriptDir()) + "20190807_2013_001.MP4" video7 = Exist(video7) ? video7 : "I:\temp\Raw Canon EOS R\20190807_2013_001.MP4" video8 = String(ScriptDir()) + "20190808_1014_001.MP4" video8 = Exist(video8) ? video8 : "I:\temp\Raw Canon EOS R\20190808_1014_001.MP4" video9 = String(ScriptDir()) + "20190808_1015_001.MP4" video9 = Exist(video9) ? video9 : "I:\temp\Raw Canon EOS R\20190808_1015_001.MP4" video10 = String(ScriptDir()) + "20190808_1016_001.MP4" video10 = Exist(video10) ? video10 : "I:\temp\Raw Canon EOS R\20190808_1016_001.MP4" video11 = String(ScriptDir()) + "20190808_1531_002.MP4" video11 = Exist(video11) ? video11 : "I:\temp\Raw Canon EOS R\20190808_1531_002.MP4" video12 = String(ScriptDir()) + "20190808_1619_001.MP4" video12 = Exist(video12) ? video12 : "I:\temp\Raw Canon EOS R\20190808_1619_001.MP4" video13 = String(ScriptDir()) + "20190808_1620_001.MP4" video13 = Exist(video13) ? video13 : "I:\temp\Raw Canon EOS R\20190808_1620_001.MP4" video14 = String(ScriptDir()) + "20190808_1621_001.MP4" video14 = Exist(video14) ? video14 : "I:\temp\Raw Canon EOS R\20190808_1621_001.MP4" video15 = String(ScriptDir()) + "20190812_1400_001.MP4" video15 = Exist(video15) ? video15 : "I:\temp\Raw Canon EOS R\20190812_1400_001.MP4" video16 = String(ScriptDir()) + "20190812_1947_001.MP4" video16 = Exist(video16) ? video16 : "I:\temp\Raw Canon EOS R\20190812_1947_001.MP4" video17 = String(ScriptDir()) + "20190812_1948_001.MP4" video17 = Exist(video17) ? video17 : "I:\temp\Raw Canon EOS R\20190812_1948_001.MP4" video18 = String(ScriptDir()) + "20190812_2006_001.MP4" video18 = Exist(video18) ? video18 : "I:\temp\Raw Canon EOS R\20190812_2006_001.MP4" ### inherit end ### FFVideoSource(video1, cache=False) ### ### v2=FFVideoSource(video2, cache=False) last=last++v2 return last ### ### v3=FFVideoSource(video3, cache=False) last=last++v3 return last """) Perhaps these messages will make something pop in your mind, 'cause as things stands, I'm glad that I don't get "unhandled C++ expression" anymore, but I still have no idea about what's wrong... |
16th November 2020, 19:43 | #331 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
Edit: release re-enabled (w/o modification) Last edited by pinterf; 16th November 2020 at 20:41. Reason: update release status |
|
16th November 2020, 20:23 | #332 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Your new errors fortunately are not related to any new bugs.
Your first sample does not work because there must be at least one "last" in the first section. When I insert a dummy "BlankClip" there, it will work* (*: see later) It even fails if I skelenonize it to a single video1: Code:
MP_Pipeline(""" video1=FFVideoSource("V01.m2v") ### export clip: video1 ### ### video1 last """) Code:
MP_Pipeline(""" BlankClip() ## providing a "last" clip variable video1=FFVideoSource("V01.m2v") ### export clip: video1 ### ### video1 last """) Then we have another error message. "MP_Pipeline: Unable to create slave process. Message: Script error: SharedMemoryServer: Each process can only export no more than 8 clips." |
16th November 2020, 20:35 | #333 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
The 3rd example is probably wrong as well.
I think you mustn't use "return last" there. MP_Pipeline inserts some "hidden" lines before and after the script blocks, when you put there a return last, this "epilog" will not be reached. Code:
### inherit end ### FFVideoSource(video1, cache=False) ### ### v2=FFVideoSource(video2, cache=False) last=last++v2 return last ### ### v3=FFVideoSource(video3, cache=False) last=last++v3 return last """) Code:
### inherit end ### FFVideoSource(video1, cache=False) ### ### v2=FFVideoSource(video2, cache=False) last=last++v2 ### ### v3=FFVideoSource(video3, cache=False) last=last++v3 return last """) |
17th November 2020, 12:28 | #334 | Link |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
|
I tested again with your suggestion and this indeed works!
Code:
MP_Pipeline(""" ### inherit start ### video1 = String(ScriptDir()) + "20190806_1220_001.MP4" video1 = Exist(video1) ? video1 : "I:\temp\Raw Canon EOS R\20190806_1220_001.MP4" video2 = String(ScriptDir()) + "20190806_1226_001.MP4" video2 = Exist(video2) ? video2 : "I:\temp\Raw Canon EOS R\20190806_1226_001.MP4" video3 = String(ScriptDir()) + "20190807_2005_001.MP4" video3 = Exist(video3) ? video3 : "I:\temp\Raw Canon EOS R\20190807_2005_001.MP4" video4 = String(ScriptDir()) + "20190807_2008_001.MP4" video4 = Exist(video4) ? video4 : "I:\temp\Raw Canon EOS R\20190807_2008_001.MP4" video5 = String(ScriptDir()) + "20190807_2010_001.MP4" video5 = Exist(video5) ? video5 : "I:\temp\Raw Canon EOS R\20190807_2010_001.MP4" video6 = String(ScriptDir()) + "20190807_2011_001.MP4" video6 = Exist(video6) ? video6 : "I:\temp\Raw Canon EOS R\20190807_2011_001.MP4" video7 = String(ScriptDir()) + "20190807_2013_001.MP4" video7 = Exist(video7) ? video7 : "I:\temp\Raw Canon EOS R\20190807_2013_001.MP4" video8 = String(ScriptDir()) + "20190808_1014_001.MP4" video8 = Exist(video8) ? video8 : "I:\temp\Raw Canon EOS R\20190808_1014_001.MP4" video9 = String(ScriptDir()) + "20190808_1015_001.MP4" video9 = Exist(video9) ? video9 : "I:\temp\Raw Canon EOS R\20190808_1015_001.MP4" video10 = String(ScriptDir()) + "20190808_1016_001.MP4" video10 = Exist(video10) ? video10 : "I:\temp\Raw Canon EOS R\20190808_1016_001.MP4" video11 = String(ScriptDir()) + "20190808_1531_002.MP4" video11 = Exist(video11) ? video11 : "I:\temp\Raw Canon EOS R\20190808_1531_002.MP4" video12 = String(ScriptDir()) + "20190808_1619_001.MP4" video12 = Exist(video12) ? video12 : "I:\temp\Raw Canon EOS R\20190808_1619_001.MP4" video13 = String(ScriptDir()) + "20190808_1620_001.MP4" video13 = Exist(video13) ? video13 : "I:\temp\Raw Canon EOS R\20190808_1620_001.MP4" video14 = String(ScriptDir()) + "20190808_1621_001.MP4" video14 = Exist(video14) ? video14 : "I:\temp\Raw Canon EOS R\20190808_1621_001.MP4" video15 = String(ScriptDir()) + "20190812_1400_001.MP4" video15 = Exist(video15) ? video15 : "I:\temp\Raw Canon EOS R\20190812_1400_001.MP4" video16 = String(ScriptDir()) + "20190812_1947_001.MP4" video16 = Exist(video16) ? video16 : "I:\temp\Raw Canon EOS R\20190812_1947_001.MP4" video17 = String(ScriptDir()) + "20190812_1948_001.MP4" video17 = Exist(video17) ? video17 : "I:\temp\Raw Canon EOS R\20190812_1948_001.MP4" video18 = String(ScriptDir()) + "20190812_2006_001.MP4" video18 = Exist(video18) ? video18 : "I:\temp\Raw Canon EOS R\20190812_2006_001.MP4" ### inherit end ### FFVideoSource(video1, cache=False) ### ### v2=FFVideoSource(video2, cache=False) last=last++v2 ### ### v3=FFVideoSource(video3, cache=False) last=last++v3 ### ### v4=FFVideoSource(video4, cache=False) last=last++v4 ### ### v5=FFVideoSource(video5, cache=False) last=last++v5 ### ### v6=FFVideoSource(video6, cache=False) last=last++v6 ### ### v7=FFVideoSource(video7, cache=False) last=last++v7 ### ### v8=FFVideoSource(video8, cache=False) last=last++v8 ### ### v9=FFVideoSource(video9, cache=False) last=last++v9 ### ### v10=FFVideoSource(video10, cache=False) last=last++v10 ### ### v11=FFVideoSource(video11, cache=False) last=last++v11 ### ### v12=FFVideoSource(video12, cache=False) last=last++v12 ### ### v13=FFVideoSource(video13, cache=False) last=last++v13 ### ### v14=FFVideoSource(video14, cache=False) last=last++v14 ### ### v15=FFVideoSource(video15, cache=False) last=last++v15 ### ### v16=FFVideoSource(video16, cache=False) last=last++v16 ### ### v17=FFVideoSource(video17, cache=False) last=last++v17 ### ### v18=FFVideoSource(video18, cache=False) last=last++v18 return last """) |
6th June 2022, 17:34 | #335 | Link |
Registered User
Join Date: May 2009
Location: Belgium
Posts: 1,744
|
Hi,
I didn't use Avisynth for 1 or 2 years and would like to re-install it. As I'm quite confused with 32/64 bit mixed plugins, I have some questions. If I understand correctly, Avisynth+ 64 bit is not supposed to work with 32 bit plugins but it can be achieved with MP_Pipeline. I use Windows 10 pro 64 and would like to install Avisynth+ 64 bit. 1) Is it enough to make work in a single script 32 and 64 bit plugins (thanks to MP_Pipeline) or Avisynth+ 32 bit has to be installed anyway to make work 32 bit plugins, even when used in a script using Avisynth+ 64 bit ? 2) Do I have to put only the 4 MP_Pipeline files of the x64 folder (dll, dll.slave.exe, ...) in Avisynth+ 64 bit's plugin folder to make the whole stuff work with 32 and 64 bit plugins ? 3) In which folder should I place the 32 bit plugins ? Thanks Last edited by Music Fan; 6th June 2022 at 17:36. |
2nd November 2022, 19:02 | #336 | Link |
Registered User
Join Date: Sep 2008
Posts: 365
|
Is there a known bug with using Internal String functions with MP_Pipeline?
As soon as I include a Internal Avisynth function like "findstr" or "leftstr" I get a "Unable to create slave process" exception. Example script not working: Code:
MP_Pipeline(""" ### inherit start ### script_folder = LeftStr(ScriptDir(),StrLen(ScriptDir()) - 1) filename_no_ext = ReplaceStr(scriptfile(),".avs",".mkv") src_file = script_folder + "\" + filename_no_ext ### inherit end ### LWLibavVideoSource(src_file) ### ### # crop borders crop(240,0,-240,0) """)
__________________
(i have a tendency to drunk post) |
2nd March 2023, 20:05 | #338 | Link |
Registered User
Join Date: Aug 2016
Posts: 609
|
Hello, is there any possibility of audio support?
I want to do audio compression to make audio louder without clipping ("soft clipping") but there are only 32-bit plugins for that. I would have used Soxfilter 64-bit compander but it's broken & linear access only. |
2nd March 2023, 21:27 | #339 | Link | |
Broadcast Encoder
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
|
+1 for audio support.
I asked for it long time ago (I guess last time I begged was probably 2015) but the original author was gone. Heck, MPPipelins would have also been broken with newer Avisynth+ colorspaces if it wasn't for the always available and irreplaceable C++ & ASM Supreme Grandmaster Ferenc Pinter who picked it up and updated it to version 0.22. I mean, honestly, pinterf has been picking up almost every project the community has left behind and single handedly updated everything to modern standard. If it wasn't for him I don't know where we would have been... Quote:
Indeed the last Avisynth compatible version was 2.6.1 from 2016, however I guess we're gonna be in for a 2023 miracle after it being broken since 2017, 'cause Grandmaster Ferenc has picked up the "challenge": https://forum.doom9.org/showthread.p...81351&page=115 |
|
Tags |
avisynth, multi-process, pipeline |
|
|