【全志T113-S3_100ask】14-1 linux采集usb摄像头实现拍照

  • 背景
  • (一)FFmpeg
    • 1、简介:
    • 2、交叉编译FFmpeg
    • 3、测试
  • (二)fswebcam
    • 1、背景
    • 2、交叉编译fswebcam
    • 3、测试

背景

在开发板上有一个csi转dvp接口的摄像头,但是,目前还不会驱动,先使用usb摄像头来采集图像数据。
本小节使用ffmpeg和fswebcam实现拍照。

(一)FFmpeg

1、简介:

  • FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
  • 前面的"FF"代表"Fast Forward"。
  • FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
  • 在Linux平台上,ffmpeg对V4L2的视频设备提供了很好的支持,如:
./ffmpeg -t 10 -f video4linux2 -s 176*144 -r 8 -i /dev/video0 -vcodec h263 -f rtp rtp://192.168.1.105:5060 > /tmp/ffmpeg.sdp

以上命令表示:采集10秒钟视频,对video4linux2视频设备进行采集,采集QCIF(176*144)的视频,每秒8帧,视频设备为/dev/video0,视频编码为H263,输出格式为RTP,后面定义了IP地址及端口,将该码流所对应的SDP文件重定向到/tmp/ffmpeg.sdp中,将此SDP文件上传到流媒体服务器就可以实现直播了。

2、交叉编译FFmpeg

2-1 获取源码:可以通过官网http://ffmpeg.org/进行源码的下载,也可以直接通过git获取:

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg


2-2 交叉编译

./configure --cross-prefix=arm-linux-gnueabi- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabi-gcc --arch=arm --prefix=../output --enable-shared --disable-static --enable-ffmpeg --disable-armv5te --disable-yasm
make
make install



2-3 移动文件:
将…/output/bin下的命令拷贝到根文件系统的/usr/bin
将…/output/lib下的库拷贝到根文件系统的/usr/lib

3、测试

ffmpeg -i /dev/video0  -vframes 1 -s 1920x1080 -q:v 2 -f image2   ./test1.jpg

但是发现拍照出来的很小,像素虽然达到了所设置的大小,但是其拍照质量不高,像是强制将640x480拉大至所设置的像素。

(二)fswebcam

1、背景

其实对于fswebcam,更多的使用是在树莓派上。

但是它也能对usb摄像头快速实现拍照功能。
其实在buildroot里面已经集成了fswebcam的包,对于使用100ask_T113的buildroot的同学可以按照以下操作实现usb拍照。

2、交叉编译fswebcam

  • 2-1 在buildroot目录下 make menuconfig

  • 2-2 在英文状态下输入左斜杠进入搜索

  • 2-3 然后输入 fswebcam ,回车

  • 2-4 此时发现只有一项,且“Symbol: BR2_PACKAGE_FSWEBCAM [=n] ”
    .意思是fswebcam没有启用,可以直接按 1

  • 2-5 然后按空格键选中

  • 2-6 然后按ESC键,直到

    然后回车

    然后

make V=1

编译完之后烧到内存卡

3、测试

fswebcam -d /dev/video0  -S 10 --no-banner -r 1920x1080./test.jpg


即可实现拍照
但是如果像素比较高如500w,会栈溢出,然后重启设备,这时候可以考虑增加交换分区swap,可参考
https://blog.csdn.net/qq_30960647/article/details/123260670

