DirectShow中H.264 SourceFilter的Pin配置

2023-11-18

对DirectShow SourceFilter,要在Pin上输出H.264码流,需要注意如下设置:

majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIATYPE_AVC1 {31435641-0000-0010-8000-00AA00389B71}

 

FormatType要设置为FORMAT_MPEG2_VIDEO,对应的结构体为MPEG2VIDEOINFO

下面是一个分辨率为960x528的H.264 High Profile/Level 5.1视频例子


formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 167

 

VIDEOINFOHEADER2:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417082

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 20
dwPictAspectRatioY: 11
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

 

BITMAPINFOHEADER:
biSize: 40
biWidth: 960
biHeight: 528
biPlanes: 1
biBitCount: 24
biCompression: avc1
biSizeImage: 0
biXPelsPerMeter: 1
biYPelsPerMeter: 1
biClrUsed: 0
biClrImportant: 0

 

MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 35 //dwSequenceHeader的长度
dwProfile:0x0000004d //high profile
dwLevel: 0x00000033 //0x33就是10禁止51,对应level 5.1
dwFlags: 0x00000004

 

dwSequenceHeader的格式:

[BigEndian格式的16位 SPS长度] + SPS + [[BigEndian格式的16位 PPS长度] +PPS

 

下面是完整的MPEG2VIDEOINFO结构体内容

pbFormat:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0020: 00 00 00 00 00 00 00 00 3a 5d 06 00 00 00 00 00
0030: 00 00 00 00 00 00 00 00 14 00 00 00 0b 00 00 00
0040: 00 00 00 00 00 00 00 00 28 00 00 00 c0 03 00 00
0050: 10 02 00 00 01 00 18 00 61 76 63 31 00 00 00 00
0060: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
0070: 00 00 00 00 23 00 00 00 4d 00 00 00 33 00 00 00
0080: 04 00 00 00|00 1b 67 4d 40 33 96 64 07 80 87 7f
0090: e0 00 20 00 22 00 0c ba 76 02 62 5a 01 1e 30 65

00a0: 40 00 04 68 ee 3c 80

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DirectShow中H.264 SourceFilter的Pin配置 的相关文章

随机推荐

  • 【MyBatis】Mybatis使用SqlSessionFactory加载xml文件

    1 概述 MyBatis框架主要是围绕着SqlSessionFactory这个类进行的 这个的创建过程如下 定义一个Configuration对象 其中包含数据源 事务 mapper文件资源以及影响数据库行为属性设置settings 通过配
  • python read函数返回值_python read()方法定义及使用(实例解析)

    今天这篇文章我们来了解一下pythonread方法 不知道没什么关系 因为今天讲的就是python之中的read 方法 以及知晓read是什么意思 所以今天我们在今天的文章之中来了解一下吧 概述 read 方法用于从文件读取指定的字节数 如
  • 数据结构——非线性结构(图)

    文章目录 一 非线性结构的概述 二 图的基本概念 1 定义 2 无向图 有向图 2 1 无向图 2 2 有向图 2 3 简单图 2 4 多重图 3 顶点的度 出度 入度 3 1 对于无向图 3 2 对于有向图 4 边的权 带权图 网 5 点
  • React + Umi + Dva + Antd 简述 及创建项目过程简述

    React 你的第一个组件 React React是前端三大主流框架之一 你可以在React里传递多种类型的参数 如声明代码 帮助你渲染出UI 也可以是静态的HTML DOM元素 也可以传递动态变量 甚至是可交互的应用组件 安装react框
  • 学校智慧校园平台管理系统小程序开发制作

    学校智慧校园平台管理系统小程序开发制作 智慧校园服务的蓝海市场正在等待开发的状态中 而小程序恰好是一体化校园平台抢占这个市场的最佳方式 学校校园平台小程序提供在校大学生和老师校园智慧服务的小程序应用 主要功能有 提供查看考勤 成绩 课表 校
  • python树莓派 是什么_想用什么域名就用什么域名,用树莓派搭建个局域网DNS服务器。...

    局域网内的设备越来越多 用ip访问就比较麻烦了 另一方面我们用的公网的dns服务器可能会被投毒 这时候搭建一个本地的DNS服务器 想用什么域名就用什么域名 岂不是很舒服 拿起我们的树莓派 说干就干 准备材料 1 树莓派 这里是安装了64位操
  • chisel的命名高级用法

    从历史上看 Chisel 在可靠地捕获信号名称方面遇到了麻烦 造成这种情况的原因是 1 主要依靠反射来查找名称 2 使用 chiselName行为不可靠的宏 Chisel 3 4 引入了一个自定义的 Scala 编译器插件 它可以在声明信号
  • 关于ORA-12170 tns 连接超时等一系列Oracle无法正常登入问题

    文章转载来自于 https blog csdn net qq 40707682 article details 81667918 由于该篇文章成功解决了我的问题 所以记录一下 方便后面的小伙伴们学习 下面首先说说如何在出现ORA 12170
  • UML图示

    近些天学习设计 由于没有具体项目 原有项目也没有什么设计的概念 只是看相关的书籍 所以着实有些抓狂 然最抓狂的是对于UML那些表示法的生疏 虽然看过N 1遍相关的表示 但由于之前看过的设计图稿和自己画的东东本来就不多 因此出来类图 对象图等
  • 如何划分子网(例题讲解)

    44 12分 设某ISP拥有一个网络地址块201 123 16 0 21 现在该ISP要为A B C D四个组织分配IP地址 其需要的地址数量分别为985 486 246以及211 而且要求将低地址段的 IP 地址分配给 IP 地址需求量大
  • CSS 媒体查询 IPHONE PC 常用尺寸总结

    iPhone 5 SE media only screen and device width 320px and device height 568px and webkit device pixel ratio 2 height calc
  • Matlab 多核 多个CPU 并行运算

    Matlab并行运算 目前 新购置的电脑大部分都是多核的了 使用Matlab进行大量计算时如何有效利用多核呢 Matlab目前版本已经比较好的支持多核并行运算了 是用的Matlab版本是R2007b 电脑是双核的 先简单试试 gt gt m
  • 在 Python 中将字符串转换为数组

    使用 str split 方法将字符串转换为数组 例如 array string split str split 方法将在每次出现提供的分隔符时将字符串拆分为一个列表 string www jiyik com 将逗号分隔的字符串转换为数组
  • 攻防世界(easy-apk)

    下载链接如下所示 https adworld xctf org cn media task attachments 989ca07c3f90426fa05406e4369901ff apk 使用JEB打开apk 如下所示 可知获得输入后进行
  • 嵌入式开发——文件系统部署rz、sz命令

    1 rz sz命令源码下载 下载网址 https ohse de uwe software lrzsz html 2 源码编译 tar zxvf lrzsz 0 12 20 tar gz cd lrzsz 0 12 20 configure
  • 小滴课堂-新版JavaWeb零基础到实战专题课程-19

    目录 前言 第十九章 javaweb项目实战之小滴课堂开发者论坛数据库设计 第1集 小滴课堂开发者论坛数据库ER关系图设计 第2集 小滴课堂开发者论坛Mysql相关表录入 前言 小滴课堂 旨在让编程不在难学 让技术与生活更加有趣 随着互联网
  • 转」最佳方案:迭代式开发

    前言 Fred Brooks 在 25 年前就曾写到 不要指望一次成功 无论如何你都要这样 敏捷开发 小步快跑 持续迭代 不断改进 产品升级 在用例需要之前 不要添加数据成员 在代码之前编写测试 过早的优化时万恶之源 不要过度强调代码的通用
  • 一文读懂网联-网联的业务方案和技术实现(1)

    支付产品设计必知的支付底层逻辑 网联平台全业务功能详解 2 我想 银联 大家都不陌生 我们用的银行卡基本都是银联卡 而网联想必很多人并不清楚 其实网联和银联在一个职能上平分秋色 电子支付的清算机构 我们国家并驾齐驱的2家清算机构 网联与银联
  • python学习基础(3)—循环、数据结构及函数

    循环 数据结构及函数 循环 for循环及循环嵌套 break及continue命令 while循环 列表 元组结构及字典结构 高级列表操作 高级字典操作 函数 自定义函数 系统内置函数 导入包 循环 python循环命令有两个 for循环用
  • DirectShow中H.264 SourceFilter的Pin配置

    对DirectShow SourceFilter 要在Pin上输出H 264码流 需要注意如下设置 majortype MEDIATYPE Video 73646976 0000 0010 8000 00AA00389B71 subtype