CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

续三-关于视频捕获的问题--写avi文件

楼主jadeking(米兰)2001-12-11 20:19:47 在 VC/MFC / 基础类 提问

各位大虾,我用StreamCallbackProc(HWND   hWnd,   LPVIDEOHDR   lpVHdr)捕获到的视频缓冲(lpVHdr),要存成一个avi文件,该如何实现?  
   
  是不是要用到avifile的AVIFileWriteData等函数?  
   
  另外存成avi文件时,肯定要写一些文件的头格式,那哪里有avi文件的格式?如何写?  
   
  请教了! 问题点数:50、回复次数:19Top

1 楼woowindicevc(vcvc2vc)回复于 2001-12-11 22:30:45 得分 0

来学习:)Top

2 楼woowindicevc(vcvc2vc)回复于 2001-12-11 22:38:07 得分 0

来学习:)Top

3 楼woowindicevc(vcvc2vc)回复于 2001-12-11 22:38:12 得分 0

来学习:)Top

4 楼jadeking(米兰)回复于 2001-12-12 11:28:05 得分 0

没有人知道了吗?高手去哪里了?Top

5 楼acptvc(微软全球技术中心 VC技术支持)回复于 2001-12-12 20:17:22 得分 10

首先感谢您使用微软产品。  
   
  Platform   SDK中的Windows   Media函数可以帮助从视频捕捉卡捕捉动态图象并存储为硬盘上的avi文件。在MSDN在线网站上有完整的函数参考与例子代码,地址是http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stream/vidcapds_5rub.asp。以下是一段简单的例子代码:  
  HWND   hWnd=capCreateCaptureWindow("title",WS_CHILD   |   WS_VISIBLE,20,20,160,120,this->m_hWnd,10);   //初始化捕捉窗口  
  capDriverConnect(hWnd,   0);     //连接到第一个捕捉卡(id=0)  
  capPreviewRate(hWnd,   30);     //设定预览的frame   rate为30  
  capPreview(hWnd,   TRUE);   //开始在捕捉窗口显示预览  
  capCaptureSequence(hWnd);     //开始捕捉到图象到c:\capture.avi  
  通过这段代码就可以开始捕捉动态图象并存储到本地avi文件(默认设置是c:\capture.avi)。在实际运用中,最好在新线程中进行捕捉以避免阻塞GUI响应,捕捉完成后应注意释放相应设备和资源。  
   
  此外,使用Windows   Media   Encoder   SDK   7.1进行编程也可以实现视频捕捉与存储。您可以在微软网站下载Windows   Media   Encoder   SDK并安装,其中有用VB和VC编写的例子并附有完整源码。  
   
   
   
  -   微软全球技术中心   VC技术支持  
   
  本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。  
  为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。  
   
  Top

6 楼zhubo(rickyzhu.com)回复于 2001-12-12 20:27:59 得分 0

这么正式的答复,好怕怕哦!Top

7 楼jadeking(米兰)回复于 2001-12-12 20:45:58 得分 0

