directshow 采集音视频数据
2012-07-06 16:13
357 查看
用directshow写了一个采集本地音视频数据的库AVCap. 获取音视频采集设备, 指定设备并开始采集后, 给上层应用返回采集的音视频数据.
接下来的工作有两个:
1. 添加一个预览采集到的视频的接口, AVCap是不涉及界面的东西的, 所以不需要MFC的支持, 也不需要用到windows界面相关的API, windows消息机制等, 暂时的想法是上层给它一个句柄就能预览视频了.
2. 对音视频进行网络传输前的编码工作, 暂时还没有定下格式.
下面简单说一下dshow采集音视频的步骤.大部分内容在dshow SDK帮助文档中Audio Capture, Video Capture两大章节中都有, 只是我按帮助文档中的步骤最后使用ISampleGrabber时没能成功. 只能再次求助SDK中的例子拉. 我的核心代码大部分来自于samples中editing下stillcap这个示例, 实际上你也完全可以通过学习stillcap示例了解采集过程而跳过下面的内容.
1. 初始化(或者说建立对象? COM的知识懂的不多)IGraphBuilder, ICaptureGraphBuilder2
2. 获取音视频采集设备
3. 获取音视频采集filter
4. 初始化ISampleGrabber, 由于stillcap只采集视频, 这里说下音频的格式.
5. 使用PIN_CATEGORY_PREVIEW链接capture filter -> grab filter -> null filter.
6. 设置ISampleGrabber的回调
7. IMediaControl run().
PS:封装完AVCap后, 如果暂时不考虑观看视频, dshow应该就告一段落了, oyeah!
接下来的工作有两个:
1. 添加一个预览采集到的视频的接口, AVCap是不涉及界面的东西的, 所以不需要MFC的支持, 也不需要用到windows界面相关的API, windows消息机制等, 暂时的想法是上层给它一个句柄就能预览视频了.
2. 对音视频进行网络传输前的编码工作, 暂时还没有定下格式.
下面简单说一下dshow采集音视频的步骤.大部分内容在dshow SDK帮助文档中Audio Capture, Video Capture两大章节中都有, 只是我按帮助文档中的步骤最后使用ISampleGrabber时没能成功. 只能再次求助SDK中的例子拉. 我的核心代码大部分来自于samples中editing下stillcap这个示例, 实际上你也完全可以通过学习stillcap示例了解采集过程而跳过下面的内容.
1. 初始化(或者说建立对象? COM的知识懂的不多)IGraphBuilder, ICaptureGraphBuilder2
2. 获取音视频采集设备
3. 获取音视频采集filter
4. 初始化ISampleGrabber, 由于stillcap只采集视频, 这里说下音频的格式.
AM_MEDIA_TYPE mt; mt.majortype = MEDIATYPE_Audio;//MEDIATYPE_Video mt.subtype = MEDIASUBTYPE_PCM;//MEDIASUBTYPE_RGB24 mt.formattype = FORMAT_WaveFormatEx;//视频采集时没设置这一项 hr = pGrabber->SetMediaType(&mt);
5. 使用PIN_CATEGORY_PREVIEW链接capture filter -> grab filter -> null filter.
6. 设置ISampleGrabber的回调
7. IMediaControl run().
PS:封装完AVCap后, 如果暂时不考虑观看视频, dshow应该就告一段落了, oyeah!
相关文章推荐
- DirectShow&DirectSound采集音频视频数据 vs2013
- 提取DirectShow中视频采集的数据 分类: DirectX 2014-09-29 14:41 481人阅读 评论(0) 收藏
- 提取DirectShow中视频采集的数据
- 提取DirectShow中视频采集的数据
- 提取DirectShow中视频采集的数据
- DirectShow基础编程 采集视频数据
- Directshow采集到的视频BYTE数据转成IplImage数据并保存出去
- 摘录DirectShow数据,视频采集
- directshow和vfw采集并转发视频数据的接口
- Directshow 采集音视频数据H264+AAC+rtmp效果还不错
- 视频数据:彩色数据采集(Color Data)
- 入门视频采集与处理(学会分析YUV数据)
- 用DirectShow实现视频采集
- 实现 V4L2视频采集与 FFMPEG 编码YUYV 数据为H264 (1)
- Window7系统 opencv 利用DirectShow 进行视频采集的解决方案
- 有关DirectX SDK 和 DirectShow进行视频采集
- DirectShow采集YUV数据
- 【MFC两种视频图像采集方法】DirectShow与Opencv
- 【iCore2双核心板视频教程】 AD模块(iM_AD_GP和iM_AD_SYNC)介绍及数据采集实验一
- 入门视频采集与处理(学会分析YUV数据)