http://www.codeproject.com/info/search.asp?cats=3&cats=6&searchkw=avi&Submit1=Search&author=&sd=15+Nov+1999&ed=25+Jun+2007这里有很多AVI操作的例子
===================================================
技术交流不该有界限 资源共享不该有条件
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
1、欢迎一切问题有关的交流——无论答案对错;
2、不欢迎 顶、Mark、支持之类口水混分的人;
我保留对非<散分贴>蹭分者的厌恶和鄙视...
精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
所以,我没有精通,只有JZ
===================================================

解决方案 »

  1.   

    http://www.codeproject.com/useritems/Get_bitmap_from_AVI_file.asp把某一桢保存为图片,进行处理。===================================================
    技术交流不该有界限 资源共享不该有条件
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    本人说明:<我的帖子我做主,结贴率保持100%>
    1、欢迎一切问题有关的交流——无论答案对错;
    2、不欢迎 顶、Mark、支持之类口水混分的人;
    我保留对非<散分贴>蹭分者的厌恶和鄙视...
    精通:jīnɡtōnɡ对学问技术等透彻的了解并熟练掌握
    所以,我没有精通,只有JZ
    ===================================================
      

  2.   

    读:
    DirectShow HRESULT GetAVIPoster(LPCTSTR pszFileName, BITMAPINFOHEADER **ppbmih)
    {
        HRESULT hr;
        CComPtr<IMediaDet> pDet; hr = pDet.CoCreateInstance(__uuidof(MediaDet));    // Convert the file name to a BSTR.
        CComBSTR bstrFilename(pszFileName);
        hr = pDet->put_Filename(bstrFilename);    long lStreams;
        bool bFound = false;
        hr = pDet->get_OutputStreams(&lStreams);
        for (long i = 0; i < lStreams; i++)
        {
            GUID major_type;
            hr = pDet->put_CurrentStream(i);
            hr = pDet->get_StreamType(&major_type);
            if (major_type == MEDIATYPE_Video)
            {
                bFound = true;
                break;
            }
        }
        if (!bFound)
    return VFW_E_INVALIDMEDIATYPE;    long width = 0, height = 0;
        AM_MEDIA_TYPE mt;
        hr = pDet->get_StreamMediaType(&mt);
        if (mt.formattype == FORMAT_VideoInfo)
        {
            VIDEOINFOHEADER *pVih = (VIDEOINFOHEADER*)(mt.pbFormat);
            width = pVih->bmiHeader.biWidth;
            height = pVih->bmiHeader.biHeight;        // We want the absolute height, don't care about orientation.
            if (height < 0) height *= -1;
        }
        else
    {
            return VFW_E_INVALIDMEDIATYPE; // Should not happen, in theory.
        }
        FreeMediaType(mt);    long size;
        hr = pDet->GetBitmapBits(0, &size, NULL, width, height);
        if (SUCCEEDED(hr))
        {
            char *pBuffer = new char[size];
            if (!pBuffer) return E_OUTOFMEMORY;
            try
    {
                hr = pDet->GetBitmapBits(0, NULL, pBuffer, width, height);
            }
            catch (...)
    {
                delete [] pBuffer;
                return E_OUTOFMEMORY;
            }
            if (SUCCEEDED(hr))
            {
                // Delete the old image, if any.
                if (*ppbmih) delete[] (*ppbmih);
                (*ppbmih) = (BITMAPINFOHEADER*)pBuffer;
            }
        }
        return hr;
    }
    void FreeMediaType(AM_MEDIA_TYPE &mt)
    {
    if (mt.cbFormat != 0)
    {
            CoTaskMemFree((PVOID)mt.pbFormat);
            // Strictly unnecessary but tidier
            mt.cbFormat = 0;
            mt.pbFormat = NULL;
        }
        if (mt.pUnk != NULL)
    {
            mt.pUnk->Release();
        mt.pUnk = NULL;
        }
    }
      

  3.   

    directshow很是复杂啊,用c#改了半天也没弄明白,郁闷