亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? main.~pas

?? xvid庫(kù)調(diào)用來(lái)壓縮視頻編碼實(shí)例
?? ~PAS
字號(hào):
unit main;

interface

uses   
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DSUtil, StdCtrls, DSPack, DirectShow9, Menus, ExtCtrls,lib_xvid;

type
  TVideoForm = class(TForm)
    FilterGraph: TFilterGraph;
    VideoWindow: TVideoWindow;
    MainMenu1: TMainMenu;
    Devices: TMenuItem;
    Filter: TFilter;
    Image: TImage;
    SampleGrabber: TSampleGrabber;
    SnapShot: TButton;
    CallBack: TCheckBox;
    mmo1: TMemo;
    lbl1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure SnapShotClick(Sender: TObject);
    procedure SampleGrabberBuffer(sender: TObject; SampleTime: Double;
      pBuffer: Pointer; BufferLen: Integer);
  private
    // XVID ENCODER
    xvid_gbl: xvid_gbl_init_t;
    xvid_enc     : xvid_enc_create_t;
    xvid_encFrame: xvid_enc_frame_t;
    xvid_encStats: xvid_enc_stats_t;

    xVid_decode  : xvid_dec_create_t;
    xvid_decFrame: xvid_dec_frame_t;
    xvid_decStats: xvid_dec_stats_t;    
  public
    procedure OnSelectDevice(sender: TObject);
  end;

const
   MaxPixelCount = 65536;
type
   //Pf24bit真彩色位圖像素?cái)?shù)據(jù)結(jié)構(gòu)體
   pRGBTripleArray = ^TRGBTripleArray;
   TRGBTripleArray = array[0..MaxPixelCount - 1] of TRGBTriple;
var
  VideoForm: TVideoForm;
  SysDev: TSysDevEnum;
  FrameBuf:array [0..352*288*3 ] of Byte;
  FrameImg:array [0..352*288*3 ] of Byte;
  FrameSequece : LongWord= 0;
  spf:TFileStream;
  xvid_Version:Integer;
implementation

{$R *.dfm}

procedure TVideoForm.FormCreate(Sender: TObject);
var
  i: integer;
  Device: TMenuItem;
begin
  xvid_Version :=XVID_MAKE_VERSION(1,1,0);
  SysDev:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
  if SysDev.CountFilters > 0 then
    for i := 0 to SysDev.CountFilters - 1 do
    begin
      Device := TMenuItem.Create(Devices);
      Device.Caption := SysDev.Filters[i].FriendlyName;
      Device.Tag := i;
      Device.OnClick := OnSelectDevice;
      Devices.Add(Device);
    end;
end;

