// 设置参数,p1=宽,p2=高,p3=帧率
AM_MEDIA_TYPE *p = NULL;
IAMStreamConfig *pSC = NULL;
pCGB2->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, pVCap,
IID_IAMStreamConfig, (void **)&pSC);
pSC->GetFormat(&p);
VIDEOINFOHEADER *pHd = (VIDEOINFOHEADER *)p->pbFormat;
// 单位为100ns,所以每帧(10^7/p3)*100ns
pHd->AvgTimePerFrame = / p3;
// I420格式
pHd->bmiHeader.biCompression = MAKEFOURCC('I', '', '', '');
pHd->bmiHeader.biWidth = p1;
pHd->bmiHeader.biHeight = p2;
// 一个像素点12位
pHd->bmiHeader.biBitCount = ;
// 图像大小
pHd->bmiHeader.biSizeImage = p1 * p2 * / ;
// 图像传输率,单位bps
pHd->dwBitRate = pHd->bmiHeader.biSizeImage * * p3;
// defined in wmsdkidl.h
p->subtype = WMMEDIASUBTYPE_I420;
p->lSampleSize = pHd->bmiHeader.biSizeImage;
pSC->SetFormat(p);
// free p
FreeAM_MEDIA_TYPE(p);
pSC->Release();

上面设计的类型定义:

包含一下Windows Media Format 9.0 SDK中的头文件"wmsdkidl.h" 
问题应该就会被解决。在里面有I420的媒体类型GUID定义

EXTERN_GUID(WMMEDIASUBTYPE_I420,
0x30323449, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
EXTERN_GUID(WMMEDIASUBTYPE_IYUV,
0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);

当我用枚举设备的方式(DirectShow中枚举摄像头的采集分辨率这篇文中讲过)来查看有多少支持的帧率时,得到的分辨率有10帧、20帧、25帧和30帧。DirectShow中是以100纳秒为单位,也就是得到的实际值是1000000、500000、4000000和3333333。

原文:https://blog.csdn.net/thuyz/article/details/46762487

DirectShow设置采集帧率码率YUV<转>的更多相关文章

  1. EDIUS设置采集磁带的方法

    EDIUS作为一款应用广泛的非线性视频编辑软件,将磁带记录的视频信号采集为可以编辑的数字视频信号的使用还是十分广泛的,毕竟磁带不同于数字存储单元,它在批量化的视频录制中表现出很大的优势.下面,小编跟大 ...

  2. DirectShow音频采集声音不连续问题分析与解决办法经验总结

    最近广州大雨不断,并且多数无前兆,突然就来场大雨,给同学们降降温,说来本也是好事,但有时候下的真不是时候,最近这段时间都是即将下班了,大雨就来了,昨晚快下班前又出现了大雨,北方人总爱忘带雨伞,这不就被 ...

  3. DirectShow音频采集pcm,实时编码AAC,附源码

    定期送福利,今天给大家送上Windows中利用DirectShow采集microphone音频,并将采集到的pcm数据,利用FAAC库编码成AAC,进行本地存储或者网络传输. 直接贴代码,解析看注释: ...

  4. nutch 采集效率--设置采集间隔

    fetcher.max.crawl.delay 默认是30秒,这里改为 5秒修改nutch-default.xml<property> <name>fetcher.max.cr ...

  5. TOP100summit:【分享实录-QQ空间】10亿级直播背后的技术优化

    本篇文章内容来自2016年TOP100summit QQ空间客户端研发总监王辉的案例分享.编辑:Cynthia 王辉:腾讯SNG社交平台部研发总监.腾讯QQ空间移动客户端技术负责人高级工程师.09年起 ...

  6. Directshow 采集与FFDshow 冲突

    在使用Directshow 进行视频采集的时候,发现与本地安装的一个ffdshow有冲突. 见下图: 经过测试发现dshow 在设置采集媒体类型的时候,如果设置RGB32就会崩溃,如果设置RGB24就 ...

  7. JavaCV FFmpeg采集摄像头YUV数据

    前阵子使用利用树莓派搭建了一个视频监控平台(传送门),不过使用的是JavaCV封装好的OpenCVFrameGrabber和FFmpegFrameRecorder. 其实在javacpp项目集中有提供 ...

  8. Android中直播视频技术探究之---采集摄像头Camera视频源数据进行推流(采用金山云SDK)

    一.前言 在之前已经详细介绍了Android中的一种视频数据源:Camera,不了解的同学可以点击进入:Android中Camera使用详解 ,在这篇文章中我们介绍了如何采集摄像头的每一帧数据,然后进 ...

  9. 如何用FFmpeg API采集摄像头视频和麦克风音频,并实现录制文件的功能

    之前一直用Directshow技术采集摄像头数据,但是觉得涉及的细节比较多,要开发者比较了解Directshow的框架知识,学习起来有一点点难度.最近发现很多人问怎么用FFmpeg采集摄像头图像,事实 ...

随机推荐

  1. jquery add()方法

    <html><meta charset="utf-8"><head><script type="text/javascript& ...

  2. [转][CentOS]开机时

    来自:https://www.cnblogs.com/jcblog/p/6431252.html 在 CentOS 开机界面有两个菜单: 第一个选项正常启动,第二个选项急救模式启动(系统出项问题不能正 ...

  3. [UE4]Replications,复制

    关于进程 1.进程:运行中的程序 虚幻4游戏进程的四种网络模式 1.StandAlone:单机模式,不联网 2.Client,网络游戏中的客户端. 3.ListenServer,服务器和一个客户端 4 ...

  4. spring 配置文件的头部 xmls

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  5. (转)C# WebApi 身份认证解决方案:Basic基础认证

    原文地址:http://www.cnblogs.com/landeanfen/p/5287064.html 阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2. ...

  6. jQuery实现评论弹幕、弹幕漂浮、滚动代码

    1.html代码和jquery代码: <!DOCTYPE html> <html> <head lang="en"> <meta char ...

  7. 求计算两个时间的差(DateTime类和TimeSpan类)

    日期时间数据是项目设计过程中经常需要处理的信息,C#提供了DateTime类和TimeSpan类来处理日期时间数据.下面介绍说明Datetime类和TimeSpan类的使用 //初始化DateTime ...

  8. mysql:视图,触发器,事务,存储过程,函数。

    一  视图 1 什么是视图:视图其实就是通过查询得到一张表并且保存下来,就是一张虚拟的表,并非真实存在,比如我们将两个表在终端通过(inner join)内链接起来,那么我们得到的这个表就叫做视图,其 ...

  9. uWSGI, Gunicorn, 啥玩意儿?

    因为nginx等优秀的开源项目,有不少本来不是做服务器的同学也可以写很多服务器端的程序了.但是在聊天中会发现,大家虽然写了不少代码,但是对wsgi是什么,gunicorn是什么,反向代理又是什么并不了 ...

  10. 查看计算机CPU、内存使用情况

    Shift + Ctrl + Esc,打开Windows任务管理器,点击性能,如图: 可以清楚的看到整台机子的CPU.内存使用情况,其中CPU使用记录下有8个小窗口,因为博主的CPU是8核的,讲讲CP ...