p2pnet-meeting

所属分类:P2P编程
开发工具:Delphi
文件大小:3731KB
下载次数:32
上传日期:2012-04-19 17:07:49
上 传 者ruichimail
说明:  视频会议 一套可视化视频同步软件源码,请查看
(net meeting a viewable netmeeting source code)

文件列表:
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\KTAVMRecv.exe (462336, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\KTAVMSend.exe (503808, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Recv\KTAVMRecv.cfg (442, 2012-04-17)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Recv\KTAVMRecv.dof (3083, 2012-04-17)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Recv\KTAVMRecv.dpr (196, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Recv\KTAVMRecv.res (876, 2012-04-17)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Recv\Main.dfm (2735, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Recv\Main.pas (5620, 2007-10-07)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Send\KTAVMSend.dpr (227, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Send\Main.dfm (8462, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Send\Main.pas (14856, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Send\SetParam.dcu (2218, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Conference\ConfDemo.exe (542720, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter\KTAVMulticast.ax (592384, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter\Reg.bat (25, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter\REGSVR32.EXE (11024, 2003-06-20)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter\Unreg.bat (28, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter\『源码天空』.url (164, 2005-02-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter\使用说明.txt (1619, 2006-07-30)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter\免费『商业源码』.url (164, 2005-02-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm01.jpg (78397, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm02.jpg (73627, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm03.jpg (47875, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm04.jpg (36359, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm05.jpg (86433, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm06.jpg (39608, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm07.jpg (83716, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm08.jpg (39056, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm09.jpg (60619, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm10.jpg (48517, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\SendFilm11.jpg (65193, 2007-10-06)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\w.avi (2559540, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Recv (0, 2012-04-17)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource\Send (0, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\AppSource (0, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Conference (0, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141\Filter (0, 2007-10-08)
音视频完全同步的局域网组播DirectShow过滤器\200710916444141 (0, 2012-04-17)
音视频完全同步的局域网组播DirectShow过滤器 (0, 2012-04-16)
... ...

音视频完全同步的组播过滤器KTAVMulticast.ax 一、过滤器说明: KTAVMulticast.ax是一组基于DirectShow技术开发的音视频组播传输过滤器,包括音视 频组播发送KTAVMSender及音视频组播接收KTAVMReceiver两个Filter,可应用于局域网内实 时音视频及电影的组播与接收,也可以用于局域网视频会议、视频教学系统的开发。其接口 如下: 1. KTAVMSender:是一个Render型的Filter,用于音频或视频组播。 Delphi: CLSID_KTAVMSender: TGUID = '{5AF8DA7F-***8A-4783-B4A7-14AEA8658E10}'; //发送端回调接口 IKTAVMSenderCB = interface(IUnKnown) ['{2C0C7789-15D9-4178-A75B-2D184D5F3190}'] //输出内部控制数据,应传送到另一个KTAVMSender的函数InternalControl function OnInternalControl(FilterID: Integer; Data: PByte): HRESULT; stdcall; //输出传送帧速,Fps-帧/秒,Bps-字节/秒 function OnSendRate(FilterID, MajorMediaType, Fps, Bps: Integer): HRESULT; stdcall; end; IKTAVMSender = interface(IUnKnown) ['{5307A19B-313F-4475-A393-759F0C993B25}'] //设置授权码 function Authorise(Company, Code: PChar): HRESULT; stdcall; //设置组IP function SetMulticastIP(MulticastIP: PChar): HRESULT; stdcall; //取得组IP,默认是233.0.0.1 function GetMulticastIP(out MulticastIP: PChar): HRESULT; stdcall; //设置组播端口 function SetMulticastPort(MulticastPort: Integer): HRESULT; stdcall; //取得组播端口,默认是12700 function GetMulticastPort(out MulticastPort: Integer): HRESULT; stdcall; //取得本机所有网络适配器的IP地址,每个IP用回车换行符分隔 function GetLocalIPs(out LocalIPs: PChar): HRESULT; stdcall; //设置本机局域网IP(应在GetLocallIPs取得的列表中选取) function SetLocalIP(LocalIP: PChar): HRESULT; stdcall; //取得本机局域网IP,默认是127.0.0.1 function GetLocalIP(out LocalIP: PChar): HRESULT; stdcall; //设置应用程序识别码,只有相同识别码的程序能互相识别,处理数据 function SetAppID(AppID: Word): HRESULT; stdcall; //设置本发送端用户标识 function SetUserID(UserID: Integer): HRESULT; stdcall; //取得本发送端用户标识,默认是1000 function GetUserID(out UserID: Integer): HRESULT; stdcall; //设置本Filter所组播的媒体类型:0-视频;1-音频,默认是0 function SetMajorMediaType(MajorMediaType: Integer): HRESULT; stdcall; //取得本Filter正组播的媒体类型 function GetMajorMediaType(out MajorMediaType: Integer): HRESULT; stdcall; //设置传输模式:0-实时传送;1-传送电影,默认是0 function SetTransmissionMode(TransmissionMode: Integer): HRESULT; stdcall; //取得当前传输模式 function GetTransmissionMode(out TransmissionMode: Integer): HRESULT; stdcall; //设置回调函数,FilterID用于本Filter在应用程序中的唯一识别码 function SetCallback(Callback: IKTAVMSenderCB; FilterID: Integer): HRESULT; stdcall; //用于内部控制,输入另一个KTAVMSender回调函数中输出的数据 function InternalControl(Data: PByte): HRESULT; stdcall; //组播用户的普通数据 function MulticastData(Data: PByte; DataLen: Integer): HRESULT; stdcall; end; VC++: DEFINE_GUID(CLSID_KTAVMSender, 0x5AF8DA7F, 0x***8A, 0x4783, 0xB4, 0xA7, 0x14, 0xAE, 0xA8, 0x65, 0x8E, 0x10); EXTERN_GUID(IID_IKTAVMSenderCB, 0x2C0C7789, 0x15D9, 0x4178, 0xA7, 0x5B, 0x2D, 0x18, 0x4D, 0x5F, 0x31, 0x90); MIDL_INTERFACE("2C0C7789-15D9-4178-A75B-2D184D5F3190") IKTAVMSenderCB : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE OnInternalControl(int FilterID, char *Data) = 0; virtual HRESULT STDMETHODCALLTYPE OnSendRate(int FilterID, int MajorMediaType, itn Fps, int Bps) = 0; }; EXTERN_GUID(IID_IKTAVMSender, 0x5307A19B, 0x313F, 0x4475, 0xA3, 0x93, 0x75, 0x9F, 0x0C, 0x99, 0x3B, 0x25); MIDL_INTERFACE("5307A19B-313F-4475-A393-759F0C993B25") IKTAVMSender : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Authorise(char *Company, char *Code) = 0; virtual HRESULT STDMETHODCALLTYPE SetMulticastIP(char *MulticastIP) = 0; virtual HRESULT STDMETHODCALLTYPE GetMulticastIP(/* [out] */ char **MulticastIP) = 0; virtual HRESULT STDMETHODCALLTYPE SetMulticastPort(int MulticastPort) = 0; virtual HRESULT STDMETHODCALLTYPE GetMulticastPort(/* [out] */ int *MulticastPort) = 0; virtual HRESULT STDMETHODCALLTYPE GetLocalIPs(/* [out] */ char **LocalIPs) = 0; virtual HRESULT STDMETHODCALLTYPE SetLocalIP(char *LocalIP) = 0; virtual HRESULT STDMETHODCALLTYPE GetLocalIP(/* [out] */ char **LocalIP) = 0; virtual HRESULT STDMETHODCALLTYPE SetAppID(WORD AppID) = 0; virtual HRESULT STDMETHODCALLTYPE SetUserID(int UserID) = 0; virtual HRESULT STDMETHODCALLTYPE GetUserID(/* [out] */ int *UserID) = 0; virtual HRESULT STDMETHODCALLTYPE SetMajorMediaType(int MediaType) = 0; virtual HRESULT STDMETHODCALLTYPE GetMajorMediaType(/*[out]*/ int *MediaType) = 0; virtual HRESULT STDMETHODCALLTYPE SetTransmissionMode(int TransmissionMode) = 0; virtual HRESULT STDMETHODCALLTYPE GetTransmissionMode(/*[out]*/ int *TransmissionMode) = 0; virtual HRESULT STDMETHODCALLTYPE SetCallback(IKTAVMSenderCB *Callback, int FilterID) = 0; virtual HRESULT STDMETHODCALLTYPE InternalControl(char *Data) = 0; virtual HRESULT STDMETHODCALLTYPE MulticastData(char *Data, int DataLen) = 0; }; 2. KTAVMReceiver:是一个Source型的Filter,用于音视频接收。 Delphi: CLSID_KTAVMReceiver: TGUID = '{2AE139CE-46B1-47C6-A56D-291CD6C2F84F}'; //接收端的回调接口 IKTAVMReceiverCB = interface(IUnknown) ['{70C3BCA5-B715-4487-AA38-00ED892DF682}'] //用于Render输出脚Output function OnRender(FilterID, MajorMediaType, TransmissionMode: Integer; Output: IPin): HRESULT; stdcall; //用于播放本Filter Graph function OnRun(FilterID: Integer): HRESULT; stdcall; //用于停止本Filter Graph并清除所有其它的Filter function OnStop(FilterID: Integer): HRESULT; stdcall; //指示音视频缓冲进度,0~100 function OnFillBuffer(FilterID, PercentFill: Integer): HRESULT; stdcall; //输出接收帧速 function OnRecvRate(FilterID, MajorMediaType, Fps, Bps: Integer): HRESULT; stdcall; //输出接收到的用户普通数据 function OnRecvData(FilterID, FromUserID: Integer; Data: PByte; DataLen: Integer): HRESULT; stdcall; end; IKTAVMReceiver = interface(IUnknown) ['{A8674DF5-15B5-40E2-99E0-9B5B***A1BB40}'] function Authorise(Company, Code: PChar): HRESULT; stdcall; function SetMulticastIP(MulticastIP: PChar): HRESULT; stdcall; function GetMulticastIP(out MulticastIP: PChar): HRESULT; stdcall; function SetMulticastPort(MulticastPort: Integer): HRESULT; stdcall; function GetMulticastPort(out MulticastPort: Integer): HRESULT; stdcall; function GetLocalIPs(out LocalIPs: PChar): HRESULT; stdcall; function SetLocalIP(LocalIP: PChar): HRESULT; stdcall; function GetLocalIP(out LocalIP: PChar): HRESULT; stdcall; //设置网络组播接收器状态,Active:TRUE为开始接收,FALSE为停止接收,默认Filter创建时为TRUE function SetActive(Active: Bool): HRESULT; stdcall; //取得网络组播接收器状态 function GetActive(out Active: Bool): HRESULT; stdcall; function SetAppID(AppID: Word): HRESULT; stdcall; function SetUserID(UserID: Integer): HRESULT; stdcall; function GetUserID(out UserID: Integer): HRESULT; stdcall; function SetCallback(Callback: IKTAVMReceiverCB; FilterID: Integer): HRESULT; stdcall; end; VC++: DEFINE_GUID(CLSID_KTAVMReceiver, 0x2AE139CE, 0x46B1, 0x47C6, 0xA5, 0x6D, 0x29, 0x1C, 0xD6, 0xC2, 0xF8, 0x4F) EXTERN_GUID(IID_IKTAVMReceiverCB, 0x70C3BCA5, 0xB715, 0x4487, 0xAA, 0x38, 0x00, 0xED, 0x89, 0x2D, 0xF6, 0x82) MIDL_INTERFACE("70C3BCA5-B715-4487-AA38-00ED892DF682") IKTAVMReceiverCB : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE OnRender(int FilterID, int MajorMediaType, int TransmissionMode, *IPin Output) = 0; virtual HRESULT STDMETHODCALLTYPE OnRun(int FilterID) = 0; virtual HRESULT STDMETHODCALLTYPE OnStop(int FilterID) = 0; virtual HRESULT STDMETHODCALLTYPE OnFillBuffer(int FilterID, int PercentFill) = 0; virtual HRESULT STDMETHODCALLTYPE OnRecvRate(int FilterID, int MajorMediaType, int Fps, int Bps) = 0; virtual HRESULT STDMETHODCALLTYPE OnRecvData(int FilterID, int FromUserID; char *Data, int DataLen) = 0; }; EXTERN_GUID(IID_IKTAVMReceiver, 0xA8674DF5, 0x15B5, 0x40E2, 0x99, 0xE0, 0x9B, 0x5B, 0x***, 0xA1, 0xBB, x040); MIDL_INTERFACE("A8674DF5-15B5-40E2-99E0-9B5B***A1BB40") IKTAVMReceiver : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Authorise(char *Company, char *Code) = 0; virtual HRESULT STDMETHODCALLTYPE SetMulticastIP(char *MulticastIP) = 0; virtual HRESULT STDMETHODCALLTYPE GetMulticastIP(/* [out] */ char **MulticastIP) = 0; virtual HRESULT STDMETHODCALLTYPE SetMulticastPort(int MulticastPort) = 0; virtual HRESULT STDMETHODCALLTYPE GetMulticastPort(/* [out] */ int *MulticastPort) = 0; virtual HRESULT STDMETHODCALLTYPE GetLocalIPs(/* [out] */ char **LocalIPs) = 0; virtual HRESULT STDMETHODCALLTYPE SetLocalIP(char *LocalIP) = 0; virtual HRESULT STDMETHODCALLTYPE GetLocalIP(/* [out] */ char **LocalIP) = 0; virtual HRESULT STDMETHODCALLTYPE SetActive(BOOL Active) = 0; virtual HRESULT STDMETHODCALLTYPE GetActive(/* [out] */ BOOL *Active) = 0; virtual HRESULT STDMETHODCALLTYPE SetAppID(WORD AppID) = 0; virtual HRESULT STDMETHODCALLTYPE SetUserID(int UserID) = 0; virtual HRESULT STDMETHODCALLTYPE GetUserID(/* [out] */ int *UserID) = 0; virtual HRESULT STDMETHODCALLTYPE SetCallback(IKTAVMReceiverCB *Callback, int FilterID) = 0; }; 二、简要说明: 1. 注册Filter: 使用KTAVMulticast.ax前请先用压缩包里的Reg.bat对其进行注册,注册后在DirectShow Filters里会出现KTAVMSender Filter及KTAVMReceiver Filter两个Filter。 2. 在GraphEdit里测试: 参考图SendFilm01.jpg至图SendFilm11.jpg并按其说明步骤来做。传送实时音视频的方法 与此类似。 3. 编程: 参考AppSource里的Send及Recv文件夹中的源码来实现。更复杂一点的应用请参考Conference 文件夹中的视频会议演示程序(源码经授权后才提供)。 4. 视频会议演示程序: Conference目录下有个简单的5人视频会议的演示程序,这个程序就是使用这个Filter所写。 测试时可以在局域网多台不同的机器上运行,先对应设好各个用户的ID,1001至1005(注意:ID 不能重复),并选择好本机所在的局域网IP地址,点“实时传送”按钮后,所有在“远程”页里 选择了该用户ID的视频就能收到和显示了(双击各视频可切换到全屏模式),也能听到传来的麦 克风的声音,本程序的实时传送的视频使用XVID作为压缩器,因此运行前需安装XVID;点“电 影传送”按钮并选择电影文件后,电影的音视频就会组播出去,其它用户就会收看到了。 三、版权说明: 本组播过滤器为共享软件,版权归开发者所有,凭授权可无任何限制使用;未经授权可随 意发布并仅可用于测试使用;任何情况下均不允许随意修改。 QQ:93202767(网上飘)

近期下载者

相关文件


收藏者