USB UVC设备分析工具与方法记录

Windows 系统使用 FFmpeg 查看摄像头详细信息

查看摄像头设备列表

PS C:\Windows\system32> ffmpeg -hide_banner -list_devices true -f dshow -i dummy
[dshow @ 0000014791cab200] "HIK 2K Camera" (video)
[dshow @ 0000014791cab200]   Alternative name "@device_pnp_\\?\usb#vid_2bdf&pid_0281&mi_00#6&2f0841bb&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 0000014791cab200] "OBS Virtual Camera" (video)
[dshow @ 0000014791cab200]   Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{A3FCE0F5-3493-419F-958A-ABA1250EC20B}"
[dshow @ 0000014791cab200] "麦克风 (HIK 2K Camera-Audio)" (audio)
[dshow @ 0000014791cab200]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{A6A166B4-060B-49F8-929E-B9C30F315A4B}"
[dshow @ 0000014791cab200] "麦克风 (Realtek(R) Audio)" (audio)
[dshow @ 0000014791cab200]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{1219F832-41CE-4C4E-9D81-07208B312D91}"
dummy: Immediate exit requested

查看摄像头格式

查看摄像头当前视频格式

PS C:\Windows\system32> ffmpeg -hide_banner -f dshow -i video="HIK 2K Camera"
Input #0, dshow, from 'video=HIK 2K Camera':
  Duration: N/A, start: 182108.727076, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj420p(pc, bt470bg/bt709/unknown), 640x480, 30 fps, 30 tbr, 10000k tbn
At least one output file must be specified

查看摄像头支持的视频格式列表:

PS C:\Windows\system32> ffmpeg -hide_banner -list_options true -f dshow -i video="HIK 2K Camera"
[dshow @ 0000015b3a57b200] DirectShow video device options (from video devices)
[dshow @ 0000015b3a57b200]  Pin "捕获" (alternative pin name "0")
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=640x480 fps=25 max s=640x480 fps=30
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=640x480 fps=25 max s=640x480 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=1280x720 fps=25 max s=1280x720 fps=30
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=1280x720 fps=25 max s=1280x720 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=1280x960 fps=25 max s=1280x960 fps=30
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=1280x960 fps=25 max s=1280x960 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=1920x1080 fps=25 max s=1920x1080 fps=30
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=1920x1080 fps=25 max s=1920x1080 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=2048x1536 fps=25 max s=2048x1536 fps=30
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=2048x1536 fps=25 max s=2048x1536 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=2560x1440 fps=25 max s=2560x1440 fps=25
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=2560x1440 fps=25 max s=2560x1440 fps=25 (pc, bt470bg/bt709/unknown, center)
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=640x480 fps=25 max s=640x480 fps=30
[dshow @ 0000015b3a57b200]   vcodec=mjpeg  min s=640x480 fps=25 max s=640x480 fps=30 (pc, bt470bg/bt709/unknown, center)
[dshow @ 0000015b3a57b200]   pixel_format=yuyv422  min s=640x480 fps=25 max s=640x480 fps=25
[dshow @ 0000015b3a57b200]   pixel_format=yuyv422  min s=640x480 fps=25 max s=640x480 fps=25 (tv, bt470bg/bt709/unknown, topleft)
video=HIK 2K Camera: Immediate exit requested
PS C:\Windows\system32>

查看是逐行还是隔行

PS C:\Windows\system32> ffmpeg  -hide_banner  -filter:v idet -frames:v 100  -an -f rawvideo -y /dev/null -f dshow -i video="HIK 2K Camera"
Input #0, dshow, from 'video=HIK 2K Camera':
  Duration: N/A, start: 182328.665840, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj420p(pc, bt470bg/bt709/unknown), 640x480, 30 fps, 30 tbr, 10000k tbn
/dev/null: No such file or directory
PS C:\Windows\system32> ffmpeg  -hide_banner  -filter:v idet -frames:v 100  -an -f rawvideo null -f dshow -i video="HIK 2K Camera"
Input #0, dshow, from 'video=HIK 2K Camera':
  Duration: N/A, start: 182359.319496, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj420p(pc, bt470bg/bt709/unknown), 640x480, 30 fps, 30 tbr, 10000k tbn
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Output #0, rawvideo, to 'null':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuvj420p(pc, bt470bg/bt709/unknown, progressive), 640x480, q=2-31, 110592 kb/s, 30 fps, 30 tbn
    Metadata:
      encoder         : Lavc59.37.100 rawvideo
