v4l2采样usb摄像头并显示

ubuntu

思路:

  1、 首先理解camera工作原理,重点理解 yuv,rgb视频流, 即Sensor数据输出的图像格式;

    大体过程:光线通过镜头Lens进入摄像头内部,通过IR过滤掉红外光,抵达 sensor ,sensor 将光信号转为电信号,在通过ADC电路转为数字信号,此时的数据格式是RAW Data;

    Sensor内的基带芯片进行加工,转换为RGB, YUV等格式输出;

    最基础的是RAWData 数据, 而sensor最后输出的数据类型为RAW data, YUV, RGB,等数据流;

    RGB和YUV都是对每一个感光点(像素点)的编码最后生成的图像流格式;

    RAW Data 是最原始的图像数据流;

    参考链接:  https://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html

 

  2、  通过调用v4l2 视频接口,完成 usb摄像头视频帧的获取;确定当前图像是什么格式;(本人是YUV422);

 

  3、 将视频帧数据落文件即可; (初步通过大小去验证yuv文件是否正确,红色字体),其他的暂时未知;

1
2
3
4
5
6
7
devel@UAGVDU-PC:~/Program/usb_camera$ ll test.yuv
-rw-rw-r-- 1 devel devel 614400 7月  26 18:11 test.yuv
devel@UAGVDU-PC:~/Program/usb_camera$ ./v4l2_test
 -------VIDIOC_G_FMT------------
Frame fmt: width-640, height-480 , pixfmt-1448695129, field-1 ,sizeimage-614400
---{ pixelformat =''YUYV'', description = ''YUYV 4:2:2'' }---
The frame length=[614400]

  4、利用ffplay读取 .yuv文件,进行视频播放

1
ffplay -f rawvideo -video_size 640*480  -pixel_format yuyv422 -i test.yuv
1
2
× -video_size 640*480  : 640×480 是设置捕获的usb摄像头的分辨率,此处应保持一致;
× -pixel_format yuyv422 : 当前保存到文件的视频流帧格式;

  

 

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYFO2iS8' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片