VideoHelp Forum




+ Reply to Thread
Page 2 of 3
FirstFirst 1 2 3 LastLast
Results 31 to 60 of 81
  1. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    I couldn't use MKVToolNix to extract it because it's a VOB so I encoded it.

    Whatever the result, I definitely do not want my videos to be anything other than 23.976
    Image Attached Files
    Quote Quote  
  2. Re. Matthew Part1.mkv:

    Use DgIndex (part of DgMpgDec) to demux a similar segment of your VOB as an M2V. Upload the M2V.

    You've exacerbated the problems by encoding interlaced video as if it was progressive. But form the looks of it there too much blending to get a clean 23.976 fps video out of it.
    Quote Quote  
  3. Originally Posted by jagabo View Post
    But form the looks of it there too much blending to get a clean 23.976 fps video out of it.
    That's true, but he can get a not-too-bad 23.976fps out of it using the standard:

    Yadif(mode=1)###or the better QTGMC
    SRestore()
    Quote Quote  
  4. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Alright think I got it.
    Image Attached Files
    Quote Quote  
  5. There's just too much blending in the source. After QTGMC().SRestore() you'll still have lots of blended frames.
    Quote Quote  
  6. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Originally Posted by jagabo View Post
    There's just too much blending in the source. After QTGMC().SRestore() you'll still have lots of blended frames.
    Yeah doesn't have to be perfect, I just want it to look the best it can without too much trouble.

    I've never seen SRestore before so I'm not entirely sure what it does but I noticed after using it the framerate is 23.976, but has the audio pitch been lowered too? If not I'd rather use AssumeFPS("ntsc_film",true) because the audio pitch being correct is important to me.
    Quote Quote  
  7. Originally Posted by WAusJackBauer View Post
    ... but I noticed after using it the framerate is 23.976, but has the audio pitch been lowered too?
    You'll also notice the video length is the same after as before. Only the video was touched - there's no audio in that script. It had been poorly converted from a film source to PAL. Because the video length remains the same, the audio can be used without any tinkering and it's still in pitch.

    The bobber (QTGMC) doubles the framerate. The unblender (SRestore) does the best it can at choosing 'clean' bobbed fields among all the blended ones. When there are just too many blended frames (as in yours) it can't do a perfect job. Just hope it plays smoothly, as it should.
    Quote Quote  
  8. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Originally Posted by manono View Post
    Originally Posted by WAusJackBauer View Post
    ... but I noticed after using it the framerate is 23.976, but has the audio pitch been lowered too?
    You'll also notice the video length is the same after as before. Only the video was touched - there's no audio in that script. It had been poorly converted from a film source to PAL. Because the video length remains the same, the audio can be used without any tinkering and it's still in pitch.

    The bobber (QTGMC) doubles the framerate. The unblender (SRestore) does the best it can at choosing 'clean' bobbed fields among all the blended ones. When there are just too many blended frames (as in yours) it can't do a perfect job. Just hope it plays smoothly, as it should.
    I always thought that in 90% of cases PAL movies also have their audio pitch increased.

    I'm not 100% confident in the method you've explained. If you typed out exactly how it should look I'd be open to using it.
    Quote Quote  
  9. Originally Posted by WAusJackBauer View Post
    I always thought that in 90% of cases PAL movies also have their audio pitch increased.
    If that's true, then this is an example from the remaining 10%.
    I'm not 100% confident in the method you've explained.
    Well, you could always test the script, encode using the script, and have a look at the results.
    If you typed out exactly how it should look I'd be open to using it.
    I have no idea what you're asking. It's your video, not mine. Why don't you test it out? If you don't like the results then maybe you or someone else can come up with something better. You could always just bob it and be done with it, but it's not the way I would do it. Besides, you're insisting on a 23.976fps result.

    Since it was created from a film source, as long as the length remains the same the audio will remain in synch and on pitch.
    Quote Quote  
  10. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    I guess with AssumeFPS("ntsc_film",true) the sound of voices does sound a little too deep but I'm just wondering how you know for 100% that the audio pitch wasn't increased to the PAL standard?

    Without doing anything, the length of the movie is 2:00:01. With AssumeFPS NTS Film it's 2:05:09. With SRestore it's 2:00:01 but the framerate is 23.976.

    By how it should be typed out, I mean is this correct?

    QTGMC()
    SRestore()

    Or

    QTGMC().SRestore()

    Or is there no difference? My avisynth knowledge isn't the best as you can probably tell :P
    Last edited by WAusJackBauer; 3rd Jul 2016 at 07:59.
    Quote Quote  
  11. Originally Posted by WAusJackBauer View Post
    I guess with AssumeFPS("ntsc_film",true) the sound of voices does sound a little too deep but I'm just wondering how you know for 100% that the audio pitch wasn't increased to the PAL standard?
    He probably doesn't know for sure. But field blending is normally used for frame rate conversions to avoid changing the run time, and hence the pitch. Blended fields are inserted instead of speeding up the frame rate. Or conversely, two fields are blended together into one to reduce the frame rate.

    Originally Posted by WAusJackBauer View Post
    By how it should be typed out, I mean is this correct?

    QTGMC()
    SRestore()

    Or

    QTGMC().SRestore()
    In this case they are the same.
    Quote Quote  
  12. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Wanna say thank you to everyone that helped with my previous video, you've been patient

    But alas I have another. Just wonder if I should use AssumeBFF along with QTGMC or do you only have to do that with TFM? Also how do you know when you should use SelectEven or SelectOdd?

    EDIT: Mediainfo claims it's interlaced but it doesn't appear to be to me.
    Image Attached Files
    Last edited by WAusJackBauer; 14th Jul 2016 at 01:12.
    Quote Quote  
  13. That clip is encoded interlaced but the frames are progressive. There's no need to deinterlace or inverse telecine.

    When using TFM or QTGMC you AssumeTFF() when the frames are top-field-first, AssumeBFF() when the frames are bottom-field-first.

    Each interlaced frames contains two separate half-pictures. Each half picture is called a field. One field is contained in all the even numbered scan lines (0, 2, 4, 6... the top field) the other in all the odd numbered scan lines (1,3,5,7... the bottom field). When you watch interlaced video you only see one field at a time. The two fields in the frame are separated then shown sequentially. So 30 fps video is shown at 60 fields per second.

    Interlaced analog video contains no frames. It is a sequence of fields, continuously alternating between top and bottom fields. When it's digitized the capture device may start by capturing a top field, then adding in the next field, a bottom field, to complete the frame. This creates a top-field-first frame. Or the device might start by capturing a bottom field then adding in the next field, a top field, to complete the frame. This creates bottom-field-first frames. On playback the player needs to know the field order in order to display the two fields in the correct order. If the video is played with the wrong field order you will get jerky motion.

    When using SelectEven() or SelectOdd() to cut the frame rate in half it generally doesn't matter which you use. But sometimes you'll find that one looks better than the other. In those cases use the one that looks better.
    Quote Quote  
  14. About the only time I use AssumeTFF or AssumeBFF is if de-interlacing with QTGMC (no SelectEven or SelectOdd) causes obviously incorrect motion (stepping through the frames they move forward and back and forward and back etc). You can spot that a mile away, but other than than that I don't worry about specifying the field order before QTGMC.

    Don't forget if you use "double frame rate" de-interlacing (such as QTGMC without SelectEven or SelectOdd) and the video is progressive, when you step through the frames you'll see each frame is repeated. That's a good sign de-interlacing wasn't required.

    Originally Posted by WAusJackBauer View Post
    Also how do you know when you should use SelectEven or SelectOdd?
    If the video is really interlaced so de-interlacing results in 59.940 unique frames per second for NTSC, or 50fps for PAL, I think you should only use SelectEven or SelectOdd if you want to make motion appear less smooth.
    Any device supporting AVC High Profile, Level 4.1 should support 60fps up to 720p, and Level 4.1 is pretty much the standard for AVC support these days. For a given CRF value, the bitrate won't increase all that much by de-interlacing to 50/59.940fps. In fact a while ago I did some comparison test encodes and for a given CRF value, de-interlacing with QTGMC to 50fps (PAL) resulted in a lower bitrate than the same video de-interlaced to 25fps with Yadif.
    Quote Quote  
  15. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    This thread has sorta turned into a general help thread so I'll use it for that.

    For some strange reason, IP Man 3 is 24 fps (at least in my region) and after encoding it, the video stutters every roughly every 30 seconds. The source file does not stutter though.

    Should I just try AssumeFPS("ntsc_film",true) to try fix it?
    Last edited by WAusJackBauer; 20th Sep 2016 at 07:56.
    Quote Quote  
  16. You can try that but you will also have to re-encode the audio then.

    24.0 Hz BluRays aren't that uncommon in e.g. Europe. It's not inherently bad or anything. So the question is why and where does it stutter every 30 seconds for you? In every player? Or just specific ones? And what is your complete source script and encoding command-line? Maybe you botched that up.
    Quote Quote  
  17. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Originally Posted by sneaker View Post
    You can try that but you will also have to re-encode the audio then.

    24.0 Hz BluRays aren't that uncommon in e.g. Europe. It's not inherently bad or anything. So the question is why and where does it stutter every 30 seconds for you? In every player? Or just specific ones? And what is your complete source script and encoding command-line? Maybe you botched that up.
    Script was just this, which is what I use for every other encode I do.

    v=Dss2("E:\Movies\IP Man 3\T1_Video - .mkv")
    a=NicDTSSource("E:\Movies\IP Man 3\T2_Audio - Chinese.dts")
    AudioDub(v,a)
    ConvertToYV12

    Just tried latest version of VLC, still stutters.
    Quote Quote  
  18. DSS2() includes a frame-rate conversion for VFR->CFR. Maybe it detects the framerate wrong. Try L-Smash Works instead.
    Quote Quote  
  19. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Originally Posted by sneaker View Post
    DSS2() includes a frame-rate conversion for VFR->CFR. Maybe it detects the framerate wrong. Try L-Smash Works instead.
    LSMASHVideoSource or LWLibavVideoSource?

    EDIT: Both of them gave me an error after I copied all the .dlls from the zip file. Could it be because there was no LSmash.avs? if DSS2 doesn't work I normally use FFVideoSource

    As mentioned in the last page, my knowledge on this stuff is pretty limited.
    Last edited by WAusJackBauer; 20th Sep 2016 at 22:32.
    Quote Quote  
  20. All you need is to have LSMASHSource.dll in AviSynth's plugins folder. If you're running 32 bit AviSynth you need the 32 bit version of the dll. If you're running 64 bit AviSynth you need the 64 bit version of the dll. Also note that 32 bit AviSynth requires a 32 bit encoder/editor, 64 bit AviSynth requires a 64 bit encoder/editor.

    For some reason dlls in the plugins folder don't autoload on some peoples computers. If you have that problem you need to explicitly load the dll in your script:

    Code:
    LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\LSMASHSource.dll")
    Obviously, change the path to wherever the dll is on your computer.

    LSmashVideoSource() can't open MKV files. You need to use LWLibavVideoSource. Replace the Dss2() line in your earlier script with:

    Code:
    v=LWLibavVideoSource("E:\Movies\IP Man 3\T1_Video - .mkv")
    You must have write access to the drive the source is on because it needs to create an index file there.
    Quote Quote  
  21. Try the static build. It only has a single .dll file. (You can delete the ones you had previously) Note: in the package there's a link to a runtime package from Microsoft. Follow it and install said package if it still doesn't work.
    Quote Quote  
  22. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Followed ALL advice given and this is the error I get.

    Click image for larger version

