I've tried but it fails. New avi with extracted video stream wan't to play in any player, but all info about file showing correctly.
I' ve made this:

Code:
void SaveStream(PAVISTREAM ps, LPSTR lpFilename) 
{ // msdn modifed example
    PAVIFILE            pf; 
    PAVISTREAM          psAvi;
    HRESULT             hr;
    AVISTREAMINFO       strhdr;
    BITMAPINFOHEADER    bi,
                        biNew;
    LONG                lStreamSize;
    LPVOID              lpOld,
                        lpNew;
 
    // 
    // AVIStreamFormatSize. 
    AVIStreamFormatSize(ps, 0, &lStreamSize); 
    if (lStreamSize > sizeof(bi)) // Format too large? 
        return; 
 
    lStreamSize = sizeof(bi); 
    hr = AVIStreamReadFormat(ps, 0, &bi, &lStreamSize); // 

    //if (bi.biCompression != BI_RGB) // 
    //    return;
    String msg = "";
    switch (bi.biCompression)
       {
         case BI_RGB: msg = "uncompressed";
         case BI_RLE8:  msg = "rle8";
         case BI_RLE4:  msg = "rle4";
         case BI_BITFIELDS:  msg = "16.32 uncompr";
         case BI_JPEG:  msg = "JPEG";
         case BI_PNG:  msg = "PNG";
         default: msg = "Unknown!";
       }
    ShowMessage(msg);

    hr = AVIStreamInfo(ps, &strhdr, sizeof(strhdr)); //  
 
    // 
    hr = AVIFileOpen(&pf, lpFilename, OF_WRITE | OF_CREATE, NULL); 
    if (hr != 0) 
        return; 
 
    // 
    biNew = bi;
    biNew.biCompression = 0; //
    hr = AVIFileCreateStream(pf, &psAvi, &strhdr); 
    if (hr != 0) {            //
        AVIFileRelease(pf); 
        return; 
    } 
 
    // 
    hr = AVIStreamSetFormat(psAvi, 0, &biNew, sizeof(biNew)); 
    if (hr != 0) { // 
        AVIStreamRelease(psAvi); 
        AVIFileRelease(pf); 
        return; 
    } 
 
    // 
    lpOld = GlobalAllocPtr(GMEM_MOVEABLE, bi.biSizeImage); 
    lpNew = GlobalAllocPtr(GMEM_MOVEABLE, biNew.biSizeImage); 
 
    // Read the stream data using AVIStreamRead. 
    for (lStreamSize = AVIStreamStart(ps); lStreamSize <
        AVIStreamEnd(ps); lStreamSize++) { 
        hr = AVIStreamRead(ps, lStreamSize, 1, lpOld, bi.biSizeImage,
            NULL, NULL); 
        if (hr != 0) { // 
            AVIStreamRelease(psAvi);
            AVIFileRelease(pf);
            return;
        }
 
        //
        hr = AVIStreamWrite(psAvi, lStreamSize, 1, lpNew,
            biNew.biSizeImage, AVIIF_KEYFRAME, NULL, NULL); 
    } 
 
     // 
    AVIStreamRelease(psAvi); 
    AVIFileRelease(pf); 
}

//------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    PAVISTREAM pVideoStream;
    
    bool bFileOpen;
    if(OpenDialog1->Execute()) {
        //if(SaveDialog1->Execute()){
            long r, fmtlen;
            AVIFileInit();
            r = AVIStreamOpenFromFile(&pVideoStream, OpenDialog1->FileName.c_str(),
                  streamtypeVIDEO, 0, OF_READ | OF_SHARE_EXCLUSIVE, 0);
            if(r!=0) ShowMessage("Cant load file stream!");

            
            SaveStream(pVideoStream, "out.avi");

            AVIFileExit();
            ShowMessage("Done!");

        //} //if saveD
    }//if openD
}
I'll be glad to see any info or code example/ 10x