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

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

Watrt1年前 (2025-09-06)LINUX9000

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


打赏 支付宝打赏 微信打赏

相关文章

在Linux中怎么使用cron计划任务

在Linux中怎么使用cron计划任务

没有时间运行命令?使用 cron 的计划任务意味着你不用熬夜程序也可以运行。系统管理员(在许多好处中)的挑战之一是在你该睡觉的时候去运行一些任务。例如,一些任务(包括定期循环运行的任务)需要在没有人使用计算机资源的时候去运行,如午夜或周末。在下班后,我没有时间去运行命令或脚本。而且,我也不想在晚上去启动备份或重大更新。取而代之的是,我使用两个服务功能在我预定的时间去运行命令、程序和任务。cron 和 at 服务允许系统管理员去安排任务运行在未来的某个特定时间。at 服务指定在某个时间去运行一次任...

mpalqyer 播放命令

mpalqyer 播放命令

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

关于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  ...

Deepin Linux修复grub引导

Deepin Linux修复grub引导

环境说明:一直使用的是Win7+Deepin 15.5。后来全新安装了Win 10,需要修复grub第一步:在Windows操作系统下使用深度官方的U盘启动制作器 制作U盘第二步:开机U盘启动进入Deepin linux安装界面,待进入到安装界面选择语言时,按住Crtl+Alt+F2/F1进入Linux tty终端。并执行以下命令完成修复sudo fdisk -l/*根据查询结果确定deepin 的/目录和/boot目录所在的分区编号*/sudo mount&nbs...

buildroot编译中的问题

buildroot编译中的问题

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

荔枝派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...

Linux没有最小只有更小----迷你Linux版本大集合

Linux没有最小只有更小----迷你Linux版本大集合

    自从去年到现在已经收集了上百种版本的Linux和Unix,至于Unix就不想说了,没有Linux的功底是很难驾驭Unix的,我在这里只把小于360M的Linux以及一些非Linux但是很像Linux的版本也发布一下,我本人喜欢安静,如果你想要这些迷你版本的Linux光盘的话,建议去官网下载就OK了。英语不行的话随时带个字典。有些没有桌面,想知道哪些没有桌面的话请自己网上查资料!下面就是绝大部分小于361M的Linux及其非Linux名单,参考时间为...