首先非常感谢acptvc(微软全球技术中心   VC技术支持) 为我提供如此详细的帮助,但我想你可能没有理解我的意思,  
   
  用AVICap技术捕获视频并存成avi文件(你说的方法,是通过这种技术从视频头获得的视频直接通过capFileSetCaptureFile(m_hWndVideo,   Filename);  
        capCaptureSequence(m_hWndVideo);就可以,这个我也已经知道了,  
   
  但我指的是从StreamCallbackProc(HWND   hWnd,   LPVIDEOHDR   lpVHdr)捕获到的视频缓冲(lpVHdr)中获得的lpVHdr数据如何存成一个文件?不知你明白我的意思吗?  
   
  多谢!非常感谢!Top

8 楼jadeking(米兰)回复于 2001-12-12 20:53:37 得分 0

acptvc(微软全球技术中心   VC技术支持) ,你是上海微软技术支持中心的吗?  
  我们公司已经买了MSDN,有客户号,如果方便,我可以和你联系吗?你的联系方式?  
   
  这个case算你了啦!Top

9 楼florist2000(我爱susan)回复于 2001-12-12 22:37:27 得分 30

上次给你源代码,你还没有给我加分  
  这次还忙你的忙  
   
  首先在缓冲区里面存的是张设备无关位图,里面有个位图结构,这个我想你是知道的了  
  你的问题,无非是把一组位图转换程为AVI文件而已  
  如果你要去了解AVI文件格式,将是很让人头痛的问题  
  比如,AVI是音频视频交错流文件,它甚至可以在中间加入一些文本信息都可以。  
   
  那么要将一组位图融合为AVI文件。  
  步骤如下:  
  AVIFileOpen创建你的AVI文件  
  avifilecreatestream创建视频流  
  AviStreamSetFormat设置视频流格式  
  Avistreamwrite把一张设备无关位图写入你的视频流  
  最后就是关闭了,不说我也知道  
   
  这次不加分,以后是不会在回你的帖子了。  
  Top

10 楼florist2000(我爱susan)回复于 2001-12-12 22:40:00 得分 0

文件头格式,任何帮助里面都有  
  你可以查MSDN,也可以查DELPHI等带的WIN32SDK帮助  
  主要的文件头格式是两个  
  一个位图的BMPINFOHEADER  
  一个是AVISTREAMINFO  
  Top

11 楼kingcharles(charles)回复于 2001-12-12 23:01:30 得分 0

其实就几个函数就是了  
  不过好多回吊看得我晕晕  
  有一本VC++多媒体编程有讲过哦  
  要的话我发给你原代码  
  Top

12 楼kingcharles(charles)回复于 2001-12-12 23:03:56 得分 10

其实不用你自己修改那些文件头的  
  用SDK都帮你做好了  
  我用这个做了个AVI   STUDIO  
  还不错  
  不过老师要我做应该视频场景的选取好头疼  
  Top

13 楼kingcharles(charles)回复于 2001-12-12 23:04:50 得分 0

有兴趣的给个QQ  
  4425443这是ME的Top

14 楼jadeking(米兰)回复于 2001-12-13 09:05:23 得分 0

florist2000(善良的石头),多谢你的帮助!跟你澄清一下,上次的分都给你加了,50分。另外一个寻找你的贴子也给你了20分,你去看看!最好用管理模式进去看!  
  除非是CSDN里面的bug,那我就没有办法了,我说话算话!Top

15 楼jadeking(米兰)回复于 2001-12-13 09:07:50 得分 0

kingcharles(charles),多谢,平时没有时间开QQ,还是告诉你我的email:  
  wangheng228@263.netTop

16 楼jadeking(米兰)回复于 2001-12-14 09:09:30 得分 0

kingcharles(charles),你怎么   不说话了,我已经给你发QQ加为好友的认证了,另外email地址也告诉你了,没有动静啊!Top

17 楼VC_LOADING(眼镜)回复于 2001-12-22 19:36:41 得分 0

http://www.codeproject.com/useritems/avigenerator.aspTop

18 楼Un1()回复于 2001-12-22 20:49:28 得分 0

视频格式可以通过:  
  capGetVideoFormat   获取。Top

19 楼jadeking(米兰)回复于 2001-12-31 15:34:03 得分 0

终于搞定了,多谢各位!Top

相关问题

  • 视频捕获
  • 从摄像头捕获的视频流经mepg4压缩,后怎样写成AVI文件,直接写,不用ds的graph中用render
  • 视频捕获(急)
  • 用VC如何得到视频文件如avi、asf中视频的宽和高?
  • 用Directshow如何得到视频文件如avi、asf中视频的宽和高?
  • PowPoint文件中的avi视频不能播放
  • 用mciSendString怎么循环播放avi视频文件
  • 急求由RGB数据创建AVI视频文件?
  • avi文件中音视频如何同步?
  • 什么软件能把*.rm(RealPlayer播放)视频文件转换为*.asf或*.avi视频文件?

关键词

  • 文件
  • 函数
  • 微软
  • 代码
  • 技术
  • sdk
  • msdn
  • vc
  • 全球
  • media

得分解答快速导航

  • 帖主:jadeking
  • acptvc
  • florist2000
  • kingcharles

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo