private IntPtr CreateCompressedStream(IntPtr stream) { Avi.AVICOMPRESSOPTIONS_CLASS options = new Avi.AVICOMPRESSOPTIONS_CLASS(); options.fccType = (uint)Avi.StreamtypeVIDEO; options.lpParms = IntPtr.Zero; options.lpFormat = IntPtr.Zero; //display the compression options dialog Avi.AVISaveOptions( IntPtr.Zero, Avi.ICMF_CHOOSE_KEYFRAME | Avi.ICMF_CHOOSE_DATARATE, 1, ref aviStream, ref options); options.dwQuality = 10000; //Avi.AVISaveOptionsFree(1, ref options); //get a compressed stream IntPtr compressedStream = IntPtr.Zero; Avi.AVICOMPRESSOPTIONS structOptions = options.ToStruct(); int result = Avi.AVIMakeCompressedStream( out compressedStream, stream, ref structOptions, 0); return(compressedStream); }