主题 : 为什么我的摄像头获取不了数据,求助,谢谢 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 64008
精华: 0
发帖: 73
金钱: 370 两
威望: 74 点
综合积分: 146 分
注册时间: 2012-02-28
最后登录: 2012-08-13
楼主  发表于: 2012-04-15 23:29

 为什么我的摄像头获取不了数据,求助,谢谢

start 2.0...
Can't get device information: VIDIOCGCAP
Device name:
Width:0 ~ 0
Height:0 ~ 0
ERROR:VIDIOCGWIN
ERROR:VIDIOCSWIN
ERROR:VIDIOCGPICT
ERROR: VIDIOCSPICT,Can't set video_picture format
ERROR:VIDIOCGMBUF,Can't get video_mbuf
Frames:0
ERROR:mmap
Buffer size:0
Offset:0
ERROR: VIDIOCMCAPTURE
ERROR: VIDIOCSYNC
Segmentation fault

这是终端返回的数据,说明设备是可以打开的,只是获取不了数据
下面是init_video()函数
void init_video(int w,int h,int bpp) /* bpp == bytes per pixel*/
{
  int ret;
  cam_fd = open( USB_VIDEO, O_RDWR );
  if( cam_fd<0 )
    printf("Can't open video device\n");

  ret = ioctl( cam_fd,VIDIOCGCAP,&cam_cap );       /* 摄像头的基本信息*/
  if( ret<0 ) {
    printf("Can't get device information: VIDIOCGCAP\n");
  }
  printf("Device name:%s\nWidth:%d ~ %d\nHeight:%d ~ %d\n",cam_cap.name, cam_cap.maxwidth, cam_cap.minwidth, cam_cap.maxheight, cam_cap.minheight);
  if( ioctl(cam_fd,VIDIOCGWIN,&win)<0 ) {
    printf("ERROR:VIDIOCGWIN\n");
  }
  win.x = 0;
  win.y = 0;
  win.width=w;
  win.height=h;
  if (ioctl(cam_fd, VIDIOCSWIN, &win) < 0) {
    printf("ERROR:VIDIOCSWIN\n");
  }
我用的是开发配戴的那个uvc摄像头,这是根据国嵌视屏里的那个H264那个代码做的!他那里用的是网眼2000,
那我用UVC为什么就不行,他们就是读取的数据传输的形式不一样,那也不应该读取不信息呀!
谁能帮一下我呀,谢谢!!
级别: 侠客
UID: 64008
精华: 0
发帖: 73
金钱: 370 两
威望: 74 点
综合积分: 146 分
注册时间: 2012-02-28
最后登录: 2012-08-13
1楼  发表于: 2012-04-16 16:25
难道。。。难道。。。。。。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
2楼  发表于: 2012-04-16 16:28
可能你做的程序无法支持这个型号的摄像头
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 44981
精华: 0
发帖: 44
金钱: 225 两
威望: 45 点
综合积分: 88 分
注册时间: 2011-04-30
最后登录: 2013-01-22
3楼  发表于: 2012-04-16 16:53
同样遇到这样问题,怎么解决
级别: 侠客
UID: 64008
精华: 0
发帖: 73
金钱: 370 两
威望: 74 点
综合积分: 146 分
注册时间: 2012-02-28
最后登录: 2012-08-13
4楼  发表于: 2012-04-16 18:18

 回 2楼(mindee) 的帖子

就算不支持吧!但从那个终端打印出来的数据,就可以知道,出错的地方在v4l那个指令那里,我用的是v4l指令,只是提示获取不了信息!而且我用的是2.6.38内核呀,里面也有UVC驱动的─────────────────────────────────────────────────────────────────────────────────┐ │  
  │ │        --- V4L USB devices                                                           │ │  
  │ │        <*>   USB Video Class (UVC)                                                   │ │  
  │ │        [*]     UVC input events device support                                       │ │  
  │ │        <*>   GSPCA based webcams  --->    
第二个就是!是不是因为v4l指令那里不行呢??????
级别: 新手上路
UID: 61667
精华: 0
发帖: 26
金钱: 130 两
威望: 26 点
综合积分: 52 分
注册时间: 2012-01-04
最后登录: 2013-03-27
5楼  发表于: 2012-04-18 15:10
请问lz找到解决的问题的方法么? 请提示一下 我也遇到同样的问题,搞了好久,
级别: 新手上路
UID: 61667
精华: 0
发帖: 26
金钱: 130 两
威望: 26 点
综合积分: 52 分
注册时间: 2012-01-04
最后登录: 2013-03-27
6楼  发表于: 2012-04-18 15:20
跟进:是不是驱动那一部份不支持v4l的指令VIDIOCGCAP啊?  期待中
级别: 侠客
UID: 64008
精华: 0
发帖: 73
金钱: 370 两
威望: 74 点
综合积分: 146 分
注册时间: 2012-02-28
最后登录: 2012-08-13
7楼  发表于: 2012-04-21 10:10
换接口,新内核不兼容V4L,用V4l2。。。。。
级别: 新手上路
UID: 75230
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2012-08-04
最后登录: 2017-09-13
8楼  发表于: 2012-08-04 16:29
楼主,你的这个问题解决了吗