博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
zz
weiliming.cublog.cn
管理博客
发表文章
留言
收藏夹
· 编程
· 多媒体
}
· Direcshow
博客圈
音乐
· 我喜欢
相册
文章
· 生活
· 编程
}
· asp.net
· c/c++
}
· BCB
· VC
· 算法
· 网络
· LTI
· Meshlab
· vcf
· VCG
· wix
· 数据库
· UML
· Matlab
· 命令行
· 编程工具
· 多媒体
}
· Direcshow
· DirecX
· software
· 未整理
首页
关于作者
姓名: 职业: 年龄: 位置: 个性介绍:
||
<<
>>
||
我的分类
文章列表 - 多媒体
DirectShow的中文资料之设备列举和捕捉接口
<P class=MsoNormal style="MARGIN: 6pt 12pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">这篇解释和示例如何通过</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma; mso-font-kerning: 0pt">DirectShow</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">的接口去初始化和访问系统的硬件设备。代表性的,</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Tahoma; mso-font-kerning: 0pt">DirectShow</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">应用程序使用下面类型的硬件。</SPAN><SPAN style="F……
查看全文
发表于:2008-05-27 ┆
阅读(87)
┆
评论(0)
DirectShow的中文资料之建立一个捕捉程序 zz
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10.5pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 1.0" align=left><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">在看</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">DXSDK\Samples\C++\DirectShow\Capture\AMCap</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-ascii-font-family: Tahoma; mso-hansi-font-family: Tahoma; mso-bidi-font-family: Tahoma">工程时,发现了这个,于是把它转载过来了</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Verdana; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: Tahoma"><BR><BR><SPAN style="mso-spacerun: yes"> </SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: Tahoma; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt……
查看全文
发表于:2008-05-27 ┆
阅读(87)
┆
评论(0)
用DirectShow实现QQ的音视频聊天功能 zz
<DIV><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 18.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-weight: bold"> 眼下比较流行的即时通信工具,比如<SPAN lang=EN-US>MSN</SPAN>,<SPAN lang=EN-US>QQ</SPAN>等都实现了视音频的功能,通过视频,音频,我们可以更好的和朋友通过网络进行沟通,本文通过<SPAN lang=EN-US>DirectShow</SPAN>技术模拟<SPAN lang=EN-US>QQ</SPAN>实现了视频和音频的采集,传输,基本实现了<SPAN lang=EN-US>QQ</SPAN>的视音频聊天的功能。<SPAN lang=EN-US> <BR><BR></SPAN> 网络视音频系统主要功能就在于视音频的采集,网络传输两个方面,通过<SPAN lang=EN-US>Video Capture</SPAN>系列<SPAN lang=EN-US>API</SPAN>函数,你就可以轻松的搞定视频捕捉,但是对于视频的网络传输,则要费一番功夫了。 对于视音频数据的传输,只简单地使用数据报套接字传输音视频数据是不可行的,还必须在<SPAN lang=EN-US>UDP</SPAN>层上采用<SPAN lang=EN-US>RTP</SPAN>(实时传输协议)和<SPAN lang=EN-US>RTCP</SPAN>(实……
查看全文
发表于:2008-03-10 ┆
阅读(117)
┆
评论(0)
DirectShow的一个捕捉程序 zz
<FONT face=Tahoma size=2>DirectShow 提供了用应用程序从适当的硬件中捕捉和预览音/视频的能力。数据源包括:VCR,camera,TV tuner,microphone,或其他的数据源。一个应用程序可以立刻显示捕捉的数据(预览),或是保存到一个文件中。</FONT> <P><FONT face=Tahoma size=2>在这个例子中,ICaptureGraphBuilder 接口是处理捕捉工作的主要接口。你可以在你自己的捕捉程序中使用同样的方法和接口。在这里主要讨论ICaptureGraphBuilder 如何执行音/视频的捕捉。我们假设你已经熟悉了DirectShow的filter graph的体系和一般的capture filter graph的结构(可以参考DirectShow基础指南)。</FONT></P> <P><FONT face=Tahoma size=2>ICaptureGraphBuilder 接口提供了一个filter graph builder对象,让你的应用程序在建立capture filter graph时,省去处理很多单调乏味的工作,集中精力于捕捉中。他提供的方法满足了基本的捕捉和预览功能的要求。</FONT></P> <P><FONT face=Tahoma size=2>方法FindInterface ,在filter graph中查找一个于捕捉有关的详细的接口。使的你可以访问一个详细接口的功能,而不需要你去列举在filter graph中的pins 和 filters。<BR>方法RenderStream ,连接源过……
查看全文
发表于:2008-03-10 ┆
阅读(108)
┆
评论(0)
DirectX 9 SDK for Borland C++ Builder zz
<DIV> <DIV class=date>2008-03-06 14:28</DIV> <TABLE style="TABLE-LAYOUT: fixed"> <TBODY> <TR> <TD> <DIV class=cnt id=blog_text> <P>http://www.cppfans.com/</P> <P>【软件简介】 DirectX 9 SDK for Borland C++ Builder, 发布日期: 2004-07-20 Microsoft 公司的 DirectX 9 SDK 经过格式转换生成的 Borland C++ Builder 库文件。 这个开发库只支持 Borland C++ Builder, 如果要其他版本的,请到 Microsoft 主页上找。 如果有什么问题请到网友留言上发帖。 补充内容: strmbase.lib -- DirectShow 的库文件, 请参阅本页后面的“注意事项”, 发布日期: 2004-08-27 文档下载链接已修复: 由于原先文档放在别人的空间里, 引起文档无法下载, 现在已经修复, 放在我自己的空间里面了。(2004-09-13)</P> <P>【有关版权】 DirectX 9 SDK: Copyright (C) Microsoft Corp. DirectX 9 SDK for Borland C++ Builder: Copyright (C) Victor Chen, http://www.cppfans.com/ 原来的 DirectX 9 SDK 是免费的开发库,DirectX 9 SDK for Borland C++ Builder 仍然是免费的开发库。</P> <P>【内容介绍】 DX9SDK: 开发库 SAMPLES: 示例程序 示例程序包括:</P> <P>★ Direct3D 就是……
查看全文
发表于:2008-03-10 ┆
阅读(170)
┆
评论(0)
DirectShow PIN 连接 zz
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><BR></SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 'Courier New'; mso-bidi-font-weight: bold">1. pGraphBuilder->Render(OutPin); & RenderFile() </SPAN><SPAN style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 'Courier New'; mso-bidi-font-weight: bold">都會自動建立起一些基本的<SPAN lang=EN-US> Filter</SPAN>。 </SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 'Courier New'; mso-bidi-font-weight: bold"><BR></SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font……
查看全文
发表于:2008-03-09 ┆
阅读(139)
┆
评论(0)
DirectShow:图片的抓取 zz
<FONT size=2>在播放媒体文件的过程中,有一个很有用的功能,就是在当前播放的位置抓取图,实现这种图片抓取功能的方法很多,我们这里只介绍常用的两种。 <BR> 第1种方法最简单,它使用1BasicVideo::GetCurrentImage接口方法,代码如下。 <BR> heel SnapshotBitmap(IBasicVideo*pBa8icVideo, const char*OutFile) <BR> if (pBasicVldeo) <BR> { <BR> long bitmapSize=0; <BR> //首先获得图像大小 <BR> if(SUCCEEDED(pEasicVidee->GetcurrentImage(&bitmapSize,0))) <BR> { <BR> bool pass=false; <BR> //分配图像帧内存 <BR> unsigned char*buffer=new unsigned char[bitmapSize <BR> //获取图像帧数据 <BR> if(SUCCEEDED(pBasicVideo->GetCurrentImage(&bitmapSize……
查看全文
发表于:2008-03-08 ┆
阅读(283)
┆
评论(0)
DirectShow初探 zz
<DIV> <DIV id=mini_tags> <UL> <LI>tags: <LI><A href="http://epasser.aydc.com.cn/article/search.jsp?searchString=directshow"><FONT color=#810081>directshow</FONT></A> <LI><A href="http://epasser.aydc.com.cn/article/search.jsp?searchString=初探"><FONT color=#0000ff>初探</FONT></A> </LI></UL></DIV> <DIV id=detail> <DIV id=google_adsense_336_280> <SCRIPT type=text/JavaScript> alimama_pid="mm_10046685_140308_1529779"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="FFFFFF"; alimama_linkcolor="008000"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="0"; alimama_bgpic="0"; alimama_icon="0"; alimama_sizecode="36"; alimama_width=336; alimama_height=280; alimama_type=2; </SCRIPT> <P>可能到现在为止,还没有哪个玩过游戏的人没有接触过Microsoft的DirectX的。因为现今大多数的游戏都是用DirectX开发出来的。</P> <P>相比之下,DirectShow只是DirectX的一个子集。DirectX中还包括DirectSound、Direct3D等集合。DirectS……
查看全文
发表于:2008-03-08 ┆
阅读(103)
┆
评论(0)
DirectShow之接口实战篇 zz
<DIV> <DIV><FONT size=3>现今自己编程做一个多媒体播放工具是一件很令人开心愉悦的事情,但如果使用MediaPlay控件开发则会受到很多限制,自己的很多好的创意想法都无法或者很难实现,如果利用微软的DirectX接口开发则可以充分的将作者的独特想法付诸于实现,何乐而不为呢!!不过关于DirectShow接口的开发说明文档实在是少之又少,仅有的一些不是英文的就是一些关于理论方面的,真正关于接口实战编程而且是用Delphi开发工具实现的更是凤毛麟角,使很多人都望而却步。在这里,我把我应用Directshow开发的心得以及我搜集到一些资料重新整理编辑出来公布,希望对所有由此兴趣的同仁有所帮助,就算达到了我的目的。废话少说,进入正文。</FONT></DIV> <DIV align=left><FONT size=3> 既然是接口实战篇,就先把一些常用的接口列出来,让大家有一些基本的认识,都是用来做什么的,什么时候我们会需要用到此接口。</FONT></DIV> <TABLE border=1> <TBODY> <TR> <TD><B><FONT size=3>IFilterGraph</FONT></B></TD> <TD><FONT size=3>过滤通道接口</FONT></TD></TR> <TR> <TD><B><FONT size=3>IFilterGraph2</FONT></B></TD> <TD><FONT size=3>增强的IFilterGra……
查看全文
发表于:2008-03-08 ┆
阅读(166)
┆
评论(0)
GrabBitmaps抓图过程 zz
<DIV> <DIV id=art style="MARGIN: 15px" width="560"> <DIV>看了DXSDK\Samples\C++\DirectShow\Editing\GrabBitmaps\的运行过程<BR>把程序的枝叶去掉,看看程序主要是如何一下运行顺序,这样有利于明白其中的运行顺序,也好与看过它的朋友有个交流,其中的注释可能用得不对或不恰当,请指教或留言 <A href="mailto:pamire@163.com"><FONT color=#0000ff>pamire@163.com</FONT></A><BR><BR><BR>声明对象: <BR> CComPtr< ISampleGrabber > pGrabber;<BR> CComPtr< IBaseFilter > pSource;<BR> CComPtr< IGraphBuilder > pGraph;<BR> CComPtr< IVideoWindow > pVideoWindow;<BR>创建对象: <BR>pGrabber.CoCreateInstance( CLSID_SampleGrabber );<BR>CComQIPtr< IBaseFilter, &IID_IBaseFilter > pGrabberBase( pGrabber );<BR>pSource.CoCreateInstance( CLSID_AsyncReader );<BR>pGraph.CoCreateInstance( CLSID_FilterGraph );<BR>加入过滤器:<BR> hr = pGraph-……
查看全文
发表于:2008-03-08 ┆
阅读(85)
┆
评论(0)
DShow中实现抓图的几种方法 zz
<SPAN id=ArticleContent1_ArticleContent1_lblContent> <H4 class=MsoNormal style="MARGIN: 18pt 0cm"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">1.加入Sample Grabber Filter</SPAN></H4> <P class=MsoNormal style="MARGIN: 18pt 0cm"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> 当我们加入Sample Grabber Filter的时候,我们可以直接调用其接口(interface)ISampleGrabber。该接口可以获取经过该Filter的单独的Media Samples。详情请参见DXSDK。 </SPAN></P> <P class=MsoNormal style="MARGIN: 18pt 0cm"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><STRONG> 1.1 派生出自己的Sample Grabber</STRONG></SPAN></P> <P class=MsoNormal style="MARGIN: 18pt 0cm"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> 从ISampleGrabbe……
查看全文
发表于:2008-03-08 ┆
阅读(48)
┆
评论(0)
用DirectShow实现视频采集 zz
<DIV> <DIV>DirectShow作为DirectX的一个子集,它为用户提供了强大、方便的多媒体开接口,并且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序。这里结合实践中运用DirectShow实现视频采集(WIN32) 来加深对DirectShow的理解和操作能力。<BR><BR> <H4>1.系统环境及开发环境</H4>a.系统支持DirectX(Win 2K以上系统)<BR>b.VC++ 6.0安装有DirectX SDK(最好与系统支持的DirectX版本相同)<BR>c.视频采集设备(如USB摄像头,本文以USB PC Camera 310P为例)<BR> <H4>2.基本思想</H4> <P align=left> DirectShow的基本原理是多媒体数据在过滤器图表(Filter Graph)中流动,通过过滤器图表中各过滤器(Filter)实现在功能,最终实现多媒体数据在渲染过滤器(Vendering Filters)中的显示和回放。<BR><BR> 前面我们已经知道,一般过滤器可分为三类:源过滤器(Source Filters)、转换过滤器(Transform Filters)、渲染过滤器(Vendering Filters)。它们分别完成数据提供、数据格式转换(压缩编码等)和数据渲染和回放功能。所以,为了实现在WIN32系统下的视频采集,我们首先要构造出一个适当的过滤器图表,然后通过应用程序……
查看全文
发表于:2008-03-08 ┆
阅读(112)
┆
评论(0)