Name:	Untitled.png
Views:	277
Size:	63.9 KB
ID:	38610

    When I installed the runtime package, it got to 100% and didn't get to the next screen. I waited 10 minutes and nothing happened (I have an SSD as my windows drive so it's not my computer being slow)

    In programs and features it showed it was installed, so I closed it and restarted my computer.
    Quote Quote  
  23. That error message is telling you exactly what's wrong. LSMASHSource.dll is not in the indicated folder. You need to change the path to indicate the correct folder.
    Quote Quote  
  24. Member
    Join Date
    Nov 2013
    Location
    Western Australia
    Search Comp PM
    Originally Posted by jagabo View Post
    That error message is telling you exactly what's wrong. LSMASHSource.dll is not in the indicated folder. You need to change the path to indicate the correct folder.
    I changed the path, still not working.
    Quote Quote  
  25. Originally Posted by WAusJackBauer View Post
    I changed the path, still not working.
    If you want help -- always report the exact error message.
    Quote Quote  
  26. Groucho2004
    Guest
    Originally Posted by jagabo View Post
    That error message is telling you exactly what's wrong. LSMASHSource.dll is not in the indicated folder. You need to change the path to indicate the correct folder.
    Nope, not true. That error message lets you know that a support library is missing for LSmash, most likely a VC runtime. I suggest to run AVSMeter with the switch "-avsinfo" to see what's missing.
    Quote Quote  
  27. I got exactly the same message when I deleted the dll and tried to LoadPlugin() using the original path/name. Or any time LoadPlugin() is used with a non-existent dll specified.

    But I just checked, it gives the same error if LSMASHSource.dll is present but msvcr120.dll is missing from the system dlls. WAusJackBauer can get the MSVC libs via the links at the LSMASHSource page at the AviSynth wiki:

    http://avisynth.nl/index.php/LSMASHSource#Requirements
    Last edited by jagabo; 21st Sep 2016 at 16:55.
    Quote Quote  
  28. Groucho2004
    Guest
    Originally Posted by jagabo View Post
    I got exactly the same message when I deleted the dll and tried to LoadPlugin() using the original path/name. Or any time LoadPlugin() is used with a non-existent dll specified.
    You must have a very special Avisynth version. This is what I get when loading a script with a LoadPlugin() call to a non-existent DLL:
    Code:
    Cannot load file 'E:/test/aa.dll'. Platform returned code 126:
    The specified module could not be found.
    Quote Quote  
  29. Because MeGUI is mentioned in the thread title I didn't look and assumed LSmash was in MeGUI's "tools\lsmash" folder. MeGUI also puts a copy of msvcr120.dll in that folder so there's no dependency problem.

    Re the error message:
    I don't think the Avisynth version I use is all that special, but here's what happens when I ask it to load a non-existent dll.



    I generally get the same error if a dll can't be loaded due to a missing dependency. I'm not sure I've ever seen the error message Groucho2004 posted. Obviously it exists, so I wonder why Avisynth displays different error messages?

    WAusJackBauer,
    as you have LSMASHSource.dll in the Avisynth plugins folder, you shouldn't need to load it manually. It'll auto-load when Avisynth runs. Just install whatever runtime is required, It's listed on the LSmash Avisynth page.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!