procedure TVideoForm.OnSelectDevice(sender: TObject);
begin
  FilterGraph.ClearGraph;
  FilterGraph.Active := false;
  Filter.BaseFilter.Moniker := SysDev.GetMoniker(TMenuItem(Sender).tag);
  FilterGraph.Active := true;
  with FilterGraph as ICaptureGraphBuilder2 do
  begin
    RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter as IBaseFilter, SampleGrabber as IBaseFilter, VideoWindow as IbaseFilter);
  end;
  try
      //XVID庫(kù)初始化操作
      xvid_gbl.version := xvid_Version;    //Version:1.1.0
      xvid_gbl.cpu_flags := 0; //Word(XVID_CPU_FORCE or XVID_CPU_ASM);//0:自動(dòng)檢查CPU,XVID_CPU_FORCE:強(qiáng)制使用ASM匯編優(yōu)化
      xvid_gbl.debug := 0;     //調(diào)試級(jí)別

      //初始化編解碼
      xvid_global(nil, XVID_GBL_INIT, @xvid_gbl, nil);

      // XVID編碼器初始化
      xvid_enc.version := xvid_Version;
      //編碼器參數(shù)
      xvid_enc.global := XVID_GLOBAL_PACKED;   //全局標(biāo)志
      xvid_enc.width := 320;  //壓縮視頻寬度
      xvid_enc.height := 240; //壓縮視頻高度
      xvid_enc.fbase := 3;    //基本幀率/每秒  = fbase * 10 = 30
      xvid_enc.fincr := 1;    //幀率增長(zhǎng)步長(zhǎng),0:可變步長(zhǎng),>1實(shí)際增長(zhǎng)步長(zhǎng)
      xvid_enc.profile := XVID_PROFILE_AS_L4; //壓縮級(jí)別,MPEG4-ASP最高壓縮級(jí)別
      xvid_enc.max_key_interval := 0;  //最大關(guān)鍵幀間隔
      xvid_enc.frame_drop_ratio := 0;  //丟幀率;0~100
      xvid_enc.max_bframes := 0; //是否采用B幀,一般采用I,P幀,如果1=PB幀
      xvid_enc.bquant_offset := 0;
      xvid_enc.bquant_ratio := 0;

      //創(chuàng)建編碼器
      xvid_encore(nil, XVID_ENC_CREATE, @xvid_enc, nil);
      //初始化壓縮數(shù)據(jù)幀結(jié)構(gòu)
      xvid_encFrame.version := xvid_Version;
      // --- VOL FLAGS
      xvid_encFrame.vol_flags := 0;
      xvid_encFrame.vol_flags := xvid_encFrame.vol_flags or XVID_VOL_MPEGQUANT OR XVID_VOL_QUARTERPEL OR XVID_VOL_GMC;
      //xvid_encFrame.vol_flags := xvid_encFrame.vol_flags OR XVID_VOL_MPEGQUANT;  //允許MPEG量化
      //xvid_encFrame.vol_flags := xvid_encFrame.vol_flags OR XVID_VOL_GMC;        //允許GMC
      //xvid_encFrame.vol_flags := xvid_encFrame.vol_flags OR XVID_VOL_QUARTERPEL; //采用1/4像素運(yùn)算
      // --- VOP FLAGS
      xvid_encFrame.vop_flags := 0;
      xvid_encFrame.vop_flags := xvid_encFrame.vop_flags or XVID_VOP_CHROMAOPT ;
      xvid_encFrame.motion := 0;  //運(yùn)動(dòng)標(biāo)識(shí)
      xvid_encFrame.quant := 0; //質(zhì)量控制=量化參數(shù),0~31,數(shù)值越小質(zhì)量越高

      xvid_encFrame.coding_type := XVID_TYPE_AUTO;  //XVID_TYPE_AUTO=讓編碼器自動(dòng)決定,I幀編碼是關(guān)鍵幀,P幀編碼是幀內(nèi)預(yù)測(cè)

      //圖像壓縮編碼
      xvid_encStats.version := xvid_Version;

      // XVID解碼器初始化
      xVid_decode.version := xvid_Version;
      xVid_decode.width := 320;
      xVid_decode.height := 240;

      //創(chuàng)建解碼器
      xvid_decore(xVid_decode.handle,XVID_DEC_CREATE,@xVid_decode, nil);

      spf := TFileStream.Create('c:\test.mp4',fmCreate or fmOpenReadWrite);
  except
    Exit;
  end;
  FilterGraph.Play;
end;

procedure TVideoForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CallBack.Checked := False;
  SysDev.Free;
  FilterGraph.ClearGraph;
  FilterGraph.Active := false;
  //關(guān)閉編解碼器
  xvid_encore(xvid_enc.handle,XVID_ENC_DESTROY, @xvid_enc, nil);
  xvid_decore(xVid_decode.handle,XVID_DEC_DESTROY,@xvid_decode,nil);
end;

procedure TVideoForm.SnapShotClick(Sender: TObject);
begin
  SampleGrabber.GetBitmap(Image.Picture.Bitmap);
end;

procedure TVideoForm.SampleGrabberBuffer(sender: TObject;
  SampleTime: Double; pBuffer: Pointer; BufferLen: Integer);
var
  SpBmp:TBitmap;
  BmpLineData:prgbtriplearray;
  yCount,uCount,vCount:Integer;
  Row,Col:Integer;
  Ret:Integer;
