UVC规范(USB摄像头)
+ -

UVC H264视频帧描述符

2021-11-04 2024 30

H264视频格式结构体定义


typedef struct _H264_VIDEO_FORMAT_DESCRIPTOR
{
    UINT8  bLength;  
    UINT8  bDescriptorType;
    UINT8  bDescriptorSubtype;
    UINT8  bFormatIndex;
    UINT8  bNumberFrameDescriptor;
    GUID   guidFormat; //UINT[16]
    UINT8  bBitsPerPixel;
    UINT8  bDefaultFrameIndex;
    UINT8  bAspectRatioX;
    UINT8  bAspectRatioY;
    UINT8  bmInterlaceFlags;
    UINT8  bCopyProtect;
    UINT8  bVariableSize;    
}H264_VIDEO_FORMAT_DESCRIPTOR;

bLength                  : 0x1C (28 bytes)
bDescriptorType          : 0x24 (Video Streaming Interface)
bDescriptorSubtype       : 0x10 (Frame Based Format Type)
bFormatIndex             : 0x03 (3)
bNumFrameDescriptors     : 0x03 (3)
guidFormat               : {34363248-0000-0010-8000-00AA00389B71} (H264)
bBitsPerPixel            : 0x10 (16 bits)
bDefaultFrameIndex       : 0x03 (3)
bAspectRatioX            : 0x00
bAspectRatioY            : 0x00
bmInterlaceFlags         : 0x00
 D0 IL stream or variable: 0 (no)
 D1 Fields per frame     : 0 (2 fields)
 D2 Field 1 first        : 0 (no)
 D3 Reserved             : 0
 D4..5 Field pattern     : 0 (Field 1 only)
 D6..7 Display Mode      : 0 (Bob only)
bCopyProtect             : 0x00 (No restrictions)
bVariableSize            : 0x01 (Variable Size)
Data (HexDump)           : 1C 24 10 03 03 48 32 36 34 00 00 10 00 80 00 00   .$...H264.......
                           AA 00 38 9B 71 10 03 00 00 00 00 01               ..8.q.......


OUR_GUID_ENTRY(MEDIASUBTYPE_H264,
0x34363248, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71)

H264视频帧格式

#pragma pack(1)
typedef struct _H264_VIDEO_FRAME_DESCRIPTOR
{
    UINT8  bLength;
    UINT8  bDescriptorType;
    UINT8  bDescriptorSubtype;
    UINT8  bFrameIndex;
    UINT8  bmCapabilities;
    UINT16 wWidth;
    UINT16 wHeight;
    UINT32 dwMinBitRate;
    UINT32 dwMaxBitRate;
    UINT32 dwDefaultFrameInterval;
    UINT8  bFrameIntervalType;
    UINT32 dwBytesPerLine;
    UINT32 adwFrameInterval[1];
} H264_VIDEO_FRAME_DESCRIPTOR;
#pragma pack()

        ----- VS Frame Based Payload Frame Type Descriptor ----
bLength                  : 0x26 (38 bytes)
bDescriptorType          : 0x24 (Video Streaming Interface)
bDescriptorSubtype       : 0x11 (Frame Based Payload Frame Type)
bFrameIndex              : 0x03
bmCapabilities           : 0x00
wWidth                   : 0x0780 (1920)
wHeight                  : 0x0438 (1080)
dwMinBitRate             : 0x13C68000 (331776000 bps -> 41.472 MB/s)
dwMaxBitRate             : 0x3B538000 (995328000 bps -> 124.416 MB/s)
dwDefaultFrameInterval   : 0x00051615 (33.3333 ms -> 30.000 fps)
bFrameIntervalType       : 0x03 (3 discrete frame intervals supported)
dwBytesPerLine           : 0x00 (0 bytes)
adwFrameInterval[1]      : 0x00051615 (33.3333 ms -> 30.000 fps)
adwFrameInterval[2]      : 0x000A2C2A (66.6666 ms -> 15.000 fps)
adwFrameInterval[3]      : 0x000F4240 (100.0000 ms -> 10.000 fps)
Data (HexDump)           : 26 24 11 03 00 80 07 38 04 00 80 C6 13 00 80 53   &$.....8.......S
                           3B 15 16 05 00 03 00 00 00 00 15 16 05 00 2A 2C   ;.............*,
                           0A 00 40 42 0F 00                                 ..@B..
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

UVC Windows下UVC摄像头数据分析
这里我们分析一款UVC摄像头来进行数据分析。环境:win10 x64工具:bushound,usbviewer将摄像头插入PC后,打开usbviewer工具,可以看到关于此摄像头的相关信息。可以看到,这个摄像头其实是一个USB复合设备,所以其对应的系统驱动为USBCCGP,然后再由USB复合设......
UVC YUV2、NV12、M420、I420无压缩视频帧描述符GUID
无压缩数据格式的官方文档为:USB_Video_Payload_Uncompressed_1.5.pdf,其下载地址为:https://www.usb.org/sites/default/files/USB_Video_Class_1_5.zip UVC无压缩的数据格式支持四种数据格式类型,见下表......
UVC MJPEG视频帧描述符
Motion-JPEG视频格式描述符OffsetFieldSizeValueDescription0bLength1Number此描述符的大小,以字节为单位:111bDescriptorType1ConstantCS_INTERFACE描述符类型。......
UVC 视频帧描述符
视频帧描述符(简称帧描述符)用于描述解码后的视频以及基于帧格式支持的静止图像帧尺寸和其他帧特定特性。帧描述符(如果需要)紧跟在相关的格式之后.UVC已经定义的数据帧格式类型见下表(以VS_FRAME开头):描述符类型值VS_UNDEFINED0x00VS_INPUT_HEADER0x01VS_OUT......
UVC H264视频帧描述符
H264视频格式结构体定义typedef struct _H264_VIDEO_FORMAT_DESCRIPTOR{ UINT8 bLength; UINT8 bDescriptorType; UINT8 bDescriptorSubtype; UIN......
UVC H265视频帧描述符
H265视频帧描述符H264视频帧描述符结构体一样,只是参数不同而已。H265视频格式结构体定义typedef struct _H265_VIDEO_FORMAT_DESCRIPTOR{ UINT8 bLength; UINT8 bDescriptorType; ......
USB摄像头同步传输H264遇到的花屏问题
以往拿到的摄像头数据传输都是批量传输,本人也只在音频驱动的开发中使用了同步传输。这次突然拿到一个摄像头,数据采用的是同步传输,本以为很简单的代码移植,却没有想到还是遇到了一个坑,自己花费了大力气来排查,在这期间自己也看了大量的资料,今天在这里做一个简单的总结。以前的摄像头拿到的USB摄像头如批量传......
H264基本原理
本文的转载得到了零声教育的QQ同意。前言H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。但为了用好H264,我们还是要对H2......
H265(HEVC)深度解析
本文的转载得到了零声教育的QQ同意。数字视频的超高清潮流奔腾向前,帧率从30 fps向60fps、120fps甚至240fps进发,与此同时,物理媒介日薄西山,内容正通过有形无形的网络在世界各个角落的终端设备上传递。高度密集的数据给带宽和存储带来巨大挑战,当前主流的H.264开始不敷应用,而新......
视频编码格式分类
本文的转载得到了零声教育的QQ同意。跟音频编码一样,视频编码最重要的目的也是为了进行数据压缩,以此来降低数据传输和存储成本。以一路分辨率 720x1280(常说的 720P),帧率为 30 fps 的视频为例,如果不经过编码压缩,直接传输或存储原始的 RGB 数据,对应的码率是:720 * ......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!