DShow的视频采集的数据输出YUV420

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

由于x264编码使用的是YUV数据,所以想让DShow视频采集时就输出YUV数据,

查询了相关资料后,发现该输出能力与视频设备相关,我们可以通过一些dshow接口来查询设备的输出能力。

查询的步骤

 

IAMStreamConfig *pSC;

取得IAMStringConfig

 hr = m_pCGB2->FindInterface(&PIN_CATEGORY_PREVIEW,
  &MEDIATYPE_Interleaved,
  m_pCap,
  IID_IAMStreamConfig,
  (void **)&pSC);

获取设备支持的格式数量

hr = pSC->GetNumberOfCapabilities(&iCount, &iSize);

然后循环获取

VIDEO_STREAM_CONFIG_CAPS scc;

AM_MEDIA_TYPE* pmt;

 

for( i = 0 ; i < iCount ; i ++ )

{

hr = pSC->GetStreamCaps(iii++, &pmt, reinterpret_cast<BYTE*>(&scc));

VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *)pmt->pbFormat;

}

取到VIDEOINFOHEADER了,就可以看里面的bmiHeader了。

有支持YUV420的话,就设置该格式。没支持的就没办法了,

还是得做RGB2YUV420的转换。

 

 

5.使用DirectShow进行摄像头采集并进行H264实时编码 上一篇讲了怎么把视音频采集下来并合成一个AVI文件,但我们看这个AVI文件就发现,虽然很清晰,但就是大小太大了,录制短短10秒,可能就有100M以上,而且还有一个文件,就是录制只能是打开采集时开始,停止采集时停止,不能预览的时候随心所欲地录制。本篇就是要解决这些问题。 之前有一篇(使用DShow进行采集拍照)在讲实时拍照时曾用到过ISampleGrabber来抓取图像,然后设置缓存,从缓存中取数 阅读详情

相关推荐

FFmpeg —— 屏幕录像和录音并推流(命令行的方式)

Windows 方法一:dshow 首先需要安装一个软件,screen capture recorder 编译好的下载地址是:http://sourceforge.net/projects/screencapturer/files/ 安装后才能使用 源码地址是:https://github.com/rdp/screen-capture-recorder-to-video-windows-free 查看可用的设备: ffmpeg -list_devices true -f dshow -i dum.

天空的博客 4万+

使用DShow获取本机图像设备和自带编解码器列表

使用DSHOW获取视音频采集设备,自带编解码器列表,获取到的设备序号可以在开发opencv的时候用到,希望对大家有用

7.使用directshow采集视音频并进行H264和ACC实时编码再实时用MP4V2封装成MP4

使用Dshow进行视音频采集采集的过程中将音频和视频都放进同一个队列中去,然后开启一个线程,从队列中一个一个取出来进行实时编码,取到视频就用X264进行编码,取到音频就用faac编码,编码的数据不再落地,而是使用MP4V2写到MP4中,编码和封装的过程中会涉及到视音频同步的问题。

阿门的专栏 4347

DirectShow采集视频显示,并保存成bmp和yuv文件

代码简洁,采用DirectShow采集视频,并演示了保存成bmp和yuv的流程,对从事流媒体开发人士很有帮助,稍作修改,即可应用于工作当中。

IAMStreamConfig 设置问题/设置分辨率/准确获取filter

