linux系统下 USB 摄像头1080分辨率采集帧率低问题的解决方法

您所在的位置:网站首页 usb摄像头怎么调清晰度 linux系统下 USB 摄像头1080分辨率采集帧率低问题的解决方法

linux系统下 USB 摄像头1080分辨率采集帧率低问题的解决方法

2023-11-26 16:51| 来源: 网络整理| 查看: 265

linux系统上一般使用 video4linux2来操作系统摄像。

1.安装一个 v4l2-ctrl工具:

 sudo apt install v4l-utils

2.查看摄像头支持的视频参数 

sudo v4l2-ctl --all --list-formats-ext

显示信息参考如下(这是我的摄像头,不同的摄像头会有区别 ):

------

ioctl: VIDIOC_ENUM_FMT

Index       : 0

Type        : Video Capture

Pixel Format: 'YUYV'

Name        : YUYV 4:2:2

Size: Discrete 640x480

Interval: Discrete 0.033s (30.000 fps)

Interval: Discrete 0.042s (24.000 fps)

Interval: Discrete 0.050s (20.000 fps)

Interval: Discrete 0.067s (15.000 fps)

Interval: Discrete 0.100s (10.000 fps)

Interval: Discrete 0.133s (7.500 fps)

Interval: Discrete 0.200s (5.000 fps)

------

这里要注意3个参数,Pixel Format 是视频的格式,Size是视频分辨率,Interval是支持帧率。

通常的USB摄像头,对高清视频,如1080,在YUYV格式下,都支持不到25-30帧,一般在3-5帧,原因可能是考虑USB的传输速度;同时,摄像头一般会提供MJPEG的压缩视频格式,内容参考如下:

Index       : 1

Type        : Video Capture

Pixel Format: 'MJPG' (compressed)

Name        : Motion-JPEG

......

Size: Discrete 1920x1080

Interval: Discrete 0.033s (30.000 fps)

Interval: Discrete 0.042s (24.000 fps)

Interval: Discrete 0.050s (20.000 fps)

Interval: Discrete 0.067s (15.000 fps)

Interval: Discrete 0.100s (10.000 fps)

Interval: Discrete 0.133s (7.500 fps)

Interval: Discrete 0.200s (5.000 fps)

------

因此在使用USB摄像头进行1080分辨率的采集时,需要指定视频格式为MJPEG,参考的ffmpeg命令如下:

ffmpeg -f v4l2 -s 1920x1080 -r 30 -vcodec mjpeg -i /dev/video0 -pix_fmt yuv420p -b:v 2000k -vcodec libx264 -preset veryfast -an usb-1080-x264-2m.mp4



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3