【全志T113-S3_100ask】14-1 linux采集usb摄像头实现拍照(FFmpeg、fswebcam)相关推荐

  1. Linux下用FFMPEG采集usb摄像头到RTMP

    Linux下用 FFMPEG 采集 usb摄像头视频 和 摄像头内置麦克风音频 到RTMP服务 ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 - ...

  2. linux 远程挂载摄像头_如何实现嵌入式Linux下USB摄像头视频采集

    展开全部 在linux下所e5a48de588b662616964757a686964616f31333337613134有设备都是文件.所以对摄像头的操作其实就是对文件的操作.USB摄像头的设备文件 ...

  3. linux开发板usb摄像头,ARM9+Linux下USB摄像头图像采集

    终于实现了在Micro2440+Linux2.6.29环境下通过NFS文件系统实现USB摄像头图像采集.在此,做一个总结,以备后续参考. 实验条件:RedHat9.0(内核版本2.4.18),Micr ...

  4. 启用linux内核对usb摄像头的支持,linux利用USB摄像头

    www.linuxsir.org/main/node/221?q=node/221 上述帖子是关于摄像头(WebCam)在Linux中批准Spcaserv 架设网络视频监控服务器 (v0.1b). 在 ...

  5. debian linux上usb摄像头,debian linux 下面安装摄像头

    摄像头是天敏的minicom,硬件像素30万,插值像素48万.最大分辨率640x480. 安装驱动的过程如下: 软件包是spca5xx-source.这是source for the spca5xx ...

  6. linux 添加usb摄像头,在linux下玩转usb摄像头

    版权声明:本文为博主原创文章,未经博主允许不得转载. 硬件平台:PC机一台 .usb摄像头 操作系统:Linux3.0.8 交叉编译环境:arm-none-Linux-gnueabi-gcc 4.5. ...

  7. linux系统USB摄像头反应慢,Linux下OpenCV打开USB接口的UVC摄像头及索引号是202的原因...

    一般来说,USB的UVC摄像头在Linux平台下通过V4L驱动来使用.OpenCV打开USB的UVC摄像头一般也通过V4L驱动来打开.打开方法网上都有,一般就是通过VideoCapture的open( ...

  8. Linux多路USB摄像头直播画面位置固定

    文章目录 产生问题的原因 根据USB通道确定设备节点 代码实现 关键函数说明 void *realloc(void *mem_address, unsigned int newsize) ssize_ ...

  9. 【高分】ubuntu 、打开USB摄像头、Linux、USB摄像头驱动

    一.让系统可以识别到usb摄像头设备     打开终端,输入命令:ls /dev/v*,则可看到"/dev/video0",表示成功驱动摄像头. 如果没有的话,拔掉摄像头,重新插上 ...

最新文章

  1. NeurIPS 2020放榜,接收率史上最低!AC:低接收率带不来有趣的论文
  2. numa节点_漫步云端NUMA调度
  3. NanoPi NEO Air使用十一:编写SPI驱动点亮TFT屏幕,ST7789V
  4. 一个web左侧菜单例子
  5. P4556 雨天的尾巴
  6. Cassandra - Insert after Delete fails silently
  7. 如何向 Microsoft 管理控制台添加证书管理器
  8. java循环的内部改变循环变量的值_java在for循环中怎样修改参数值?
  9. Linux根据软件包的名称查看可供安装的包
  10. python监控服务器信息进行可视化_Python实现数据可视化,看如何监控你的爬虫
  11. php如何优雅地把数组传递给前端js脚本?
  12. vue项目开发之v-for列表渲染的坑
  13. pb模型多batch_介绍Modern Batch和计算密集型编程模型
  14. OutLook设置管理规则和通知
  15. 山东济南计算机比赛,第十二届齐鲁软件大赛及首届济南市计算机科技奖颁奖盛典举行...
  16. 腾讯云快速增长背后 三大短板仍需补足
  17. ESP32快速实现3.2英寸TFT LCD中jpeg图像(ILI9341)
  18. 【8.6】代码源 - 【前缀集】【矩阵游戏】【谁才是最终赢家?】【放置多米诺骨牌】
  19. 有趣的路灯问题——按规律打印图形
  20. 数据库的基本概念-基础(课堂笔记)

热门文章

  1. B站 ‘顶流‘ 实战项目,yyds
  2. 用koala编译过程中,koala出现invalid byte sequence in utf-8 这个报错的解决方法
  3. django+vue+nginx+frp搭建漫画网站之爬虫部分新增站点漫画狂cartoonmad(四)
  4. Android是什么牌子,美国最受欢迎的Android手机是哪个品牌?
  5. 用Animation动画实现Android应用的欢迎界面
  6. Ubuntu没有声音(听不到声音)的解决方法
  7. 如何有效地开展头脑风暴
  8. 亚马逊签约第五届进博会;黑芝麻智能与MAXIEYE达成合作;新思科技与达索系统合作打造业界首个整体照明设计平台 | 全球TMT...
  9. Apollo 中的 长轮询 定时机制
  10. 高数 | 傅里叶级数、狄利克雷收敛定理、正弦级数与余弦级数