Video

来源:互联网 发布:新浪微博数据库 编辑:程序博客网 时间:2024/04/29 16:16

p_af_AvSenderProj1.ocx    
   
  接口:    
   
  property   VideoIP:   WideString   dispid   18;//视频IP    
   
          property   AudioDrvIndex:   Integer   dispid   //19;音频IP    
   
          property   AudioFrameRate:   Integer   dispid   21;//音频采样速率默认为3    
   
          property   AudioIP:   WideString   dispid   22;//音频IP    
   
          property   AudioPort:   Integer   dispid   23;//音频端口    
   
          property   VideoDrv:   WideString   dispid   24;视频设备,默认为第一个视频设备    
   
          property   VideoMode:   Integer   dispid   25;//采样大小    
   
          property   VideoRate:   Integer   dispid   26;//码率    
   
          property   VideoFrameRate:   Integer   dispid   27;//采样频率    
   
          property   VideoPort:   Integer   dispid   28;   //视频端口    
   
          property   MaxKeyFrameInterval:   Integer   dispid   29;//关键帧最大间隔    
   
          function   ConnectDrv:   WordBool;   dispid   20;   //初始化视频采集设备    
   
          property   VideoConnected:   WordBool   readonly   dispid   33;   //设备已连接否    
   
          property   HasVideoDrv:   WordBool   readonly   dispid   34;//是否有至少一个视频设备    
   
          procedure   DlgVideoSource;   dispid   35;//显示视频设备对话框    
   
          function   OpenVideo:   WordBool;   dispid   36;//开始发送视频    
   
          procedure   CloseVideo;   dispid   37;//关闭视频发送    
   
          function   OpenAudio:   WordBool;   dispid   38;//开始发送音频    
   
          procedure   CloseAudio;   dispid   39;//关闭音频发送    
   
          procedure   InitParams;   dispid   30;//初始化参数,每次更改参数,必须调用该方法    
   
          property   MenuVisible:   WordBool   dispid   31;//是否显示右键菜单    
   
          property   HasAudioDrv:   WordBool   readonly   dispid   32;//是否有至少一个录音设备    
   
       
   
  示例A(以delphi为例):视频采集压缩及发送    
   
  procedure   TForm1.Button1Click(Sender:   TObject);    
   
  begin    
   
  if   af_AvSender1.HasVideoDrv   then     //是否有视频    
   
      begin    
   
          af_AvSender1.ConnectDrv;       //连接视频源    
   
          af_AvSender1.VideoIP   :=   '127.0.0.1';     //视频数据将发送到该IP    
   
          af_AvSender1.VideoPort   :=   8001;               //视频数据将发送到该端口    
   
          af_AvSender1.VideoMode   :=   0;    
   
  //采样大小:(vm160   =   0,   vm176,   vm320,   vm352,   vm640);    
   
          af_AvSender1.VideoRate   :=   1;    
   
  //码率(影响视频质量的关键参数)    
   
  //可选:1表示128K/秒(vr64,   vr128,   vr192,   vr256,   vr384,   vr512,   vr768,   vr1024);    
   
          af_AvSender1.VideoFrameRate   :=   5;     //帧速:5表示每秒钟5帧    
   
          af_AvSender1.MaxKeyFrameInterval   :=   10;    
   
  //关键帧最大间隔   :每10帧至少有一个关键帧     如果网络带宽大,但易丢包的话建议将此值设小。注意:如果关键帧丢失图像将停顿直到下一个关键帧到来    
   
      end;    
   
       
   
      af_AvSender1.AudioDrvIndex   :=   0;     //录音设备序号,0为第一个录音设备    
   
      af_AvSender1.AudioFrameRate   :=   3;   //默认    
   
      af_AvSender1.AudioIP   :=   '127.0.0.1';   //音频数据将发送到该IP    
   
      af_AvSender1.AudioPort   :=   8000;     //音频数据将发送到该端口    
   
       
   
      af_AvSender1.InitParams;             //初始化输入的参数,每次更改参数都需调用该方法    
   
         
   
        af_AvSender1.OpenVideo;       //开始发送视频    
   
        af_AvSender1.OpenAudio;     //开始发送音频    
   
  end;    
   
       
   
  示例B(以delphi为例):显示右键菜单    
   
        af_AvSender1.MenuVisible:=true;    
   
       
   
  示例C(以delphi为例):显示视频格式设置对话框    
   
      af_AvSender1.DlgVideoSource;    
     
  2、p_AF_AvReceiveProj1.ocx    
   
    接口:    
   
        property   UserID:   Integer   dispid   18;     //标识    
   
          property   LocalAudioPort:   Integer   dispid   19;//本地音频端口    
   
          property   LocalVideoPort:   Integer   dispid   20;//本地视频端口    
   
          property   AudioProviderIP:   WideString   dispid   21;//音频提供者IP    
   
          property   VideoProviderIP:   WideString   dispid   22;//视频提供者IP    
   
          property   AudioProviderPort:   Integer   dispid   23;//音频提供都端口    
   
          property   VideoProviderPort:   Integer   dispid   24;   //视频提供都端口    
   
       
   
          function   StartReceiveVideo:   WordBool;   dispid   25;//开始接收视频    
   
          procedure   StopReceiveVideo;   dispid   26;//停止接收视频    
   
          function   StartReceiveAudio:   WordBool;   dispid   27;//开始接收音频    
   
          procedure   StopReceiveAudio;   dispid   28;//停止接收音频    
   
         
   
        property   CountReceiveBits:   Integer   readonly   dispid   29;//共接收bit    
   
        property   ParentWidth:   Integer   dispid   30;     //窗口宽度    
   
          property   CountReceiveFrames:   Integer   readonly   dispid   31;//共接收了多少帧    
   
          property   RecFileName:   WideString   dispid   32;   //指定录象文件名称    
   
          procedure   InitReceive;   dispid   33;           //初始化接收参数    
   
       
   
        procedure   StartRec;   dispid   35;//开始录像    
   
          procedure   StopRec;   dispid   36;//停止录象    
   
          procedure   PauseRec;   dispid   37;//暂停录象    
   
          procedure   ResumRec;   dispid   38;//继续录象    
   
       
   
    示例A(delphi):接收一路视频及音频,并录象至’c:/t1.rec’文件中    
   
      with   AF_AVReceive1   do    
   
      begin    
   
          UserID   :=   1;    
   
          LocalAudioPort   :=   8000;    
   
          LocalVideoPort   :=   8001;    
   
       
   
          AudioProviderIP   :=   '127.0.0.1';    
   
          AudioProviderPort   :=   8000;    
   
       
   
          VideoProviderIP   :=   '127.0.0.1';    
   
          VideoProviderPort   :=   8001;    
   
       
   
          RecFileName   :=   'c:/t1.rec';    
   
          ParentWidth   :=   AF_AVReceive1.Width;    
   
       
   
          InitReceive;    
   
       
   
          StartReceiveVideo;    
   
          StartReceiveAudio;    
   
          StartRec;    
   
      end;    
   
       
     
  3、p_AF_PlayRecProj1.ocx    
   
  接口:    
   
        procedure   Play(const   ARecFileName:   WideString);   dispid   18;//播放录象文件    
   
          procedure   Stop;   dispid   19;//停止    
   
          procedure   Pause;   dispid   20;//暂停    
   
          procedure   Resume;   dispid   21;//继续    
   
          procedure   SaveToDibFile(const   ADibFileName:   WideString);   dispid   22;//抓取当前画面并存为DIB位图    
   
          procedure   Init;   dispid   23;   //初始化    
   
        procedure   RegFileType(const   FExt:   WideString;   const   fKey:   WideString;   const   fDesc:   WideString;const   fPrg:   WideString);   dispid   24;   //注册文件类型    
   
       
   
  示例A(以delphi为例):播放一个录象文件    
   
      AF_PlayRec1.Init;     //不要在OnCreate中执行Init,建议第一次play前执行    
   
      AF_PlayRec1.Play('c:/t1.rec');