DirectShow中H.264 SourceFilter的Pin配置
来源:互联网 发布:php项目用什么软件开发 编辑:程序博客网 时间:2024/05/19 04:03
对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
- DirectShow中H.264 SourceFilter的Pin配置
- DirectShow中H.264 SourceFilter的Pin配置
- DirectShow中获取Filter上的输入输出PIN
- VS2010编译的时候碰到winnt.h问题 ,DirectShow 在VS2005中环境配置
- DirectShow 在VS2005/VS2010中环境配置和编译运行出现 winnt.h(5940)错误问题的解决
- DirectShow PIN 連接教學
- 开发DirectX9中DirectShow的配置问题
- 基于Directshow的H.264流媒体播放器设计
- 基于Directshow的H.264流媒体播放器设计
- directshow环境的配置
- VC6配置Directshow时的strmif.h出现的C2146错误
- 针对缺少"streams.h"及配置directshow的问题的详细解决过程。
- vc中关于 directx的配置,和dxsdk_extras(directshow)
- vc中关于 directx的配置,和dxsdk_extras(directshow)
- 利用DirectShow开发自己的Filter(最简单,最基础,不带Pin的Filter)
- DirectShow 学习(六) CTransfromFilter及相关联Pin类的源代码解析
- DirectShow 学习(七) CTransInPlaceFilter及相关联Pin类的源代码解析
- DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
- 无
- 如何用栈实现递归与非递归的转换
- S3C2440上触摸屏驱动实例开发
- tw-sack.js
- 21个Qt隐藏功能和技巧
- DirectShow中H.264 SourceFilter的Pin配置
- java中格式化数值和货币
- css基本知识
- 关于在vmware7.0 安装ubuntu10.04 遇到的问题
- “领导者的主要任务是分享愿景
- 关于主键索引
- XNA 4项目运行错误:No suitable graphics card found
- 利用UrlRewriter 实现二级域名
- Linux下scp的用法