VideoHelp Forum
+ Reply to Thread
Results 1 to 17 of 17
Thread
  1. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    I'm a desktop application developer who inherited a program that uses the x264vfw codec as part of a DirectShow graph. This program was written exclusively for 32-bit environments, but now I'm tasked with moving it to 64-bit. I need a 64-bit version of x264vfw. (I know that's not necessarily a given, but in this case, it is. I'll explain in further posts, if need be.)

    We were getting our x264vfw from SourceForge, and I found an x64 installation there as well. When I installed it on a 64-bit OS PC, however, I saw no sign that x264 encoding was available. In x86 installations, GraphEdit shows the encoder very clearly as one of the Video Compressor filters. But in x64 I'm not seeing it listed in any category with anything, including GraphStudio, GraphEditPlus, or code I write myself. (And yes, I am using x64 versions of these applications.)

    I know this is probably a stupid newbie question, but what am I missing? Why can't I detect the x64 version of x264vfw installed (apparently successfully) on a machine with an x64 OS? (Note that the same problem occurs with Komisar's x264vfw as well.)
    Quote Quote  
  2. I just downloaded and installed this version on my Win7 64bit machine:

    http://www.videohelp.com/download/x264vfw.2146kMod.x86_64.exe

    It shows up in VirtualDub64.

    Name:  x264vfw.png
