本文目录一览

1,v4l2 与 gstreamer 的关系

楼主你好,关于V4L2在文档中的Chapter 8 Video for Linux Two (V4L2) Driver解释的很清楚,建议你先看一下。

v4l2 与 gstreamer 的关系

2,V4L和V4L2的区别

查看系统/usr/include 下面的头文件,就说明支持v4l2 支持v4l 一般情况下,只有其中的一个头文件 不过很多系统已经不支持v4l 了,ubuntu就是的

V4L和V4L2的区别

3,V4L2采集图像并在LCD上显示的图像格式问题

图3图像采集卡在采集数据时的工作时序 其中,VSYNV为场同步输出脉冲,HREF为也用于SRAM和FLASH的片选和读写控制,同时还负责LCD的显示控制。 2 软件设计

V4L2采集图像并在LCD上显示的图像格式问题

4,v4l2 int device 是个什么概念

源码中: fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV; fmt.fmt.pix.field = V4L2_FIELD_INTERLACED; ioctl (fd, VIDIOC_S_FMT, &fmt); 指定了采集图像的格式为YUYV格式。 要像采集成JPEG图像,得查询一下摄像头是否有相应功能,如果没有相应...

5,linux v4l2图像采集

如果要自己实现的话,那么第9步你能通过VIDIOC_DQBUF请求来获取到一帧视频。如果你想存成AVI的,那么你得了解AVI文件格式。avi是一种RIFF的实现balabalabala......总之你大概在初始化的时候就把avi的文件头写好(strh strl之类的,具体看手册),然后第九步的时候取出一帧数据,把长度和偏移连同这帧数据写入文件,同时保存下索引。当写入全部的视频帧后再把索引写入文件,最后关闭录像文件,停止视频采集。如果觉得自己实现麻烦,就移植个ffmpeg啥的,直接支持v4l2和avi容器,一条命令就搞定了
源码中:fmt.fmt.pix.pixelformat = v4l2_pix_fmt_yuyv;fmt.fmt.pix.field = v4l2_field_interlaced;ioctl (fd, vidioc_s_fmt, &fmt);指定了采集图像的格式为yuyv格式。要像采集成jpeg图像,得查询一下摄像头是否有相应功能,如果没有相应功能即使将fmt设置为jpeg最终采集到的还是yuyv格式。yuyv可以转换为bmp数据,然后调用jpeglib库转换为jpg图像,稍稍有些麻烦,但没办法硬件不足就要用软件来弥补了。至于你说的read没读到数据,我现在没有开发环境,没法测试。

6,我在做v4l2视频采集的时候需要将320X240缩小为160X120请问v4l

int posWindow(int *fd) struct v4l2_window window; struct v4l2_format fmt; if(*fd <0) printf("posWindow :fd error :%d\r\n"); return -1; } if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt)) printf("posWindow G_FMT ERROR\r\n"); //return -1; } fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY; fmt.fmt.win.w.left = 100; fmt.fmt.win.w.top = 50; fmt.fmt.win.w.width = 360; fmt.fmt.win.w.height = 288; if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt)) printf("ERROR FMT SET\r\n"); } printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height);}调用: initDisplay(&display_fd); posWindow(&display_fd); 初始化显示设备以后调用缩放函数。

文章TAG:关系  V4L2  v4l2    gstreamer  的关系  
下一篇