`

基础:V4L2支持的视频与图像的格式

 
阅读更多

这些都定义在linux/videodev2.h文件里面:

/*      Pixel format         FOURCC                        depth  Description  */
#define V4L2_PIX_FMT_RGB332  v4l2_fourcc('R', 'G', 'B', '1') /*  8  RGB-3-3-2     */
#define V4L2_PIX_FMT_RGB444  v4l2_fourcc('R', '4', '4', '4') /* 16  xxxxrrrr ggggbbbb */
#define V4L2_PIX_FMT_RGB555  v4l2_fourcc('R', 'G', 'B', 'O') /* 16  RGB-5-5-5     */
#define V4L2_PIX_FMT_RGB565  v4l2_fourcc('R', 'G', 'B', 'P') /* 16  RGB-5-6-5     */
#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16  RGB-5-5-5 BE  */
#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16  RGB-5-6-5 BE  */
#define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  BGR-8-8-8     */
#define V4L2_PIX_FMT_RGB24   v4l2_fourcc('R', 'G', 'B', '3') /* 24  RGB-8-8-8     */
#define V4L2_PIX_FMT_BGR32   v4l2_fourcc('B', 'G', 'R', '4') /* 32  BGR-8-8-8-8   */
#define V4L2_PIX_FMT_RGB32   v4l2_fourcc('R', 'G', 'B', '4') /* 32  RGB-8-8-8-8   */
#define V4L2_PIX_FMT_GREY    v4l2_fourcc('G', 'R', 'E', 'Y') /*  8  Greyscale     */
#define V4L2_PIX_FMT_Y16     v4l2_fourcc('Y', '1', '6', ' ') /* 16  Greyscale     */
#define V4L2_PIX_FMT_PAL8    v4l2_fourcc('P', 'A', 'L', '8') /*  8  8-bit palette */
#define V4L2_PIX_FMT_YVU410  v4l2_fourcc('Y', 'V', 'U', '9') /*  9  YVU 4:1:0     */
#define V4L2_PIX_FMT_YVU420  v4l2_fourcc('Y', 'V', '1', '2') /* 12  YVU 4:2:0     */
#define V4L2_PIX_FMT_YUYV    v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16  YUV 4:2:2     */
#define V4L2_PIX_FMT_UYVY    v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16  YUV 4:2:2     */
#define V4L2_PIX_FMT_VYUY    v4l2_fourcc('V', 'Y', 'U', 'Y') /* 16  YUV 4:2:2     */
#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16  YVU422 planar */
#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16  YVU411 planar */
#define V4L2_PIX_FMT_Y41P    v4l2_fourcc('Y', '4', '1', 'P') /* 12  YUV 4:1:1     */
#define V4L2_PIX_FMT_YUV444  v4l2_fourcc('Y', '4', '4', '4') /* 16  xxxxyyyy uuuuvvvv */
#define V4L2_PIX_FMT_YUV555  v4l2_fourcc('Y', 'U', 'V', 'O') /* 16  YUV-5-5-5     */

 

 

/* two planes -- one Y, one Cr + Cb interleaved  */
#define V4L2_PIX_FMT_NV12    v4l2_fourcc('N', 'V', '1', '2') /* 12  Y/CbCr 4:2:0  */
#define V4L2_PIX_FMT_NV21    v4l2_fourcc('N', 'V', '2', '1') /* 12  Y/CrCb 4:2:0  */
#define V4L2_PIX_FMT_NV16    v4l2_fourcc('N', 'V', '1', '6') /* 16  Y/CbCr 4:2:2  */
#define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 4:2:2  */

/*  The following formats are not defined in the V4L2 specification */
#define V4L2_PIX_FMT_YUV410  v4l2_fourcc('Y', 'U', 'V', '9') /*  9  YUV 4:1:0     */
#define V4L2_PIX_FMT_YUV420  v4l2_fourcc('Y', 'U', '1', '2') /* 12  YUV 4:2:0     */
#define V4L2_PIX_FMT_YYUV    v4l2_fourcc('Y', 'Y', 'U', 'V') /* 16  YUV 4:2:2     */
#define V4L2_PIX_FMT_HI240   v4l2_fourcc('H', 'I', '2', '4') /*  8  8-bit color   */
#define V4L2_PIX_FMT_HM12    v4l2_fourcc('H', 'M', '1', '2') /*  8  YUV 4:2:0 16x16 macroblocks */

/* see http://www.siliconimaging.com/RGB%20Bayer.htm */
#define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */
#define V4L2_PIX_FMT_SGBRG8  v4l2_fourcc('G', 'B', 'R', 'G') /*  8  GBGB.. RGRG.. */

/* compressed formats */ #define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M', 'J', 'P', 'G') /* Motion-JPEG */ #define V4L2_PIX_FMT_JPEG v4l2_fourcc('J', 'P', 'E', 'G') /* JFIF JPEG */ #define V4L2_PIX_FMT_DV v4l2_fourcc('d', 'v', 's', 'd') /* 1394 */ #define V4L2_PIX_FMT_MPEG v4l2_fourcc('M', 'P', 'E', 'G') /* MPEG-1/2/4 */

/* Vendor-specific formats */ #define V4L2_PIX_FMT_WNVA v4l2_fourcc('W', 'N', 'V', 'A') /* Winnov hw compress */ #define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S', '9', '1', '0') /* SN9C10x compression */ #define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P', 'W', 'C', '1') /* pwc older webcam */ #define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P', 'W', 'C', '2') /* pwc newer webcam */ #define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E', '6', '2', '5') /* ET61X251 compression */ #define V4L2_PIX_FMT_SPCA501 v4l2_fourcc('S', '5', '0', '1') /* YUYV per line */ #define V4L2_PIX_FMT_SPCA505 v4l2_fourcc('S', '5', '0', '5') /* YYUV per line */ #define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */ #define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ #define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ #define V4L2_PIX_FMT_MR97310A v4l2_fourcc('M', '3', '1', '0') /* compressed BGGR bayer */ #define V4L2_PIX_FMT_SQ905C v4l2_fourcc('9', '0', '5', 'C') /* compressed RGGB bayer */ #define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */ #define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */


希望有所帮助~~

分享到:
评论

相关推荐

    V4L2官方手册PDF文档,0.12版本

    1. **历史与目的**:V4L2是在早期V4L(Video for Linux)基础上发展起来的,旨在解决V4L的局限性,如缺乏对多设备支持、复杂的API等。V4L2提供了一种统一的、模块化的接口,用于处理视频I/O,包括数字和模拟视频、...

    linux-v4l2完整源代码

    通过分析和学习这个源代码,开发者不仅可以了解V4L2的基本使用方法,还能深入理解其内部机制,这对于开发与视频相关的应用程序,如视频聊天软件、监控系统、图像处理应用等具有极大的价值。同时,由于源代码稍作改动...

    v4l2 QT MJPEG格式 视频采集+屏幕显示+图片保存

    UVC(Universal Video Class)是USB设备类定义的一部分,用于支持USB视频设备,通常与v4l2接口配合使用。 综合以上知识点,我们可以构建一个基于Linux的视频采集系统,它能够从MJPEG格式的视频源中捕获数据,实时在...

    V4L2学习笔记及图像视频采集基本流程

    V4L2学习笔记及图像视频采集基本流程 V4L2(Video For Linux 2)是一种用于视频采集的Linux API,提供了一个标准化的接口来访问视频设备。下面是V4L2学习笔记及图像视频采集基本流程的知识点总结: 一、基本概念 ...

    v4l2中文文档

    6. **图像格式**:V4L2支持多种图像格式,包括YUV、RGB等。开发者需要了解这些格式以便正确处理从设备获取的数据。 7. **时间戳**:每个缓冲区都有一个时间戳,记录了帧生成的时间,这对于同步和延迟计算非常重要。...

    v4l2采集视频并保存和lcd显示

    V4L2是Linux内核中用于支持多媒体设备,如摄像头等的API,它提供了与这些设备交互的能力,包括捕获、编码、解码以及播放等功能。 在这个场景中,我们的目标是通过V4L2接口来采集摄像头的视频数据,并且将其转换为...

    v4l2获取视频yuv视频文件

    在这个项目中,我们看到一个用C语言编写的V4L2程序,其目标是捕获视频流并将其保存为YUV格式的视频文件。下面我们将详细探讨V4L2、YUV以及如何在Linux环境中实现这个功能。 1. **V4L2接口** V4L2是Video for Linux...

    基于Qt开发平台,利用linux下视频采集驱动V4L2,实现视频的采集

    利用Qt,我们可以轻松地创建窗口、控件,并与V4L2驱动进行交互,实现实时显示视频流。 要使用V4L2在Qt中进行视频采集,首先需要打开设备文件,通常是`/dev/video0`,代表第一个视频设备。接着,通过调用`ioctl`系统...

    v4l2中文手册(规范)全五章(包含驱动编写)pdf

    5. 视频和音频输入输出:V4L2支持视频和音频的输入和输出功能,可以应用于多种音视频设备。 6. 高频头和调制器:包括对高频头(用于接收模拟电视信号)和调制器(用于发送模拟电视信号)的控制。 7. 视频标准:...

    v4l2-document.rar_v4l2

    2. **结构体**:V4L2定义了一系列重要的结构体,如`struct v4l2_format`用于描述视频格式,`struct v4l2_buffer`用于缓冲区管理和数据传输,以及`struct v4l2_pix_format`定义了图像的像素格式。 3. **I/O模式**:...

    qt v4l2多线程视频采集

    【描述】:“qt v4l2多线程视频采集摄像头格式为yuyv 640 * 480”意味着在实现该功能时,摄像头输出的视频格式为YUV 4:2:2(通常表示为YUYV),分辨率是640像素乘以480像素。YUV色彩空间是一种常见的视频编码方式,...

    Video for linux two(V4L2)驱动编写指南和V4L2 API 介绍

    7. **视频标准和格式**:V4L2支持多种视频标准(如NTSC、PAL)和各种像素格式。驱动开发人员需要确保设备能正确地设置和转换这些格式。 8. **捕获和显示**:V4L2驱动需要实现捕获视频流(录制)和显示视频流(播放...

    V4L2_capture

    V4L2(Video for Linux Two)是Linux操作系统下的一个接口,用于与视频捕获设备进行交互,如摄像头。V4L2_capture 是一个利用V4L2接口进行视频采集的程序,它能够从摄像头获取数据,并在帧缓冲区(framebuffer)上显示...

    USB摄像头通过v4l2技术采集、储存视频

    v4l2是Linux内核为数字视频设备提供的一种驱动程序接口,它允许用户空间程序直接与硬件进行交互,进行视频的捕获和输出。本文将深入探讨如何利用v4l2接口来实现USB摄像头的视频采集,并结合x264编码器对视频进行编码...

    使用Linux的V4L2读取摄像头数据+Opencv图像处理

    V4L2是Linux内核提供的一种标准接口,用于与视频捕获设备(如摄像头)进行交互。我们将详细解释这一过程中的关键技术点,并给出代码示例。 首先,`V4L2`是Linux系统中用于多媒体设备(如摄像头)的驱动程序接口。它...

    v4l2和opencv

    打开视频设备文件,通过视频采集的参数初始化,通过V4L2接口设置视频图像属性。 申请若干视频采集的帧缓存区,并将这些帧缓冲区从内核空间映射到用户空间,便于应用程序读取/处理视频数据。 将申请到的帧缓冲区...

    Linux下基于v4l2框架的图像采集

    在Linux操作系统中,基于Video for Linux version 2 (V4L2)框架的图像采集是一项核心的技术,它允许用户空间程序与硬件设备(如内置摄像头)进行交互,以捕获和处理视频数据。V4L2是Linux内核提供的一套API,用于...

    QCOM车机平台v4l2 camera hal

    V4L2支持多种视频格式、捕获和输出模式,适用于各种设备,包括数码相机、网络摄像头以及行车记录仪等。 **QCOM车机平台** Qualcomm(QCOM)是一家全球知名的无线科技公司,其在车机平台领域提供了高性能、低功耗的...

    V4L2架构介绍

    总结来说,V4L2架构为Linux系统提供了强大的视频处理能力,涵盖了从硬件驱动到用户空间应用的完整链路,支持多种视频格式和流式传输,同时提供了丰富的控制选项和扩展性。理解并掌握V4L2架构对于开发和维护Linux环境...

    c语言 v4l2 采集图片 拍照

    V4L2 API包括一系列的结构体、枚举和函数,用于控制视频设备,如设置图像格式、捕获帧、传输数据等。 2. C语言编程基础: C语言是一种通用的、面向过程的编程语言,适用于系统级编程,如操作硬件设备。在V4L2中,...

Global site tag (gtag.js) - Google Analytics