<br />        IAMStreamConfig *pConfig = NULL;<br />         hr = g_pCapture->FindInterface(<br />             &LOOK_DOWNSTREAM_ONLY,// Preview pin.<br />             0,// Any media type.<br />             pSrcFilter,<br />             IID_I

chjp2046的专栏 4675

SkeyeLive中DShow本地采集视频参数设置及可能出现的错误提示详解

在近期发布的SkeyeLive多窗口版本中,由于界面的局限性,选择性的将本地采集的音视频参数设置在界面上剔除掉了(暂时还没想好放在哪里,后续版本会在界面调整后添加),大家可以查看SkeyeLive源码中的StartDSCapture函数的参数设置代码进行相应设置;也应近期SkeyeSMS流媒体服务器群(QQ群:102644504,欢迎大家进群交流,任何技术问题,在所知的范围内都能给予解答)中大家提到的参数设置的错误提示以及参数该如何设置的问题,下面我将就参数设置的具体细节和代码关联做详细介绍。 一、查看设备

OpenSkeye的博客 6095

6、读取YUV数据并理解YUV数据

链接: https://pan.baidu.com/s/1zmjCmgVxSjqPDXVmbr-ghA?pwd=ayeu 提取码: ayeu。基本思想:跟这大佬学习视频,坚持记笔记,推动学完视频yuv420sp=NV12。首先保证window11电脑上配置了ffmpeg库,可以在命令行使用,测试视频。二、根据大佬的视频先学习一下yuv视频格式,借用大佬的图。一、使用ffmpeg将mp4视频转成yuv格式。二、在说明一下yuv422的使用分量方式。三、mp4-yuv420sp==nv12。

sxj731533730 4461

Qt/C++音视频开发28-ffmpeg解码本地摄像头(yuv422转yuv420

一开始用ffmpeg做的是视频流的解析,后面增加了本地视频文件的支持,到后面发现ffmpeg也是支持本地摄像头设备的,只要是原则上打通的比如win系统上相机程序、linux上茄子程序可以正常打开就表示打通,整个解码显示过程完全一样,就是打开的时候要传入设备信息,而且参数那边可以指定分辨率和帧率等,本地摄像机一般会支持多个分辨率,用户需要哪种分辨率都可以指定该分辨率进行采集

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 2436

摄像头视频采集

  一个录屏软件的流程基本就是: 图像采集 图像编码 将解码好的图像封装成视频   图像的采集: FFmpeg中有一个和多媒体设备交互的类库:Libavdevice。使用这个库可以读取电脑(或者其他设备上)的多媒体设备的数据,或者输出数据到指定的多媒体设备上。   windows上libavdevice可以采集摄像头也可以采集屏幕,这里我们先讲采集摄像头。 ...

相见不如怀念 4132

windows10 ffmpeg使用clion采集视频(yuv420数据)

// // Created by 克来 M on 2021/1/21. // #include "libavutil/avutil.h" #include "libavdevice/avdevice.h" #include "libswresample/swresample.h" #include <stdio.h> int main() { int ret = 0; AVFormatContext *fmt_ctx = NULL; AVDictionary

小马哥博客 253

ffmpeg获取摄像头数据保存成YUV420P格式

编译之前得下载好ffmpeg库文件pro文件SOURCES += \ ffmpeg_libavdevice.cppINCLUDEPATH += $$PWD/ffmpeg/includeLIBS += $$PWD/ffmpeg/lib/avcodec.lib \ $$PWD/ffmpeg/lib/avdevice.lib \ $$PWD/ffmpeg/lib/av...

IOT_SHUN的博客 2451

FFMPEG Qt录屏软件开发之视频采集

前面讲解了视频播放器的开发,初步掌握了使用FFMPEG解码音视频。 现在我们就接着讲解使用FFMPEG来编码音视频,主要是实现一个录屏软件的制作。 一个录屏软件的流程基本就是: 图像采集 图像编码 将解码好的图像封装成视频 图像的采集: FFmpeg中有一个和多媒体设备交互的类库:Libavdevice。使用这个

有志者事竟成 5556

ffmpeg调dshow使用Kinect录视频音画不同步关于时间戳踩的坑

建立数据集收数据准备用Microsoft Kinect V2采集color视频,节省预算所以没有直接买一个好用的usb camera,从此开始被这个老古董折磨注意一定要安装kinect runtime2.2,这个是单独安装的,Kinect SDK2.0装完虽然能用但是不好用,pykinect可能报错然后不想弄了,直接上ffmpeg命令行只有装了runtime2.2后才能看到dshow设备Kinect V2 Video Sensor特性:超大缓冲区96khz音频flac。

weixin_45649345的博客 973

windows下ffmpeg音视频采集并推流【较乱,懒的整理了】

【大多为搜集的文章,都归类为,转载。所以没有标明,来处。】 1. windows下ffmpeg的编译:         可参考:在windows下编译ffmpeg的详细说明         如:./configure --disable-yasm --enable-static --enable-indev=dshow 如果装了yasm,x264,就:./configure

xxq123321的专栏 1784

从零开始学习音视频编程技术(十二) 录屏软件开发之视频采集

原文地址:http://blog.yundiantech.com/?log=blog&id=15 前面讲解了视频播放器的开发,初步掌握了使用FFMPEG解码音视频。 现在我们就接着讲解使用FFMPEG来编码音视频,主要是实现一个录屏软件的制作。 一个录屏软件的流程基本就是: 图像采集 图像编码 将解码好的图像封装成视频

qq214517703的专栏 3448

【秒懂音视频开发】19_视频录制01_命令行

视频开发 视频录制 转自小码哥博客

温暖的小冬天 564

Windows下免安装的DShow视频同步采集工具(含源码与FFmpeg依赖)

直接运行AVCaptureStream.exe就能在Windows上同步采集摄像头画面和麦克风声音,不用装FFmpeg或额外驱动。支持命令行快速列出所有可用设备,包括USB摄像头、笔记本内置摄像头、Realtek声卡麦克风等;采集时自动对齐音视频时间戳,软编码成H.264+AAC,输出MP4本地文件或推流到RTMP服务器。附带完整MFC界面:设备选择对话框、实时统计窗口(帧率/丢帧/延迟)、YUV视频渲染窗口。核心采集逻辑封装在AVInputStream和AVOutputStream类中,涵盖帧率控制、音频

lg888的博客 267

基于FFmpeg实现的无声音屏幕录制

UI自动化测试时,有时需要进行录屏操作,这时我们是不需要声音的,我们可以通过FFmpeg进行简单的录制工作。 以下是在windows10环境下,基于FFmpeg实现的简单录制:

sinat_37967865的博客 1250
上一篇: x264编码器的参数设置。
下一篇: 使用FAAC进行AAC编码
五行擒拿术
博客等级 码龄26年 52粉丝 1361原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值