全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2518
推到 Plurk!
推到 Facebook!

如何在Directshow中使用Xvid进行视频压缩?

尚未結案
killghost
一般會員


發表:14
回覆:21
積分:7
註冊:2004-04-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-01 12:19:03 IP:218.88.xxx.xxx 未訂閱
想请教一下各位,如何在Dspack中采用Xvid压缩算法? 希望有人能够指点一二!如果有示例程序更好!谢谢先!
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-01 17:52:25 IP:219.134.xxx.xxx 未訂閱
....我刚刚弄错主题了。。。 發表人 - japhenchen 於 2004/12/01 17:53:51
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-01 18:13:46 IP:219.134.xxx.xxx 未訂閱
你把DSPack2.34版的Demo\D6-D7\VideoCap调出来,在上面放置一个新的TFilter(DSPACK里的)控件,属性name设成VCompFilter, 属性FilterGraph留空,属性BaseFilter点击...进去选择你要用的压缩插件,XVID放在VideoCompressors的项目分类里,完整名称应该是XviD MPEG-4 Codec,选定后点击OK回到Form画面    主要Form的左下方有个Start的Button,把OnClick的事件调出来,会看到里面有一行注解着//Connect Video preview (VideoWindow)的RenderStream的过程
  // now render streams
  with CaptureGraph as IcaptureGraphBuilder2 do
  begin
    // set the output filename
    SetOutputFileName(MEDIASUBTYPE_Avi, PWideChar(CapFile), multiplexer, Writer);        // Connect Video preview (VideoWindow)
    if VideoSourceFilter.BaseFilter.DataLength > 0 then
      RenderStream(@PIN_CATEGORY_PREVIEW, nil, VideoSourceFilter as IBaseFilter,
        nil , VideoWindow as IBaseFilter);        // Connect Video capture streams
    if VideoSourceFilter.FilterGraph <> nil then
      RenderStream(@PIN_CATEGORY_CAPTURE, nil, VideoSourceFilter as IBaseFilter,
        nil, multiplexer as IBaseFilter);        // Connect Audio capture streams
    if AudioSourceFilter.FilterGraph <> nil then
    begin          RenderStream(nil, nil, AudioSourceFilter as IBaseFilter,
        nil, multiplexer as IBaseFilter);
    end;
  end;
把这两行红色RenderStream的第四个参数nil改成VCompFilter as IBaseFilter,然后编译这个程序。。。就可以达到你要的功能了 許下第一千零一個願望 有一天幸福會聽我的話
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-01 18:20:49 IP:219.134.xxx.xxx 未訂閱
他会把你的摄像头还有麦克风所录下的视频压缩成XviD MPEG4的格式,声频使用默认(我们没指定),然后合流放置在我们在Capture file的Button设置的文件位置里(通常是AVI扩展文件名)。。你会发现,文件变得比我们没有指定XviD前还小,大概可以省下40%的硬盘空间 許下第一千零一個願望 有一天幸福會聽我的話
killghost
一般會員


發表:14
回覆:21
積分:7
註冊:2004-04-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-08 12:06:59 IP:218.88.xxx.xxx 未訂閱
谢谢japhenchen的回复! 不过,我测试的时候遇到了几个问题: 1 如果VCompFilter.FilterGraph='' ,运行时候将提示接口支持! 2 我将这个值设置以后,并按照你的方法修改后,可以正常编译和运行。但是最后要所的AVI文件在MediaPlayer中播放是时候什么也看不到。 新的问题:如果我要传输这个压缩的数据,应该如何做呢? 再次感谢japhenchen!
Azote
一般會員


發表:6
回覆:4
積分:2
註冊:2004-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-04 12:08:56 IP:218.78.xxx.xxx 未訂閱
如何同时压缩音频呀? 用同样的方法没有声音的
系統時間:2024-03-29 1:36:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!