VideoHelp Forum
+ Reply to Thread
Results 1 to 7 of 7
Thread
  1. Member
    Join Date
    Oct 2008
    Location
    United States
    Search Comp PM
    I am lost in codec land. I'm not really sure where to find something that explains all this in terms for a mere mortal so I thought I'd post here.

    I'm trying to figure out how all these things relate. As I understand it, vfw is a kind of codec just like directshow is a kind of codec (are these the only two kinds of codecs?). I don't know if I have vfw or where to download it. If I do have it, I don't know how to install codecs into it or where it's located.

    I have also heard people say "ffdshow vfw". Does that make vfw codecs into directshow codecs somehow? I have not been able to figure out where to download this or how to install it. I find ffdshow to download but not ffdshow vfw.

    So I do want to know how this is all put together from a high level view but the main thing I'm trying to figure out right now is how to get the x264 codec installed so that it shows up in sony vegas and my other tools. I got this to happen before when I used codec packs but now I uninstalled that and am trying to learn how to do things the right way rather than the lazy way
    Quote Quote  
  2. Member
    Join Date
    Jun 2005
    Location
    Portugal
    Search Comp PM
    DirectShow filters communicate with, and control, a wide variety of devices, including the local file system, TV tuner and video capture cards, VFW codecs, the video display (through DirectDraw or GDI), and the sound card (through DirectSound)



    DirectShow - codename Quartz - is a multimedia framework. It is the replacement for Microsoft's earlier Video for Windows technology.

    It is the primary layer for all multimedia of your windows, a collection of API that all developers uses

    FFDSHOW is just implemented as a DirectShow and VFW decoding filters, I think it means Fast Forward Direct Show (FFDSHOW) as FFMPEG means also "Fast Forward" for MPEG

    I have also heard people say "ffdshow vfw". Does that make vfw codecs into directshow codecs somehow? I have not been able to figure out where to download this or how to install it. I find ffdshow to download but not ffdshow vfw.
    There is no FFDSHOW VFW for download

    It is only a matter of FFDSHOW configuration, you have that configuration in START - PROGRAMS - FFDSHOW. Some programs like VDub only can see VFW codecs, if you enable that in FFDSHOW you can then make it visible for VDUB

    Or you can only install the basic VFW codecs, such as Koepi XviD, MP3 Fraunhofer


    So I do want to know how this is all put together from a high level view but the main thing I'm trying to figure out right now is how to get the x264 codec installed so that it shows up in sony vegas and my other tools. I got this to happen before when I used codec packs but now I uninstalled that and am trying to learn how to do things the right way rather than the lazy way

    I personally don't like FFDSHOW, because it is huge and installs a lot of things in my system and I'm want to stay far away from it. I like something lighter : CCCP, which is basically a light and simplified version of FFDSHOW

    Which means that I have CCCP for decode of FLV and some other exotic formats, and basic VFW codecs, and AC3 Filter. And I don't need anything else

    If you decide to use FFDSHOW, just enable what you need and disable everything else, this will avoid possible conflicts between another already installed filters

    To take it very simple, FFDSHOW will decode almost everything with the open source libavcodec project, what for me is not the best choice for some formats...., for example CoreAVC gives me more performance inx X264/H264 than libavcodec
    Quote Quote  
  3. Originally Posted by Gigaplex
    I'm trying to figure out how all these things relate. As I understand it, vfw is a kind of codec just like directshow is a kind of codec (are these the only two kinds of codecs?). I don't know if I have vfw or where to download it. If I do have it, I don't know how to install codecs into it or where it's located.
    There are two video systems that come with Windows, the old and deprecated Video For Windows (VFW) and the newer DirectShow. For the most part applications are written to use one or the other. If you use a program designed for VFW (like VirtualDub) you need VFW codecs to decode video. If you use DirectShow based programs (like most media players) you need DirectShow codecs.

    There are also two audio systems, Audio Compression Manager (ACM) and DirectShow. As with video, programs are written for one or the other and require the appropriate codecs.

    Originally Posted by Gigaplex
    I have also heard people say "ffdshow vfw". Does that make vfw codecs into directshow codecs somehow? I have not been able to figure out where to download this or how to install it. I find ffdshow to download but not ffdshow vfw.
    There is only one ffdshow. It is a collection of VFW and DirectShow codecs under one roof. After installing it you will see Start Menu selections for VFW Configuration and Video Decoder Configuration (DirectShow). You can enable/disable individual decoders from there.

    Originally Posted by Gigaplex
    So I do want to know how this is all put together from a high level view but the main thing I'm trying to figure out right now is how to get the x264 codec installed so that it shows up in sony vegas and my other tools. I got this to happen before when I used codec packs but now I uninstalled that and am trying to learn how to do things the right way rather than the lazy way ;)
    I'm not sure about Vegas and x264 -- I suspect you need an x264 VFW codec (note the link "Download an unoffical VFW X264 Codec here"). A VFW based program will only show VFW based encoders. Ffdshow shows up as "Ffdshow Video Codec". Since ffdshow contains several codecs you select which one you want to use from the Ffdshow Video Encoder Configuration dialog.
    Quote Quote  
  4. Member
    Join Date
    Oct 2008
    Location
    United States
    Search Comp PM
    Okay, I'm starting to get this I got x264 working in Vegas now (although only for avis). There's still a few things I don't get. I'm just going to lay it all out there and hope someone can fill me in or point me to some guide. Sorry about having so many questions. I just want to get through this newbie phase as quickly as possible

    What happens if I install the same encoder/decoder as VFW and as DirectShow? Does DirectShow figure out that they are the same one or does it expose both or somehow screw things up?

    Is it correct to say that a DirectShow codec is a single *.ax file and that VFW codecs are DLLs? Can a codec be made up of several DLL or ax files and have dependencies? Can multiple codecs be contained in one DLL or ax file?

    All of these VFW and DirectShow codecs are all in the System32 directory, right? Or can they be organized in some way into folders? How in the world do you guys stay organized with all this stuff!?

    If I just drop one of these ax or dll files in the system32 directory, does that constitute as installing them or do they also need an entry in the windows registry or some other file?

    From what I'm hearing here about ffdshow, it sounds like the codecs it exposes to the system are actually plugins that you install for ffdshow. Is that about how that works? If so, what happens if I have the same plugin installed for ffdshow as I do for DirectShow or VFW?

    Do VFW and DirectShow only do avis? Is ffdshow only avis? I downloaded the x264vfw codec and installed it and it seems to encode avis rather than mpegs.

    I'm looking into ffmpeg and from some things I read, it looks like a tool, other places it looks like a codec, other places it looks like it holds many codecs and exposes them as one - what exactly is ffmpeg?

    Is there such thing as a codec that is not VFW or DirectShow? Like maybe it's just a DLL in System32 that has it's own way of doing things and apps that use it just have to know it's particular interface?

    Since DirectShow and VFW is a windows thing, what does linux use for codecs?
    Quote Quote  
  5. Originally Posted by Gigaplex
    What happens if I install the same encoder/decoder as VFW and as DirectShow? Does DirectShow figure out that they are the same one or does it expose both or somehow screw things up?
    DirectShow based program will use the DirectShow decoder. VFW based programs will use the VFW decoder.

    Originally Posted by Gigaplex
    Is it correct to say that a DirectShow codec is a single *.ax file and that VFW codecs are DLLs? Can a codec be made up of several DLL or ax files and have dependencies? Can multiple codecs be contained in one DLL or ax file?
    The encoder itself is usually a single .ax or .dll. But they often include a separate dll for the configuration dialog. Obviously, since ffdshow includes several VFW encoders, a single file can contain several encoders. And Windows' quartz.dll contains many decoders.

    Originally Posted by Gigaplex
    All of these VFW and DirectShow codecs are all in the System32 directory, right? Or can they be organized in some way into folders? How in the world do you guys stay organized with all this stuff!?
    I believe Windows always copies the files into the System32 folder when you install the codecs. Playing video under windows involves several components including source filters, A/V splitters, audio and video decoders, colorspace converters, audio and video renderers, and script handlers. You should be careful about installing codec packs which install dozens of different individual codecs and other components that often conflict with each other.

    Originally Posted by Gigaplex
    If I just drop one of these ax or dll files in the system32 directory, does that constitute as installing them or do they also need an entry in the windows registry or some other file?
    You can't just copy the files there. They must be registered with the system. You can do that with the REGSVR32 command.

    Originally Posted by Gigaplex
    From what I'm hearing here about ffdshow, it sounds like the codecs it exposes to the system are actually plugins that you install for ffdshow. Is that about how that works?
    I wouldn't call them plugins. They are simply all built into ffdshow and you enable/disable them via the configuration interface. That interface takes care of registering and unregistering them with the system.

    Originally Posted by Gigaplex
    If so, what happens if I have the same plugin installed for ffdshow as I do for DirectShow or VFW?
    As noted earlier, VFW and DS are two separate systems. VFW program will use the VFW codecs, DS programs will use the DS codecs.

    Originally Posted by Gigaplex
    Do VFW and DirectShow only do avis? Is ffdshow only avis? I downloaded the x264vfw codec and installed it and it seems to encode avis rather than mpegs.
    Generally, codecs are container agnostic. It's the program that decides what container to use (AVI, MKV, MPG...).

    Originally Posted by Gigaplex
    Is there such thing as a codec that is not VFW or DirectShow? Like maybe it's just a DLL in System32 that has it's own way of doing things and apps that use it just have to know it's particular interface?
    Yes. A program isn't limited to using VFW and DS. It can use it's own internal video handling functions. These can be built into the main EXE or they can be used via DLLs.

    Originally Posted by Gigaplex
    Since DirectShow and VFW is a windows thing, what does linux use for codecs?
    I don't know a lot about Linux but it has its own ways of handling video and installable components.
    Quote Quote  
  6. Member
    Join Date
    Oct 2008
    Location
    United States
    Search Comp PM
    Now I'm getting somewhere. So from what you've told me, I would gather that codec conflicts happen because some operations like playing video use several codecs to perform the operation and if one codec doesn't do something quite the way that another codec expects it to, then we got a problem.

    I could also see a problem occurring if a UI DLL and the processing part of a codec (I would call this business logic but it doesn't sound right here) don't match up but I would guess that this is a problem not ran into very often because if you install one, you're going to install the other and I would guess that these things aren't shared with other codecs unless it is part of a set of codecs installed all at once.

    The only other kind of conflict I can dream up right now would be if there is some common DLL that a lot of codecs use to "outsource" some of their processing (maybe like this libavcodec I hear so much about) and some require one version while other require a different version. Is that something that happens too?

    I guess my next step (assuming this is how the whole conflict thing happens) would be to figure out what kinds of codecs (i.e. splitter, renderer, etc.) are needed to perform different operations and what codecs other codecs have dependencies on. Any pointers on where I should start with that research?

    You guys have been a HUGE help. Thanks a lot!
    Quote Quote  
  7. You have the right idea. Here's a "filter graph" made by GraphEdit that shows the series of components used by directshow to display an AVI video:



    A graph like this is built dynamically every time a video is played. Each box is a filter, the arrows connections between them. DirectShow considers the possible outputs of each output pin,finds filters with input pins that match, and connects them. There can be many filters capable of performing the same job. There is a merit system for deciding which filter gets the job. You can run into version conflicts, capability conflicts, and bugs anywhere along the line.

    There are filter managers that allow you to add, remove, and adjust the merit of all the filters. Filmerit, DirectShow Filter Manager, RadLight Filter Manager... They can also report missing filters (filters listed in the registry but the .AX/.DLL file is missing).
    Quote Quote  



Similar Threads

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