[go: up one dir, main page]

Menu

#186 VirtualDub Live Capture not working with latest NVIDIA drivers

closed
None
question
2020-06-30
2018-10-17
Anonymous
No

Hello, I recently had to update my Nvidia driver to version 416.34 for my GeForce 1060 because the Oculus software needed a more recent version than the one I had (388.13).

Once I had installed this latest version, however, I discovered that VirtualDub was no longer capable of displaying video captured from a DirectShow Video Source (ex: my laptop's webcam, or industrial cameras connected to my PC via USB). Capture to disk worked to a certain degree (choppy), but nothing would appear on screen after starting "File/Capture AVI..." and selecting the desired video source.

I rolled back to various versions:
* 399.07 -> fails
* 397.93 -> fails
* 388.31 -> works

I stopped at 388.31, as it is the minimum version required by Oculus at this time, but it probably won't last. Clearly something changed between 388 and 397 which is causing problems with VirtualDub.

If it can be of any help, I noticed that GraphStudioNext, a DirectShow graph building tool, also exhibits the same behaviour. VLC works on all versions (but the display performance is lacking), and so does WebRTC in Chrome (see https://webrtc.github.io/samples/src/content/devices/input-output/ )

Is there any way for me to investigate this issue further to provide more information (ex: logs or debug info)? I have also provided feedback to Nvidia

Thanks!

Related

Wiki: changes

Discussion

1 2 > >> (Page 1 of 2)
  • Anton Shekhovtsov

    Do you think the problem is only in combination with DirectShow? Does display work normally otherwise? (like simply opening a video in VD or "capturing" from emulation device). This question is just to eliminate some possibility.
    In VD2 capture there are 3 display modes now, do they behave differently?
    Overlay: somehow the picture is transferred by capture driver right to window. I have no control on this, so if Nvidia broke it only they can tell.
    System: the display is provided by DirectShow with VMR or something like that, also it may need to transform picture with intermediate filters. If you render graph in GraphStudioNext you should see all components (is it the same with good/bad Nvidia drivers?) Here also there is little to do.
    Display with filters: the same picture that gets captured is also displayed. The display itself may be performed using DX9 or GDI, depending on preferences. This should normally work because it is generic display code dealing with picture bytes directly, but just in case I recommend these settings https://sourceforge.net/p/vdfiltermod/wiki/display/

     
    • Anonymous

      Anonymous - 2018-11-08

      Sorry for the delay in getting back to you - I had to move onto another high priority item. I'll try the different display modes. I'm still using VD 1.10.4, but I'll also move to VD2 so we're on the same page.

       
      • Anton Shekhovtsov

        Ok.
        Some additional info: the default renderer with directshow is "old video renderer".
        I have not found any settings for it, but maybe disabling some system-wide display hardware acceleration can help it (sounds terrible though).
        Another user also reported trouble with NVidia drivers and confirmed that "preview with filters" works.

         
        • Anonymous

          Anonymous - 2018-11-26

          Thanks. Here are my observations with VD2:

          • Video/Overlay -> low FPS, no image. My DirectShow GetStreamTime() call returns the VFW_E_NO_CLOCK error, which means I might not be providing a good presentation time stamp in the first place.
          • Video/Preview -> good FPS, no image. Still getting VFW_E_NO_CLOCK, so my timestamps may be wrong again.
          • Video/Display with Filters -> Seems to work! But slow/choppy...

          Interestingly enough, after my experiments, I installed the latest VDUB2 and the Overlay and Preview modes worked ONCE. As soon as I switched back to them from another mode, they no longer worked (Display with filters works, but as mentioned above, slowly). Are there any persistent settings that might be saved incorrectly? I have replicated this issue on another computer, so it's not a one-off thing.

           
          • Anton Shekhovtsov

            The normal settings saved by VD can be found in registry keys, you can delete them if there is some conflict. HKCU\Software\VirtualDub.org\VirtualDub\Capture
            Settings are saved/restored using interfaces IPersistStream on capture filter and IAMVideoProcAmp and IAMCameraControl (added recently).

            Some users reported that display re-appears after renaming or moving the exe. This could be related to some guided optimizations in nvidia drivers (a guess).

            slow/choppy

            By default the display is using GDI, did you change display preferences?

            This might be unrelated, but check Capture->DShow Graph. Sometimes I saw surprising chains of filters.

             
            • Anonymous

              Anonymous - 2018-11-27

              I performed a registry search for the exact directory in which VirtualDub is in, and I found something that "fixes" the problem. It's in the following key:

              HKEY_CURRENT_USER\Software\Microsoft\Direct3D\Shims\EnableOverlays

              The key contains a list of paths. If I delete the path pointing to the VD2 that I am using, the Overlay mode works... until I select Preview (system). Then the entry reappears in this list and everything starts over again. For the moment, I will delete these entries and stay away from Preview (system).

              I don't know what the key does, but I hope this helps...

               
              • Anton Shekhovtsov

                Funny. Was the key set to dword 1 or dword 0?
                Did you try changing the value instead of deleting it?
                Googling "Direct3D\Shims\EnableOverlays" reveals some interesting stories.

                 
                • Anonymous

                  Anonymous - 2018-11-27

                  Indeed - contradicting stories at that.
                  Setting it to 0 seems to work. This is a usable workaround.

                   
                  • Anonymous

                    Anonymous - 2019-02-25

                    This works for a while and then gets reset back to 1. I just delete these keys periodically and it's good enough for me. I can live with this workaround, but I'm just putting it here to give a complete picture for anyone else who might run into the same problem.

                     
  • Anton Shekhovtsov

    Have you found anything? Looks like your thread (link)

    I suspect the problem may be with video overlay support in drivers.

     
  • isidroco

    isidroco - 2018-10-31

    Same problem with Intel Haswell HD Graphics - GT2 v6.14.10.5445 for winXP (difficult to find as XP isn't supported in B85 chipset), solved by selecting in Capture Mode: Video, Preview (system); also it's useful to deselect "Stretch to windows" so as to see actual capture size and slightly reduce CPU usage for resizing.

    With Overlay, capture works fine but can't look while capturing (black box with some noise).

     
  • Anonymous

    Anonymous - 2018-11-09

    391.35 is the last version that works corectly.

     
  • Anonymous

    Anonymous - 2019-05-03

    Any solution ?

     
  • Anton Shekhovtsov

    I thought somebody replied that later windows update fixed it but I cannot confirm this.
    So the workaround is above, look up Direct3D\Shims\EnableOverlays

     
  • Adrian Ursache

    Adrian Ursache - 2019-05-03

    I used GraphStudioNext to check if DirectShow Overlay work correctly:
    GPU: EVGA GTX 1080
    OS: Windows 10 (10.0.17763.437) 64BIT

    When I make this setting in the registry:
    [HKEY_CURRENT_USER\Software\Microsoft\Direct3D\Shims\EnableOverlays]
    Value Name: "D:\GraphStudioNext\GraphStudioNext.exe", Value Data: "1"
    in order to enable overlay, i get a WHITE SCREEN (no image).
    If i set Value Data: "0", the image appears, but the overlay is disabled.

    No issues with driver version : 391.35 WHQL.
    From this version upwards these issue arise .

    I have also provided feedback to Nvidia:
    "Your case is being escalated to our L2 Support group. The technician from the L2 Support will review the case notes and will contact you as soon they can to assist or point you in the right direction. "

    Let's hope this bug will be fixed.

     
  • Adrian Ursache

    Adrian Ursache - 2019-05-18

    The response from nVidia:

    Its possible that this functionally you seek is disabled due to the following. https://docs.microsoft.com/en-us/windows/desktop/DirectShow/overlay-mixer-filter
    "On Windows Vista or later, the Overlay Mixer disables Desktop Window Manager (DWM) composition if the display driver supports hardware overlay. Applications should avoid using the Overlay Mixer filter; use the VMR-9 or the Enhanced Video Renderer (EVR) instead."

    But with driver version 391.35 WHQL works like a charm.
    Obviously it's from the driver.

     

    Last edit: Adrian Ursache 2019-05-18
    • Anton Shekhovtsov

      Good they at least reply something. Probably they dropped certain compatibility workarounds. Well if the other renderers are supposed to work I think I can try it.

       
    • isidroco

      isidroco - 2019-05-18

      I don't see a problem with DWM being disabled, I have it disabled anyway. Nvidia should leave it as a user option.

       
    • Anton Shekhovtsov

      This becomes more confusing. The docs say "In Windows XP and later, the Video Mixing Renderer (VMR) is the default video renderer for IGraphBuilder methods" and VMR9 is the actual renderer I find created in practice (can be guessed from Capture->DShow graph).

      So the advice "use VMR-9 instead" is nonsense.

       
  • Anonymous

    Anonymous - 2019-06-28

    Legacy overlays aren't supported with Windows Display Driver Model (WDDM) 2.0 graphics drivers on Windows 10.

     
    • Anton Shekhovtsov

      Whatever. The renderer is chosen by OS and it (VMR9) is also major OS component. Which makes it unclear why the setup silently runs into some legacy unsupported stuff.

       
  • Anton Shekhovtsov

    • status: open --> closed
     
  • Anton Shekhovtsov

    Fixed in build 44013
    I was wrong, the default renderer is VMR7 not VMR9. And it is that one failing to render.
    With the fix I use VMR9 and it works.

     
  • isidroco

    isidroco - 2019-12-02

    Congratulations!!! You are a genius for not giving up.

     
  • Anonymous

    Anonymous - 2020-06-30

    Im sorry. I know this is a long shot but I am trying to convert valuable family tapes using VirtualDub and this forum seems the only thing close to fixing my problem. The software and the converter device seems to work as it will capture the audio but not the video. Every video program i use cannot capture the video which makes me believe it is DirectShow or something along those lines. BUT I cannot for the life of me understand how you switched from default renderer VMR7 to VMR9. Was that in a program, DirectShow, DirectX, Virtual Dub??? Again I am sorry i am new to this, but this forum seems like my last hope of scrounging what I am using now to capture my home videos.

     
1 2 > >> (Page 1 of 2)

Anonymous
Anonymous

Add attachments
Cancel