begin
  if CallBack.Checked then
  begin
    try
      xvid_encFrame.bitstream := @FrameBuf[0];
      xvid_encFrame.length := BufferLen;
      xvid_encFrame.input.csp := XVID_CSP_BGR; //輸入是rgb位圖
      xvid_encFrame.input.plane[0] := pBuffer; //RGB位圖數(shù)據(jù),每個(gè)像素有3個(gè)字節(jié)
      xvid_encFrame.input.stride[0] := 320 * 3; //每行字節(jié)數(shù)

      //開(kāi)始?jí)嚎s
      //Ret := xvid_encore(xvid_enc.handle, XVID_ENC_ENCODE, @xvid_encFrame,@xvid_encStats); //返回編碼之后的字節(jié)
      Ret := xvid_encore(xvid_enc.handle, XVID_ENC_ENCODE, @xvid_encFrame,nil); //返回編碼之后的字節(jié)
      spf.Write(FrameBuf,Ret);
      mmo1.Lines.Add('Codec_num=' + IntToStr(FrameSequece) + ' Len=' + IntToStr(Ret));
      Inc(FrameSequece);


      //實(shí)時(shí)解碼部分
      if Ret > 0 then
      begin
        try
            SpBmp := TBitmap.Create;
            SpBmp.PixelFormat := pf24bit;

            //初始化解碼數(shù)據(jù)幀結(jié)構(gòu)
            xvid_decFrame.version := xvid_Version;
            xvid_decFrame.general := 0;
            xvid_decFrame.bitstream := @FrameBuf[0];   //輸入解壓的位流
            xvid_decFrame.length := Ret;               //輸入位流長(zhǎng)度
            xvid_decFrame.output.csp := XVID_CSP_I420; //色彩空間
            xvid_decFrame.output.plane[0] := @FrameImg[0];   //解壓后輸出的緩沖區(qū)
            xvid_decFrame.output.stride[0] := 320 * 3;           //每行字節(jié)數(shù)
            ret := xvid_decore(xVid_decode.handle , XVID_DEC_DECODE, @xvid_decFrame, nil);
            if ret > 0 then
            begin
               //SampleGrabber.GetBitmap(SpBmp, @FrameImg, ret); //捕獲原始bmp位圖
               //Image.Canvas.Draw(0,0,SpBmp);
               mmo1.Lines.Add('decode_num=' + IntToStr(FrameSequece) + ' Len=' + IntToStr(Ret));
            end;
        finally
          SpBmp.Free;
        end;
      end else begin

      end;
       
    except

    end;
  end;
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级资源在线| eeuss影院一区二区三区| 日韩精品资源二区在线| 国产乱人伦精品一区二区在线观看| 夜夜亚洲天天久久| 欧美日韩高清一区| 精品一区二区三区香蕉蜜桃| 亚洲国产精品成人综合| 91麻豆产精品久久久久久| 性做久久久久久久免费看| 欧美一区二区视频在线观看| 国产在线精品免费| 亚洲婷婷在线视频| 91精品国产一区二区人妖| 国产一区 二区| 亚洲另类一区二区| 日韩一区二区免费电影| 成人aa视频在线观看| 亚洲国产精品一区二区www| 精品少妇一区二区三区在线播放| 成人免费福利片| 日本中文字幕不卡| 综合亚洲深深色噜噜狠狠网站| 在线播放91灌醉迷j高跟美女 | 久久国产精品区| 中文字幕 久热精品 视频在线| 成人白浆超碰人人人人| 天天综合色天天综合色h| 久久久久国产精品麻豆ai换脸| 一本久久a久久精品亚洲| 日本不卡一区二区三区| 中文字幕av资源一区| 在线不卡免费av| 91亚洲精品久久久蜜桃网站| 久久超碰97人人做人人爱| 亚洲视频免费在线观看| 91精品欧美久久久久久动漫| 91在线无精精品入口| 青青草精品视频| 一区二区三区四区不卡在线| 久久久久国产精品免费免费搜索| 欧美三级电影网| youjizz国产精品| 精油按摩中文字幕久久| 亚洲成人先锋电影| 亚洲蜜臀av乱码久久精品| 精品国偷自产国产一区| 色噜噜狠狠成人中文综合| 丁香天五香天堂综合| 日本91福利区| 自拍偷拍欧美激情| 国产日韩精品视频一区| 欧美一区二区在线观看| 国产999精品久久| 激情五月激情综合网| 免费高清在线视频一区·| 亚洲精品国产一区二区三区四区在线 | 国产欧美一区二区精品秋霞影院 | 国产精品资源网| 麻豆91精品视频| 日韩主播视频在线| 天堂va蜜桃一区二区三区| 亚洲一二三四久久| 亚洲宅男天堂在线观看无病毒| 亚洲天堂2016| 亚洲美女屁股眼交3| 综合激情网...| 国产精品嫩草影院com| 日日夜夜一区二区| 亚洲国产一二三| 亚洲成av人片一区二区梦乃| 一区二区国产盗摄色噜噜| 亚洲欧美另类在线| 亚洲精品欧美在线| 亚洲免费观看高清在线观看| 日韩伦理免费电影| 亚洲日本一区二区三区| 亚洲欧洲国产日韩| 国产女人18毛片水真多成人如厕| 精品国产sm最大网站免费看| 精品88久久久久88久久久| 久久综合精品国产一区二区三区| 欧美精品一区二区三区蜜桃视频 | 国v精品久久久网| 成人手机在线视频| aaa国产一区| 在线观看视频一区二区欧美日韩| 欧美色窝79yyyycom| 91麻豆文化传媒在线观看| 一本到不卡精品视频在线观看| 91福利小视频| 51精品国自产在线| 精品国产乱码久久久久久蜜臀| 久久久综合激的五月天| 国产精品超碰97尤物18| 夜夜精品视频一区二区 | av成人动漫在线观看| 日本精品一区二区三区四区的功能| 在线看国产一区二区| 欧美一区二区视频在线观看2022 | 五月天亚洲婷婷| 视频精品一区二区| 国产乱码精品1区2区3区| 成人av免费观看| 欧洲一区在线观看| 日韩一本二本av| 国产精品区一区二区三| 亚洲一区二区三区四区五区黄 | 夜色激情一区二区| 全国精品久久少妇| 大胆欧美人体老妇| 欧美视频三区在线播放| 久久人人爽爽爽人久久久| 亚洲男同性视频| 久久99久久99小草精品免视看| 岛国精品一区二区| 欧美日韩国产免费一区二区 | 天天免费综合色| 国产成人免费在线| 欧美色综合久久| 国产精品视频线看| 亚洲va欧美va人人爽午夜| 国产寡妇亲子伦一区二区| 欧美在线观看18| 国产女主播一区| 日本不卡一二三| 色综合天天性综合| 亚洲一区二区三区中文字幕| 激情综合色播激情啊| 欧美日韩免费一区二区三区| 欧美mv日韩mv亚洲| 亚洲美女屁股眼交| 岛国精品一区二区| 欧美大胆一级视频| 亚洲chinese男男1069| 成人激情免费视频| 欧美一级日韩免费不卡| 亚洲柠檬福利资源导航| 国产精品亚洲视频| 777午夜精品免费视频| 亚洲三级久久久| 国产成人免费视频网站| 欧美成人午夜电影| 日本不卡高清视频| 欧美日本不卡视频| 一级特黄大欧美久久久| 99麻豆久久久国产精品免费| 久久品道一品道久久精品| 免费的国产精品| 56国语精品自产拍在线观看| 一区二区三区在线视频播放| av网站一区二区三区| 久久嫩草精品久久久久| 麻豆91在线播放免费| 欧美精品1区2区| 亚洲国产综合人成综合网站| 91理论电影在线观看| 国产一区二区精品久久99| 日韩亚洲欧美综合| 日韩成人一级大片| 91精品国产一区二区人妖| 午夜电影一区二区三区| 欧美日韩视频在线一区二区| 日本视频中文字幕一区二区三区 | www国产成人| 成人一区二区三区中文字幕| 国产精品久久久久久久第一福利 | 欧美视频一区在线| 日韩1区2区日韩1区2区| 精品国产91亚洲一区二区三区婷婷| 狠狠色丁香久久婷婷综合_中| 国产亲近乱来精品视频| 色综合中文字幕国产 | 亚洲电影中文字幕在线观看| 欧美精品视频www在线观看| 久久精品久久精品| 欧美国产日产图区| 在线视频中文字幕一区二区| 天堂一区二区在线免费观看| 精品日韩成人av| 99视频一区二区| 日韩高清中文字幕一区| 精品国产一区二区三区四区四 | 欧美性受xxxx黑人xyx| 欧美aⅴ一区二区三区视频| 久久久91精品国产一区二区三区| av不卡在线观看| 奇米一区二区三区av| 中文字幕av一区 二区| 欧美日韩成人激情| 国产福利一区在线| 亚洲成人免费在线| 欧美国产丝袜视频| 欧美高清视频不卡网| 成人自拍视频在线| 日本不卡的三区四区五区| 国产精品日韩精品欧美在线| 欧美一区二区美女| 一本到不卡精品视频在线观看| 久久精品国产免费|