Views: 1774
Size:  37.6 KB
    Quote Quote  
  3. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    Thanks for the feedback. I hadn't tried VDub on my test machines.

    Now that I do, I can indeed see a listing for x264vfw. Which is even more puzzling to me, because none of my other tools (x64 versions of GraphEdit, GraphEditPlus, GraphStudio, as mentioned above) seem capable of showing it. I'll have to dig through the VirtualDub source to find out how its search functions are so different from the ones I've written.

    In the meantime, does anyone have a hint on how I might find the CLSID or moniker for this filter? Normally compressors like x264vfw wrap themselves in qcap.dll, and this allows them to be accessed by CLSID or moniker like other DirectShow filters. (GraphEdit et al. will list qcap.dll as the actual file behind x264vfw, for instance.) Apparently this isn't happening in my x64 PCs.

    I'd be very interested in any insights about what might or might not be happening in my case.
    Quote Quote  
  4. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    vfw and directshow are 2 independent systems

    vdub uses vfw, that's why it can access x264vfw (and any other system installed vfw codecs)

    graphedit / graphstudio are for directshow , not vfw.

    You would need to modify x264 for directshow; roozhou has done that here, but the project isn't updated very frequently
    http://sourceforge.net/projects/direct264/
    Quote Quote  
  5. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    Aha! Thank you! I hadn't realized the distinction between directshow and vfw.

    However, that still leaves open the question of how the x86 versions of x264vfw I install always appear in graphedit.
    Quote Quote  
  6. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    Originally Posted by Danzaemon View Post

    However, that still leaves open the question of how the x86 versions of x264vfw I install always appear in graphedit.

    It doesn't. Or at least it shouldn't. Not the ones distributed on sourceforge or komisar's

    Are you sure this isn't a remenant of the previous application you inherited? The modified directshow x264 fitler ?
    Quote Quote  
  7. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    It doesn't show up for me on a 32-bit OS in graphedit/studio

    It looks like direct264 is 32-bit only, but maybe you can look at the sources and modify it for 64-bit, or at least see how it is able to construct a directshow filter graph
    Quote Quote  
  8. x264vfw is in the Video Codecs section, not the DirectShow section.
    Quote Quote  
  9. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    Hmm. Direct264 was an good lead, but as I examine the source, I see that it's dedicated Win32 stuff. There are dozens of inline assembler blocks, which aren't supported in x64 compilation with Visual Studio. I might try a conversion to MASM and/or intrinsics on my own time, but I can't allocate company hours for what might be a major digression. Finding some form of DirectShow-compatible x264 that's accessible in x64 is my fundamental goal.

    One of my original misconceptions was that x264vfw functioned as a relatively straightforward DirectShow filter, allowing me to connect it with an existing graph. Again, this was because I'm already doing this with the x86 version of x264vfw. Any idea how this was accomplished in x86 and how I might recreate that in x64?
    Quote Quote  
  10. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    Sorry to poisondeathray for answering before his latest reply. (I started my answer before a long meeting and finished it afterwards.)

    Just ran a sanity check on a freshly ghosted x86 PC. I ran x264vfw_34_2008bm_29021.exe, the file I inherited from the contractors who originally muddled this project. I'm making a potentially unwarranted assumption this file is an earlier version of the x264vfw project from SourceForge; I don't know exactly where my predecessors found this thing.

    I checked GraphEdit before and after file installation. Before, the Video Compressor section said nothing about x264. Afterwards, x264vfw was available.

    Further tests to follow. All of my assumptions may be very wrong.
    Attached Images  
    Quote Quote  
  11. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    I think the "video compressors" section refers to ACM / VFW and DMO codecs, not directshow filters

    You would still need some way of modifiying x264 source code for directshow for the directshow filter graph to connect, or are you saying you can construct a working graph with that ?
    Quote Quote  
  12. Originally Posted by poisondeathray View Post
    I think the "video compressors" section refers to ACM / VFW and DMO codecs, not directshow filters
    Yes, that's why x264vfw is there.
    Quote Quote  
  13. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    Okay, back from testing (and lunch). I got the x86 version of x264vfw from SourceForge (x264vfw_35_2120bm_31356.exe). I ghosted a PC back to a fresh install, checked that x264vfw was not listed in GraphEdit, and then installed the file. Afterwards, x264vfw appeared as expected.

    From the further comments, that seems not to have been controversial. I'm fairly certain that I'm not making wild, inaccurate claims.

    However, in response to other comments, I should mention again that I already have a project in x86 where I grab an instance of x264vfw by its moniker (@device:cm:{33D9A760-90C8-11D0-BD43-00A0C911CE86}\x264) and connect it with a DirectShow graph. This section of the application works fairly well now. I just need to port it over to x64.

    So to answer poisondeathray's question, I can indeed construct a working graph with what appears in GraphEdit's Video Compressors section... in x86, anyway. Now I'm wondering why (a) the x64 installation of x264vfw doesn't appear in the video compressors section of GraphEdit (the x64 version), and (b) I can't connect my graph with it in a similar fashion. (Granted, I haven't proven it's impossible to connect in x64, but since I can't get any information about its CLSID or moniker, I don't have any binding information in order to load x264vfw and make a connection.)
    Quote Quote  
  14. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    You can ask komisar or roozhou (and many other programmers, including x264 dev's) for assistance directly, either at doom9 or doom10 forums . clsid is another knowlegable person that could probably help with a directshow implementation (he helps manage some projects like ffdshow, and codec tweak tool)
    Quote Quote  
  15. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    Thanks for the advice. Sorry to be such a pain.
    Quote Quote  
  16. Member
    Join Date: Sep 2007
    Location: Canada
    Search Comp PM
    Not a pain or problem at all - That's what we're here for - to learn

    If you find the solution, please post a summary so others can learn from it too

    One last thing - did you try graph studio next, 64-bit ? It might be that graphedit and old graphstudio are 32-bit, so they do not communicate with 64-bit filters
    http://code.google.com/p/graph-studio-next/
    Quote Quote  
  17. Member
    Join Date: Feb 2012
    Location: Mountain View, CA
    Search Comp PM
    Yep. I know only too well that x64 DirectShow apps can only see and use x64 filters. I mentioned x64 GraphStudio, etc. explicitly in my first post of this thread.

    Just to follow up on this problem, Doom10 had some insight into what was happening: http://doom10.org/index.php?topic=2135.new

    The short answer is that the DirectShow wrapper for compressor vfw codecs (qcap.dll) doesn't include an interface for these in x64.
    Quote Quote  



Similar Threads