VideoHelp Forum

Try DVDFab and download streaming video, copy, convert or make Blu-rays,DVDs! Download free trial !
+ Reply to Thread
Results 1 to 16 of 16
Thread
  1. I did lots of searching on this, and this post is the closest I could get to a solution. I'm not dead in the water, I can get AviSynth to work on all apps. I'm just trying to setup a portable AviSynth that doesn't get copied to system folders (if possible).

    I did check out the universal installer also, the batch file was fairly straight forward, which is where I got all the registry entries from.

    It seems that I am down to the following options:
    1) copy AviSynth.dll to the folder of applications that don't work (ie. ffmpeg)
    2) copy AviSynth.dll to System32 / SysWOW64 and it works on everything

    As mentioned in the post title, I can get VirtualDub and several media players to work with AviSynth in a custom location (both 32bit and 64bit for all), but ffmpeg is holding out on me.

    Does ffmpeg commonly have issues when AviSynth is NOT in the ffmpeg or system folders? Has anyone successfully got AviSynth.dll in a custom location to work with ffmpeg? I'm using AviSynth+ 3.4.0 and ffmpeg 4.2.1

    As a side-note ... I have done the legit install of AviSynth several times, and of course it works every time. So it seems that AviSynth.dll is definitely meant to be in the System32 / SysWOW64 folder(s).
    Quote Quote  
  2. Member Budman1's Avatar
    Join Date
    Jul 2012
    Location
    NORTHWEST ILLINOIS, USA
    Search Comp PM
    With ffmpeg you just specify the input as the avs file. E.G
    FFMpeg -i c:\path\video.avs
    To view it you can also use ffplay
    FFPlay -i c:\path\video.avs
    Quote Quote  
  3. @Budman1

    Right, I can do that just fine when AviSynth is installed using the normal methods. That's not my issue.

    It seems that ffmpeg won't function properly unless AviSynth is copied into the System folders (System32 / SysWOW64) or copied into the ffmpeg directory.

    I'm wondering if anyone has ever got ffmpeg to work with AviSynth installed into a custom location, and not into the system folders, or copied to ffmpeg directory?

    ===

    When I do a custom install location, I modify the registry entries (CLSID entry InProcServer32) to point to the AviSynth.dll with the full custom path. Oddly, several applications work fine when I do this kind of install, but ffmpeg seems to be a bit stubborn.
    Quote Quote  
  4. Originally Posted by TheArkyTekt View Post
    When I do a custom install location, I modify the registry entries (CLSID entry InProcServer32) to point to the AviSynth.dll with the full custom path. Oddly, several applications work fine when I do this kind of install, but ffmpeg seems to be a bit stubborn.
    I was going to recommend you need to register the filters like that. Do you have your source filter and other filters in a plugins folder? Maybe you need to set a registry entry for that.
    Quote Quote  
  5. Originally Posted by jagabo View Post
    I was going to recommend you need to register the filters like that. Do you have your source filter and other filters in a plugins folder? Maybe you need to set a registry entry for that.
    I've messed with that plugin registry entry on and off. I'm actually just manually loading things for the time being.

    Here's the script I'm using, very short:

    Code:
    LoadPlugin("D:\AviSynthPlugins\LSMASH\LSMASHSource.dll")
    LWLibavVideoSource("D:\Media\Rip\test.mkv")
    I can use AviSynth in x264.exe and feed it an AVS file. But I can't do this with ffmpeg, unless I copy AviSynth.dll and DevIL.dll to the ffmpeg folder or system folders (and of course change the related registry entries accordingly).

    I know I'm not accidentally mixing x64 with x86, checked that dozens of times. And of course my LSmash dll is where it should be.

    Does that sound normal?
    Quote Quote  
  6. Try a script with just Info() and see what happens.
    Quote Quote  
  7. Originally Posted by jagabo View Post
    Try a script with just Info() and see what happens.
    Info() works in media players, same with Version() ...

    You mean run it through ffmpeg? I'll give it a shot i guess...

    Avisynth is working, I try Version() and it works in media players, and I can run an avs script through x264 to encode video.

    I just can't use ffmpeg with my current attempted custom config. Trying to figure out what is wrong, or if it's just not possible to do what I'm trying to do.

    I tried to explain what I'm trying to do above (my 2nd post in this thread shows a bit more detailed info). Please let me know if my goal doesn't make sense to ya.
    Quote Quote  
  8. Oh, sorry. I meant to say you should just try Version(). And yes, via your ffmpeg method. That's to check if your non-installed AviSynth is working at all. And to rule out problems loading your source filter. I don't remember if LSMASH has any other dependencies.
    Quote Quote  
  9. Originally Posted by jagabo View Post
    Oh, sorry. I meant to say you should just try Version(). And yes, via your ffmpeg method. That's to check if your non-installed AviSynth is working at all. And to rule out problems loading your source filter. I don't remember if LSMASH has any other dependencies.
    Thanks for the idea. Just tried it and got the error msg:

    Code:
    Unknown error occurred
    Looks like ffmpeg requires AviSynth.dll to be in the ffmpeg dir, or in system dir. Thanks.

    I even added my AviSynth dir and ffmpeg dir to the path environment variable ... doesn't work with a custom location for AviSynth (yet? ) ...
    Quote Quote  
  10. I'm out of ideas. Is there any reason you can't leave the dll in ffmpeg's folder?
    Quote Quote  
  11. Originally Posted by TheArkyTekt View Post
    It seems that I am down to the following options:
    1) copy AviSynth.dll to the folder of applications that don't work (ie. ffmpeg)
    2) copy AviSynth.dll to System32 / SysWOW64 and it works on everything
    How else would ffmpeg (or any other program that can load AVS scripts) find avisynth.dll if not one of the above options is true?

    Unless I'm missing something, this is a non-issue.
    Quote Quote  
  12. Originally Posted by jagabo View Post
    I'm out of ideas. Is there any reason you can't leave the dll in ffmpeg's folder?
    Lol no, I'm just trying to see how portable and effortless i can make the avisynth install. It's still weird that ffmpeg doesn't respond but other programs do, even VirtualDub.
    Quote Quote  
  13. Originally Posted by TheArkyTekt View Post
    Originally Posted by jagabo View Post
    I'm out of ideas. Is there any reason you can't leave the dll in ffmpeg's folder?
    Lol no, I'm just trying to see how portable and effortless i can make the avisynth install. It's still weird that ffmpeg doesn't respond but other programs do, even VirtualDub.
    With ffmpeg and x264, Avisynth is completely portable if you copy avisynth.dll and devil.dll into the directory where the application resides. You also have to explicitly load plugins if you want to avoid any registry entries.

    Again, I don't understand the issue you're having.
    Quote Quote  
  14. Originally Posted by Groucho View Post
    Originally Posted by TheArkyTekt View Post
    It seems that I am down to the following options:
    1) copy AviSynth.dll to the folder of applications that don't work (ie. ffmpeg)
    2) copy AviSynth.dll to System32 / SysWOW64 and it works on everything
    How else would ffmpeg (or any other program that can load AVS scripts) find avisynth.dll if not one of the above options is true?

    Unless I'm missing something, this is a non-issue.
    Specifically, i was registering the AviSynth.dll in the registry (CLSID > InProcServer32 stuff). I used the fully qualified path to AviSynth.dll. Several programs respond to this config, but ffmpeg does not.

    I also tried using the PATH environment variable to put both the ffmpeg.exe and AviSynth.dll in the same "virtual directory".

    None of these things worked out the way I had hoped for ffmpeg.

    Oddly, again, several programs recognize a "custom" install of AviSynth.dll including > VirtualDub, x264.exe, and all my media players (except VLC).

    I was wondering why this was the case with ffmpeg...
    Quote Quote  
  15. Originally Posted by TheArkyTekt View Post
    Specifically, i was registering the AviSynth.dll in the registry (CLSID > InProcServer32 stuff).
    As far as I know, only media players and VfW programs such as Virtualdub need this.

    Originally Posted by TheArkyTekt View Post
    Oddly, again, several programs recognize a "custom" install of AviSynth.dll including > VirtualDub, x264.exe, and all my media players (except VLC).
    What's a custom install?

    Anyway, if I completely uninstall Avisynth (including all registry entries) and copy avisynth.dll and devil.dll into the same directory as ffmpeg it works just fine. It even works if I copy these 2 files to the script directory.
    Quote Quote  
  16. Originally Posted by Groucho View Post
    What's a custom install?

    Anyway, if I completely uninstall Avisynth (including all registry entries) and copy avisynth.dll and devil.dll into the same directory as ffmpeg it works just fine. It even works if I copy these 2 files to the script directory.
    Sorry, I kinda made up the term "custom install" in this context as short-hand to mean the following:

    ... putting the AviSynth.dll and DevIL.dll anywhere, depending on how the user want's to organize and archive AviSynth versions for whatever use. The difference is in modifying the registry values that register the DLL to point to the full path of the DLL within the InProcServer32 reg item. A legit install, when copied to system folders, simply has InProcServer32 point to "AviSynth.dll", with no path.

    Example:

    For an x86 install on an x64 system...

    Legit Install (DLLs copied to C:\Windows\SysWOW64):
    HKLM\SOFTWARE\WOW6432Node\Classes\CLSID\{E6D6B700-124D-11D4-86F3-DB80AFD98778}
    InProcServer32 = AviSynth.dll
    Custom Install (DLLs in "X:\folder" in this case):
    HKLM\SOFTWARE\WOW6432Node\Classes\CLSID\{E6D6B700-124D-11D4-86F3-DB80AFD98778}
    InProcServer32 = X:\folder\AviSynth.dll
    I've tested both of these a lot recently, just trying to figure out how to best and most easily make AviSynth as portable as possible.

    I got this idea thanks to andkar and his AutoIt script. That's the way he does it, and yes, his main use is for VirtualDub.

    I've also tried modifying the PATH enviornment variable to hopefully extend the usefulness of this custom install. But so far no luck with that. I also tried manually registering the DLL with regsvr32 AviSynth.dll but no dice there either.
    Last edited by TheArkyTekt; 4th Dec 2019 at 01:49.
    Quote Quote  



Similar Threads