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. |
28th July 2014, 20:58 | #801 | Link | ||
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
Quote:
I don't use the script and don't know how it opens a video. My only point was that if he uses 'Source=', in the future he has to continue to use it unless it's replaced by something else. To begin to diagnose the problem I'd stick 'return(source)' right after the first 'Source=' line, open the script in VDub to see if the video gets opened, and then go on from there. |
||
28th July 2014, 23:28 | #803 | Link | ||
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
Quote:
Anyway in videofred's scripts there is no explicit plugin path indicated for his plugins in use ...and this works normally. Quote:
Why can't the filter plugins and sources for videofred's script not be within the avisynth directory as all other plugins? Re QT ... I have QT on my WIN7 PC and I use QTSource sucessfully to open MOV's in avisynth (except for videofred's script)
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore Last edited by papcom; 28th July 2014 at 23:31. |
||
29th July 2014, 04:35 | #804 | Link | |
Retried Guesser
Join Date: Jun 2012
Posts: 1,373
|
Quote:
I wonder if your problem occurs at this line in the script: Code:
film= "C:\Users\You\Documents\Yourfile.avi" # source clip, you must specify the full path here |
|
29th July 2014, 12:08 | #805 | Link | ||
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
Quote:
Quote:
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore |
||
29th July 2014, 15:44 | #806 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
The way the script is written, the variable "film" simply points the file that contains your film/video. Then, later in the script, this variable is fed to the AVISource function that then reads the video from that file.
What you have done -- and this definitely will cause problems -- is to change the "film" variable into something different: it now actually contains the video rather than simply containing the file name of the video. When this different type of variable then later gets fed to the AVISource function, it doesn't know what to do with it. The correct way to modify the script in order to have it work with a QuickTime video is to leave the "film = ..." line alone (keep it the way Fred wrote it) and instead modify the AVISource line in the way that I already described in my previous post. I didn't realize that you had modified other parts of the script, and that's why my earlier advice didn't work for you. |
29th July 2014, 16:04 | #807 | Link | ||
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
thanks to all of You for the help - it made click and now it's running with my ProRes MOV's.
the following lines in my script solved the QT Mov Import: Quote:
Quote:
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore |
||
29th July 2014, 23:43 | #808 | Link |
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
Aspect Problem of Output Video
I notice that I have a slight aspect problem with my videofiles processing with videofred's script: The video is slightly squeezed, (/a circle is a slight Ellipse in heigh)
My Input video is 720x576(rect.pixelformat) and has about 10pixel black on left and right side (this blanking comes from the capture camera). I guess that if I could crop this 10px left/right the aspect could be corrected. But I did not yet find out where to adjust this parameter. When I alter the values in the script at "size crop and borders Parameter" I always have issues with the Stabilisation. (large green/black artefacts on the side) Has anybody a hint for me, where exactely I could correct this aspect problem?
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore Last edited by papcom; 29th July 2014 at 23:46. |
30th July 2014, 01:07 | #809 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
OK, I'm glad you got the first problem fixed.
Most (although not all) of the cropping and re-sizing parameters must be done in MOD4 (divisible by four). Therefore you will probably have problems cropping 10 pixels from each side. Try instead doing 8 or 12 pixels. |
30th July 2014, 01:18 | #810 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Also, the "size crop and borders parameters" actually contains three sets of variables. Which ones are you altering? The Cleft, Ctop, etc. are designed to remove the black borders introduced by the Depan stabilization. They are NOT what you want to use if you are attempting to remove black borders that are in the original video. I actually re-wrote Fred's script, and have posted my changes elsewhere in this thread. I documented in those other posts all the things that I changed (I changed a LOT of things), but one thing I added was an additional set of crop variable to handle film transfers that already contained black borders. I use a NTSC DV camera (720x480) for my captures, and it captures more or less a 4:3 aspect ratio. However, while Super 8 film is this same aspect ratio, regular 8mm film is closer to 1:1 and therefore has black vertical bars on each side. You can't simply crop these out and expand the resulting footage because you will then end up with very fat people (i.e., everything is stretched horizontally). If you don't do anything, these black pillars end up wandering around because of the motion stabilization. What I instead had to do was temporarily crop the video, then motion stabilize, and then add back the black borders.
|
31st July 2014, 17:11 | #811 | Link |
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
@johnmeyer - I found Your script and I am trying to work with it but still have some slight loading difficulties:
In Your script You use the following plugins which differ from videofred's script resp. are absent there: autolevels.dll mt_masktools.dll RemoveDirtSSE2.dll RemoveGrainSSE2.dl Actually I try to find these plugins (DLL and sources) on the net. 1. I can only find autolevels_06... Do I have to rename it to "autolevels.dll ?! 2. unfortunately I cannot acquire RemoveGrainSSE2.dll - (site down)... Is there an alternative? I assume to put the plugins in the same plugin folder as videofred's plugins?
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore Last edited by papcom; 31st July 2014 at 17:41. |
31st July 2014, 19:40 | #812 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Here's a link to my version of Fred's script. I have included the plugins you requested. These are the versions used by my script. I did not include MVTools2, because you should easily be able to get that elsewhere, and I don't think anything my script is doing is dependent on minor version changes in that DLL.
johnmeyer version of Fred's script, with needed DLLs Please note that my script significantly departs from what Fred has been doing, and does not contain many of the enhancements he made in his last interation, most notably some of the changes he has made to autolevels and color correction. I choose to do those things instead inside of my editing program (Sony Vegas). Just to reiterate what I've said in earlier posts, the main reason I chose to revise his work is that I found that his version adds too much sharpening for the kinds of films I have to deal with, most of which are very old and full of dirt. Too much sharpening does not work well with those films. I also spent a LOT of time changing things to improve performance, and if you can utilize the multi-thread features of my script, you should be able to get at least a 2-3x performance improvement. Finally, even though I significantly decreased the amount of sharpening, I still often reduce it even further from the default settings that the version of the script I'm posting uses. You should most definitely look at each set of variables in the script and decide if you want to change any of them. Also, the "result=" line is set to "4" which means it uses no autolevels or autowhite functions, and does not provide a "before & after" side-by-side comparison. Change "4" to "S4" if you want that feature. If you want to have deflicker capability, just search on that word, and you'll find two almost identical lines, one after the other, one of which is commented out that contains the deflicker function. Just comment out the line that doesn't have that function, and use the other line instead. |
1st August 2014, 10:14 | #813 | Link |
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
thank You very much John Meyer for your help. I will go through all of this now.
The first Thing I noticed is the NTSC Format You use. Therefore I will will have to adapt the script to 720x576 and 25 fps. Where do the plugins belong? Do You have the same Folder structure as videofreds Installation? (I have my diffictulies in makingh the script work because it cannot load the dll's as long as the script is not in the same folder as the plugins.) Also I do have a script error : there is no function named mtsetmode ...
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore Last edited by papcom; 1st August 2014 at 10:58. |
1st August 2014, 18:32 | #814 | Link | ||
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Quote:
My recommendation is to put them wherever you want to put them, and then change the "load" statements to include the entire path, for example: Loadplugin("C:\Program Files\AviSynth 2.5\plugins\MVTools\mvtools2.dll") I said this in an earlier post, but let me reiterate: it is good programming practice to explicitly load your plugins by specifying the exact location. There is no downside to doing this, other than having to include these statements in the script. It completely avoids the all-too-common occurrence of having the wrong version of a DLL loaded and then experiencing mystery problems that no one in the forum can help you fix. Quote:
If you don't want to change the AVISynth version and don't want to use multi-threading, you can simply comment out the SetMTMode lines (there are four of them) and you won't get this error message. However, quite frankly, if you are not going to use the multi-threading capabilities of my script, then I recommend that you stick with Fred's script and just add the appropriate crop and resize statements to take care of your black bars. The main reason to use my script is that it is several times faster than his, but only if you use multi-threading. |
||
3rd August 2014, 17:18 | #815 | Link |
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
Your script (@JHM) is running fine here. I have switched to the MT- capable avisynth 2.6. Unfortunately the script makes my Vdub 1.9.11 crash relatively often. It shows a An out-of-bounds memory access (access violation) occurred in module 'ntdll'...
I muted all four SetMTMode, and tried again with the Standard non MT Anisynth, but also here I have relatively often the crashing and always after quitting the program. Other issues: how can I achieve that I do not have any FPS Adaptation? Can I just set 25 FPS instead of 18 for the playspeed. I would like that my films stay 25 FPS without any Change. I do not quite understand the denumerator. Why there is 60'000:1001=59.94? What does this mean? My films are progressive 25fps, and I want them to stay 100% like that. How should I set the denumerator line? Do You have any FlipHorizontal filter in this script? I feed a Clip, and after Your script it is flipped 180degrees (horizontally).
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore Last edited by papcom; 3rd August 2014 at 18:40. |
3rd August 2014, 20:26 | #816 | Link | |||
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Quote:
I have developed some workarounds that work quite well, and should let you get around any stability issues. First, when I am looking at a film and want to make sure I have all the settings just right (you should customize the settings for each film), I comment out the SetMTMode lines. This removes the multi-threading and should give you a totally stable system, albeit much slower. Multi-threading is the source of the instability. When I am ready to actually create the video, I close VD, add the SetMTMode lines back to the script, open my film, and immediately save the AVI file. Most of the instability seems to happen only when seeking forwards or backward (i.e., jumping by many frames at a time, rather than reading each frame in sequence). Since the whole point of my version of the script is to improve performance, you really should add back the SetMTMode statements before you create the video. If you don't, you should just stick with Fred's version. The SetMemoryMax function will make a difference in stability. Try slightly larger or smaller numbers (e.g., 1024 or 512). Finally, change the number of threads. I have an 8-core computer, but I never set threads higher than 6 for this script. If I have a problem with stability, I'll decrease this to some number between 3 & 5. Again, the stability isn't an issue with the specific features of this script but instead is due to using several older plugins that aren't very "happy" playing in the multi-threaded environment. Quote:
Quote:
As you can see, even though it is an irrational number, 29.97 is pretty close. However, when you want to be totally accurate, you should compute the number as shown above. This same calculation is involved when creating the framerate for film shown on an NTSC TV, which is 23.976 rather than 24. The reason for creating a rate that is double the desired rate (59.94) is that the code was written for interlaced video, and when doing that, you create video at double the rate, and then use a SelectEvery() function to assemble the final video by using the upper field from one frame and the lower field from the next frame. This gives you a temporal difference between fields, while maintaining the correct spatial difference between fields. So, if you want to take a film transfer and play it on an interlaced TV set by manufacturing intermediate fields, you want to first convert to double the frame rate (50 fps for your PAL video), and then do a SeparateFields() followed by SelectEvery() followed by Weave(). For progressive video, you don't need to double the frame rate. As for the playback rate, for your PAL video, just set the numerator to 25 and the denominator to 1 because (you lucky dog), your frame rates are nice, simple integers. Finally, FWIW, I almost never use the frame interpolation function for film. The temporal gaps in 16 fps or 18 fps amateur film are so large that the interpolation almost always screws up and gives you horrible morphing artifacts on some scenes (such as people's legs when walking across the field of view). I much prefer the traditional approach of adding pulldown frames, and that is what I always recommend people use. I've spent a HUGE number of hours over the past decade working with various motion estimation software, including commercial programs like Twixtor, trying to find settings that minimize or eliminate these artifacts, but the technology doesn't yet exist that can give you clean estimated frames in all circumstances. When it works, it is magic, but when it doesn't it looks awful. |
|||
4th August 2014, 17:41 | #817 | Link |
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
Thank You @JHM, Your extensive explanations are very helpful.
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore Last edited by papcom; 4th August 2014 at 18:09. |
5th August 2014, 01:33 | #818 | Link | |||
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Quote:
I did include, but have commented out, three different ways to do motion interpolation, if you want to add frames using that technology. The first uses the MVTools2 function, MFlowFPS. These lines are almost straight from the MVTools2 documentation, although I did increase the block size. I find that large block sizes generally produce fewer morphing artifacts when used on low-fps film rates (YMMV). I then included two separate ways to do the same thing using SmoothFPS2 plugin. The first example uses it directly, and the second uses it via the InterFrame script. The advantage of SmoothFPS2 is primarily speed. In my tests, I general have gotten better visual quality using MFlowFPS. Quote:
Code:
denoising_strength= 600 block_size= 8 block_size_v= 8 block_over= 4 There is one other thing that you can try, which I describe in answer to your next question. Quote:
Code:
#super = stabcrop.MSuper(pel=2) #bvec1 = MAnalyse(super, isb = true, delta = 1, blksize=block_size, overlap=block_over,dct=0) #fvec1 = MAnalyse(super, isb = false, delta = 1, blksize=block_size, overlap=block_over,dct=0) #bvec2 = MAnalyse(super, isb = true, delta = 2, blksize=block_size, overlap=block_over,dct=0) #fvec2 = MAnalyse(super, isb = false, delta = 2, blksize=block_size, overlap=block_over,dct=0) #bvec3 = MAnalyse(super, isb = true, delta = 3, blksize=block_size, overlap=block_over,dct=0) #fvec3 = MAnalyse(super, isb = false, delta = 3, blksize=block_size, overlap=block_over,dct=0) Code:
#Use the second line below, and un-comment two lines above if you want to average more frames. Doesn't seem necessary for most work IMHO. Code:
denoised=stabcrop.MDegrain2(super, bvec1,fvec1,bvec2,fvec2,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation)\ .unsharpmask(PRE_sharp_ness,PRE_radi_us,0) Code:
#DENOISING #................................................ input_to_removedirt=stab.crop(CLeft,CTop,-CRight,-CBottom) stabcrop=RemoveDirtMC(input_to_removedirt,dirt_strength,false) prefiltered = RemoveGrain(stabcrop,2) superfilt = MSuper(prefiltered, hpad=32, vpad=32,pel=2) super= MSuper(stabcrop, hpad=32, vpad=32,pel=2) halfblksize= (block_size>4) ? block_size/2 : 4 halfoverlap= (block_over>2) ? block_over/2 : 2 bvec1 = MAnalyse(superfilt, isb = true, delta = 1, blksize=block_size, overlap=block_over,dct=0) bvec1 = MRecalculate(super, bvec1, blksize=halfblksize, overlap=halfoverlap,thSAD=100) fvec1 = MAnalyse(superfilt, isb = false, delta = 1, blksize=block_size, overlap=block_over,dct=0) fvec1 = MRecalculate(super, fvec1, blksize=halfblksize, overlap=halfoverlap,thSAD=100) bvec2 = MAnalyse(superfilt, isb = true, delta = 2, blksize=block_size, overlap=block_over,dct=0) bvec2 = MRecalculate(super, bvec2, blksize=halfblksize, overlap=halfoverlap,thSAD=100) fvec2 = MAnalyse(superfilt, isb = false, delta = 2, blksize=block_size, overlap=block_over,dct=0) fvec2 = MRecalculate(super, fvec2, blksize=halfblksize, overlap=halfoverlap,thSAD=100) bvec3 = MAnalyse(superfilt, isb = true, delta = 2, blksize=block_size, overlap=block_over,dct=0) bvec3 = MRecalculate(super, bvec3, blksize=halfblksize, overlap=halfoverlap,thSAD=100) fvec3 = MAnalyse(superfilt, isb = false, delta = 2, blksize=block_size, overlap=block_over,dct=0) fvec3 = MRecalculate(super, fvec3, blksize=halfblksize, overlap=halfoverlap,thSAD=100) denoised=stabcrop.MDegrain3(super, bvec1,fvec1,bvec2,fvec2,bvec3,fvec3,thSAD=denoising_strength) \ .tweak(sat=saturation).unsharpmask(PRE_sharp_ness,PRE_radi_us,0) You'll just have to play around with this. There is no perfect solution to degraining. I actually have no idea without looking it up. I'm 99% certain you do it by setting the text_color and halo_color values in the Subtitle calls in the "COMPARISONS: ORIGINAL VS RESULTS" section of the script. Last edited by johnmeyer; 12th July 2021 at 17:15. Reason: Fixed MRecalculate errors |
|||
5th August 2014, 20:12 | #819 | Link |
Registered User
Join Date: Feb 2002
Location: Southwest Germany
Posts: 169
|
thank You again @JHM for all the detail-help. I appreciate it very much.
I like the way to export the film without any frame blending, frame interpolation, or pulldown. This is how I work. I use Premiere CS6 or Apple FCP7 or FCPX. I saw that You are working with sony vegas. That's one of the Tools i am very interested in. I recently read a test about it, which highly recommended this soft. Actually I am trying with different parameters and different source material. The results are encouraging. I am testing 768x576 progressive source material, which looks nice after processing. Soon I will start to check images with my other transfer system, which is a modified Bauer525 for frame by frame capturing via a machine vision camera with 1024x768pixels. btw - I found the way to modify the characters in the comparison view via text_color etc. ..thanks for your hint.
__________________
Lenovo Intel i7Quad/WIN8 - Virtual Dub 1.10.4/Avisinth 2.6MT- MacMini I7 QuadCore Last edited by papcom; 6th August 2014 at 08:47. |
11th August 2014, 23:14 | #820 | Link |
Registered User
Join Date: Dec 2011
Posts: 18
|
Can someone tell me which version of Avisynth these scripts are compatible with? I've tried the 2.5 and 2.6 MT versions... and Avisynth+, but I keep getting multiple errors and crashes no matter what I try.
Any help would be appreciated. Thanks! |
Thread Tools | Search this Thread |
Display Modes | |
|
|