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

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

Watrt1年前 (2025-09-06)LINUX7500

要在 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


打赏 支付宝打赏 微信打赏

相关文章

mpalqyer 播放命令

mpalqyer 播放命令

mplayer -vo fbdev2 -vf scale=1366:768 film.avi /usr/bin/mplayer -x 800 -y 480 -zoom -framedrop aa.avi...

基于 debootstrap 和 busybox 构建 mini ubuntu

基于 debootstrap 和 busybox 构建 mini ubuntu

最近的工作涉及到服务器自动安装和网络部署操作系统,然后使用 ansible 和 saltsatck 进行配置并安装 openstack 。难点在于服务器的自动安装,由于不单只是通过 PXE 安装服务器,还需要能够安装时进行分区、配置网卡等工作,因此需要在开始安装前,必须先收集服务器的硬件信息。调研了一下目前的开源项目中,提供此类功能的有 tinycorelinux 、 puppet razor-el-mk 可做类似的工作。tinycorelinux 是个很好的工具,整个系统在 PXE 之后在内存...

licheepi_zero开发板 buildroot配置 一键编译

licheepi_zero开发板 buildroot配置 一键编译

开贴记录配置最新buildroot-2018.08.使用buildroot自带工具链一键编译生成uboot,kernel,dtb和rootfs.最新稳定版buildroot下载:buildroot-2018.08.02稳定版我配置好的config文件:配置好的.config本人的开发环境是vmware workstation 15 pro+ubuntu 16.04_x64参照沉鱼的帖子荔枝派Zero V3s开发板入坑记录 (TF/SD卡启动)(主线Linux,主线u-boot)做如下配置:1.t...

Linux系统信息查看命令大全

Linux系统信息查看命令大全

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

荔枝派Nano 全流程指南

荔枝派Nano 全流程指南

u-boot 初体验安装交叉编译链首先需要安装交叉编译链:# 此处为获取7.2.1版本,您可获取其他版本或者通过链接直接下载 wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz tar -vxJf gcc-li...

[转]《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

[转]《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

转自哇酷网=丨晋丨通过参考荔枝派nano官方和论坛大佬的帖子,总结了烧录 spi-flash 启动的方法。通过搜寻资料,把其中有错误或者做了多余的操作的步骤做了修正,以免大家再次踩坑,耗费青春。以下包括 uboot、kernel、buildroot 和 烧录的详细步骤和需要注意的问题,尽量精简方法,以期容易上手和理解。各种配置项也做了详细注释,要知其然,也知其所以然。最理想的状态应该是是:有的坑,踩的人多了,也便没有了坑。论坛不太好排版,有需要的也可以去我的博客看:P:全志F1C100S/F1C...

修改U-BOOT,输出信息在LCD上显示,并使用USB连接键盘使用控制台

修改U-BOOT,输出信息在LCD上显示,并使用USB连接键盘使用控制台

修改方法:一:修改U-BOOT   include/configs/suniv.h#define CONFIG_BOOTCOMMAND"fatload mmc 0:1 0x80800000 zImage; "  \              &nb...

控制台终端输出颜色

控制台终端输出颜色

在使用putty、secureCRT、XShell等终端仿真器连接linux系统时,ls、vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性。一、终端文本颜色输出的一般示例在bash中,通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:echo -e "\033[31mRed Text\033[0m" echo -e "\033[32mGreen Text\033[0m...