当前位置:首页 > 技术 > LINUX > 正文内容

Linux 系统中将 USB 摄像头的图像显示到fb0帧缓冲设备

Watrt11个月前 (09-06)LINUX7010

要在 Linux 系统中将 USB 摄像头的图像显示到fb0帧缓冲设备(分辨率 240×240),可以使用ffmpeg或mplayer等工具来处理视频流并输出到帧缓冲设备。以下是具体步骤:

ffmpeg可以直接捕获 USB 摄像头视频流,进行格式转换和分辨率调整,然后输出到fb0。

确认摄像头设备

首先先确定 USB 摄像头的设备路径,通常是/dev/video0(可通过ls /dev/video*查看):

bash

ls /dev/video*

使用 ffmpeg 输出到 fb0

运行以下命令,将摄像头视频流转码为 240×240 分辨率并显示到fb0:

bash

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 \
  -vf "scale=240:240" -pix_fmt rgb565 \
  -f fbdev /dev/fb0


参数说明:

-f v4l2:指定输入格式为 Video4Linux2(摄像头常用格式)。

-video_size 640x480:摄像头的原始分辨率(可根据实际情况调整)。

-i /dev/video0:输入设备为 USB 摄像头。

-vf "scale=240:240":将视频缩放到 240×240 分辨率。

-pix_fmt rgb565:指定输出像素格式(需与fb0支持的格式匹配,可通过fbset查看)。

-f fbdev /dev/fb0:输出到帧缓冲设备fb0。


使用 transpose 滤镜可以将画面旋转90度的整数倍


顺时针旋转90度:

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vf "transpose=1" -pix_fmt rgb565 -f fbdev /dev/fb0

逆时针旋转90度:

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vf "transpose=2" -pix_fmt rgb565 -f fbdev /dev/fb0

旋转180度 (相当于上下颠倒+左右镜像):

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vf "transpose=1,transpose=1" -pix_fmt rgb565 -f fbdev /dev/fb0

水平或垂直翻转

使用 hflip (水平翻转) 或 vflip (垂直翻转) 滤镜来镜像画面。

左右镜像(水平翻转)

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vf "hflip" -pix_fmt rgb565 -f fbdev /dev/fb0

上下颠倒(垂直翻转):

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vf "vflip" -pix_fmt rgb565 -f fbdev /dev/fb0

组合滤镜(最常见场景)

ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -vf "scale=240:240,transpose=1,transpose=1,hflip" -pix_fmt rgb565 -f fbdev /dev/fb0


打赏 支付宝打赏 微信打赏

相关文章

使用buildroot构建根文件系统

使用buildroot构建根文件系统

使用buildroot构建根文件系统buildroot可用于构建小型的linux根文件系统。大小最小可低至2M,与内核一起可以放入最小8M的spi flash中。buildroot中可以方便地加入第三方软件包(其实已经内置了很多),省去了手工交叉编译的烦恼。下载安装首先安装一些依赖,比如linux头文件:apt-get install linux-headers-$(uname -r)然后下载安装:wget https://buildroot.org/do...

关于CentOS 下 httpd 修改默认的目录后 403 错误的 解决

关于CentOS 下 httpd 修改默认的目录后 403 错误的 解决

step 1 : 首先改你要设置的目录权限       chmod -R 755 /home/html          -------------->>  /home/html   是你存放你的页面的目录   这里我顺便记录下关于selinux 的命令吧    getenforce=>查看 selinux的状态&nbs...

Linux系统信息查看命令大全

Linux系统信息查看命令大全

最近看了一些Linux命令行的文章,在系统信息查看方面学到不少命令。想起以前写过的一篇其实Linux这样用更简单,发现这些系统信息查看命令也可以总结出一篇小小的东西来了。另外这里还有非常多的命令,可以作为参考。系统# uname -a               # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue   # 查看操作系统版本# cat /proc/cpuinfo  ...

buildroot编译中的问题

buildroot编译中的问题

在编译中遇到flex 报错。一直过不了。后来发现安装flex bison两个包后解决sudo apt-get install flex bison...

LINUX 使用sendmail邮件备份

LINUX 使用sendmail邮件备份

首先安装:sudo apt-get install sendmail然后在终端可以使用mail来发邮件echo "ESP32固件"|mail -s "esp32" -A "./fw.bin" -r "bak@xxx.com" xb100@qq.com注意很有可能收到的邮件在垃圾箱里面。把发件地址加到白 名单中...

利用BusyBox ~私人定制 My LINUX~

利用BusyBox ~私人定制 My LINUX~

前言  我在今天在这里跟大家详细地探讨一下Linux系统的定制过程和实现例如、用户能够远程登录;和Nginx能够稳定地运行在我们私人定制的LINUX系统上、一步一步从头开始定制属于我们自己的系统。正文   首先我们先来简单的介绍一下我们这里定制属于自己的Linux系统的基本元素.   一个定制的linux内核+一个定制的busybox就可以定制一个小型的Linux操作系统了,安装Dropbear和Nginx,Linux的组成 部分包括内核空间和用户空间、而...

 Debian 9.9 (stretch) 文件系统制作

Debian 9.9 (stretch) 文件系统制作

0. 准备工作:sudo apt install qemu-user-static -y sudo apt install debootstrap -y mkdir rootfs1. debootstrapdebootstrap --foreign --verbose --arch=armhf  stretch rootfs http...

老是提示:newer kernel available 解决方法

老是提示:newer kernel available 解决方法

这个是由于没有正确的安装内核造成的。可以直接关掉提示 sudo apt purge needrestart...