使用V4L2框架采集摄像头出现mmap:Permission denied解决方法

更新,从摄像头采集的第一帧图像出现对折的原因已经找到,是因为在YUYV转RGB的时候多循环了一次导致的!也就是越界访问的问题!谨记!以下为原文


最近在写个基于V4L2的简单的摄像头采集程序,结果遇到两个问题,如下

  1. mmap: Permission denied

    根据V4L2框架,将摄像头采集的程序映射到用户控件步骤时出现如下错误:

mmap : Permission denied

解决方法:
我程序中调用open函数时打开方式用的是O_RDONLY,然后出错,后来发现是打开摄像头文件的方式的问题,正确打开方式为O_RDWR。
2. 摄像头图像对折问题
一切就绪后,从摄像头读取一帧图像,经过解码之后,转变为JPEG文件后,打开的图像是对折的,但是之后的所有图像没有任何问题,也就是说第一次采集出的图像有问题,之后没有问题,如下图:
使用V4L2框架采集摄像头出现mmap:Permission denied解决方法_第1张图片
解决方法:
目前我的解决方法是将第一帧头像丢弃,采集第二帧作为自拍图像保存起来就没有问题.
有遇到类似问题的大佬,麻烦告知解决方案,不胜感激!

你可能感兴趣的:(Linux编程)