0

我正在编写一个 C 编程来从相机获取的 jpeg 帧创建一个 AVI 文件。我选择了互联网上推荐的压缩功能来压缩这些帧。我要选择的压缩器是 DivX 编码器。

HRESULT AddAviFrame(HAVI avi, HBITMAP hbm)
{ if (avi==NULL) return AVIERR_BADHANDLE;
  if (hbm==NULL) return AVIERR_BADPARAM;
  DIBSECTION dibs; int sbm = GetObject(hbm,sizeof(dibs),&dibs);
  if (sbm!=sizeof(DIBSECTION)) return AVIERR_BADPARAM;
  TAviUtil *au = (TAviUtil*)avi;
  //
  // create an empty compression, if the user hasn't set any
  if (au->psCompressed==0)
  { AVICOMPRESSOPTIONS opts; ZeroMemory(&opts,sizeof(opts));
    opts.fccHandler=mmioFOURCC('D','i','v','X'); 
    HRESULT hr = AVIMakeCompressedStream(&au->psCompressed, au->ps, &opts, NULL);
    if (hr != AVIERR_OK) {au->iserr=true; return hr;}
    hr = AVIStreamSetFormat(au->psCompressed, 0, &dibs.dsBmih, dibs.dsBmih.biSize+dibs.dsBmih.biClrUsed*sizeof(RGBQUAD));
    if (hr!=AVIERR_OK) {au->iserr=true; return hr;}
  }

问题是我只能使用这种类型的编解码器,因为我安装了 DivX Player。安装播放器后,它似乎在我的系统中添加了一些用于 DivX 编解码器的库。如何在不安装任何媒体播放器的情况下获取这些库并将它们直接添加到我的项目中。

4

0 回答 0