frame=  100 fps= 30 q=-0.0 Lsize=   45000kB time=00:00:03.33 bitrate=110592.1kbits/s speed=1.01x
video:45000kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
[Parsed_idet_0 @ 000001c28a1b4e00] Repeated Fields: Neither:   101 Top:     0 Bottom:     0
[Parsed_idet_0 @ 000001c28a1b4e00] Single frame detection: TFF:     0 BFF:     0 Progressive:     7 Undetermined:    94
[Parsed_idet_0 @ 000001c28a1b4e00] Multi frame detection: TFF:     0 BFF:     0 Progressive:   101 Undetermined:     0
PS C:\Windows\system32>

上面 Progressive 统计的帧数大于 0,且 TFF 和 BFF 统计帧数为 0,所以是逐行。

查看支持的分辨率:

Linux 系统

查看本机视频设备

root@zynqmp:/sys/class/video4linux# v4l2-ctl --list-devices
dwc3-gadget (gadget):
        /dev/video4

USB 2.0 Camera: USB Camera (usb-xhci-hcd.1.auto-1.1.3.2):
        /dev/video2
        /dev/video3
        /dev/media1

HIK 2K Camera: HIK 2K Camera (usb-xhci-hcd.1.auto-1.2):
        /dev/video0
        /dev/video1
        /dev/media0

查看支持的分辨率列表

root@zynqmp:~# v4l2-ctl --device=/dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 2048x1536
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 2560x1440
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
        [1]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 640x480
                        Interval: Discrete 0.040s (25.000 fps)

查看当前分辨率

root@zynqmp:~# v4l2-ctl --device=/dev/video0 --all
Driver Info:
        Driver name      : uvcvideo
        Card type        : HIK 2K Camera: HIK 2K Camera
        Bus info         : usb-xhci-hcd.1.auto-1.2
        Driver version   : 5.4.140
        Capabilities     : 0x84a00001
                Video Capture
                Metadata Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : uvcvideo
        Model            : HIK 2K Camera: HIK 2K Camera
        Serial           : SN0002
        Bus info         : usb-xhci-hcd.1.auto-1.2
        Media version    : 5.4.140
        Hardware revision: 0x00001200 (4608)
        Driver version   : 5.4.140
Interface Info:
        ID               : 0x03000002
        Type             : V4L Video
Entity Info:
        ID               : 0x00000001 (1)
        Name             : HIK 2K Camera: HIK 2K Camera
        Function         : V4L2 I/O
        Flags         : default
        Pad 0x01000007   : 0: Sink
          Link 0x02000010: from remote pad 0x100000a of entity 'Extension 3': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
        Width/Height      : 1280/720
        Pixel Format      : 'MJPG' (Motion-JPEG)
        Field             : None
        Bytes per Line    : 0
        Size Image        : 1843200
        Colorspace        : Default
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             : 
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 1280, Height 720
        Default     : Left 0, Top 0, Width 1280, Height 720
        Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1280, Height 720, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1280, Height 720, Flags: 
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 30.000 (30/1)
        Read buffers     : 0
                     brightness 0x00980900 (int)    : min=1 max=255 step=1 default=128 value=128
                       contrast 0x00980901 (int)    : min=1 max=255 step=1 default=128 value=128
                     saturation 0x00980902 (int)    : min=10 max=200 step=1 default=128 value=128
 white_balance_temperature_auto 0x0098090c (bool)   : default=1 value=1
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1
                                0: Disabled
                                1: 50 Hz
                                2: 60 Hz
      white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=4650 value=4650 flags=inactive
                      sharpness 0x0098091b (int)    : min=1 max=255 step=1 default=128 value=128
                  zoom_absolute 0x009a090d (int)    : min=0 max=5 step=1 default=0 value=0
                zoom_continuous 0x009a090f (int)    : min=0 max=0 step=0 default=0 value=0

设置帧率

v4l2-ctl -d /dev/video0 --set-parm=25
v4l2-ctl -d /dev/video0 --set-fmt-video=width=640,height=480,pixelformat=YUYV
posted @ 2025-06-23 08:45  叶余  阅读(195)  评论(0)    收藏  举报