当前位置: 技术问答>linux和unix
视频采集遇到的问题
来源: 互联网 发布时间:2015-06-28
本文导语: 摄像头是三星的mpc-10。系统是red 9.0 使用前使用modprobe pwc来载入模块。 使用v4l的api方式。前边获取的视频信息都没有问题,但是在read操作时始终只有38XXX字节。换用mmap时,获取帧地址,返回结果又有错误。不知道...
摄像头是三星的mpc-10。系统是red 9.0
使用前使用modprobe pwc来载入模块。
使用v4l的api方式。前边获取的视频信息都没有问题,但是在read操作时始终只有38XXX字节。换用mmap时,获取帧地址,返回结果又有错误。不知道为什么。
看了别人成功的源代码写进去还是这样。只有使用xatw的x11来显示时有个比较小的窗口将视频信息显示出来。但默认应该有640×480。
不知道什么原因,是不是我的装载方式不对啊!!程序应该没有什么问题。
使用前使用modprobe pwc来载入模块。
使用v4l的api方式。前边获取的视频信息都没有问题,但是在read操作时始终只有38XXX字节。换用mmap时,获取帧地址,返回结果又有错误。不知道为什么。
看了别人成功的源代码写进去还是这样。只有使用xatw的x11来显示时有个比较小的窗口将视频信息显示出来。但默认应该有640×480。
不知道什么原因,是不是我的装载方式不对啊!!程序应该没有什么问题。
|
如果是24bits的bmp,那么应该为w*h*3bytes
如果是24bits的yuv,那么应该为w*h*1.5bytes
你的摄像头采用的是yuv420p的格式,所以根据第二个公式来算:
176*144*1.5=38016
ps1:
你的摄像头读取的width和height没有进行设置,所以它采用的是默认的176*144的大小
ps2:
有的摄像头芯片里面内置了一个jpeg的codec的dsp芯片,也就是if(vid_caps.type & VID_TYPE_MJPEG_ENCODER)为TRUE的时候,这样读出来的数据就是编码过的jpeg数据了,这时读出来的大小就不一定了
如果是24bits的yuv,那么应该为w*h*1.5bytes
你的摄像头采用的是yuv420p的格式,所以根据第二个公式来算:
176*144*1.5=38016
ps1:
你的摄像头读取的width和height没有进行设置,所以它采用的是默认的176*144的大小
ps2:
有的摄像头芯片里面内置了一个jpeg的codec的dsp芯片,也就是if(vid_caps.type & VID_TYPE_MJPEG_ENCODER)为TRUE的时候,这样读出来的数据就是编码过的jpeg数据了,这时读出来的大小就不一定了
|
确认一下驱动安装是否正确?(用lsmod命令查看)