로그인
Sign in
  • Q: [2026.07.25] 웹캠 Webcam zharyong 2026.07.25
    A:

    KDE PLASMA/WAYLAND 환경에서 적당한 웹캠용 프로그램


    몇 수십년 동안 사용하지 않았던 웹캠을 당근을 통해서 하나 구입하여 테스트해 보았다. 중고로 구입한 웹캠은 QHD 1944P라는 모델로 고해상도를 지원하는 것이 특징이며, 단돈 1만원에 구입했다. 


    세월이 많이 흐르다보니 KDE 환경에서 동작하는 프로그램도 많이 바뀌었다. Kamoso를 대표적으로 지원하는 것 같은데, 사실 kamoso는 이전의 kamerka보다도 사용하기도 불편하거니와 설정도 그리 쉬운 편이 아니어서도 이 프로그램 대신에 어떤 프로그램이 적합할 지 찾아보니 webcamoid가 제일 적합해 보였다. 


    그래서 dnf로 이 패키지를 설치한 후 이 프로그램을 동작시켜 웹캠을 구동해 보니, 상당히 고해상도의 화질에서 매우 부드러운 모션을 지원한다. kamoso는 설정 미숙 탓인지 모르겠으나, 카메라 모션이 상당히 느려서 제대로 쓸 수가 없다. 


    webcamoid에서 불편한 점은 화상이 반대로 나온다는 것이다. 거울 반사 효과처럼 눈에 보이는대로 화면이 아니라, 좌우가 바뀐 모양으로 나오는데, 이것만 보정할 수 있으면 다른 어느 프로그램보다 이 프로그램이 제일 낫다는 생각이다.


    1. USB 장치 lsusb


    $ lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 2972:0047 FiiO Electronics Technology FiiO BTA30 PRO
    Bus 001 Device 003: ID 0bda:b85b Realtek Semiconductor Corp. Bluetooth Radio
    Bus 001 Device 004: ID 18f8:0f97 [Maxxter] Optical Gaming Mouse [Xtrem]
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 002: ID c0f4:03f5 Usb KeyBoard Usb KeyBoard
    Bus 003 Device 003: ID 0bda:5856 Realtek Semiconductor Corp. HD WEB CAMERA
    Bus 003 Device 004: ID 0573:1573 Zoran Co. Personal Media Division (Nogatech) USB Audio and HID
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    2. Video 장치 확인 ls /dev/video*


    $ ls /dev/video* -l
    crw-rw---- 1 root video 81, 0  7월 25 14:58 /dev/video0
    crw-rw---- 1 root video 81, 1  7월 25 14:58 /dev/video1
    crw-rw---- 1 root video 81, 3  7월 25 14:58 /dev/video2
    crw-rw---- 1 root video 81, 2  7월 25 14:58 /dev/video7

    3.  camera 기본 정보 확인 


    $ v4l2-ctl -d /dev/video0 --info
    Driver Info:
           Driver name      : uvcvideo
           Card type        : HD WEB CAMERA: HD WEB CAMERA
           Bus info         : usb-0000:04:00.4-2
           Driver version   : 6.12.74
           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            : HD WEB CAMERA: HD WEB CAMERA
           Serial           : 200901010001
           Bus info         : usb-0000:04:00.4-2
           Media version    : 6.12.74
           Hardware revision: 0x00000001 (1)
           Driver version   : 6.12.74
    Interface Info:
           ID               : 0x03000002
           Type             : V4L Video
    Entity Info:
           ID               : 0x00000001 (1)
           Name             : HD WEB CAMERA: HD WEB CAMERA
           Function         : V4L2 I/O
           Flags            : default
           Pad 0x01000007   : 0: Sink
             Link 0x02000010: from remote pad 0x100000a of entity 'Extension 4' (Video Pixel Formatter): Data, Enable
    d, Immutable

    4. current camera settings info 


    $ v4l2-ctl -d /dev/video0 --get-fmt-video
    Format Video Capture:
           Width/Height      : 1280/720
           Pixel Format      : 'YUYV' (YUYV 4:2:2)
           Field             : None
           Bytes per Line    : 2560
           Size Image        : 1843200
           Colorspace        : sRGB
           Transfer Function : Rec. 709
           YCbCr/HSV Encoding: ITU-R 601
           Quantization      : Default (maps to Limited Range)
           Flags             :

    5. camera 지원 해상도및 FPS 확인 


    $ v4l2-ctl -d /dev/video0 --list-formats-ext
    ioctl: VIDIOC_ENUM_FMT
           Type: Video Capture

           [0]: 'MJPG' (Motion-JPEG, compressed)
                   Size: Discrete 2560x1440
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 1024x768
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 320x240
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 424x240
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 640x360
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 848x480
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 960x540
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 1280x720
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 640x480
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 1920x1080
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 2592x1944
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 1280x800
                           Interval: Discrete 0.033s (30.000 fps)
           [1]: 'YUYV' (YUYV 4:2:2)
                   Size: Discrete 2560x1440
                           Interval: Discrete 0.500s (2.000 fps)
                   Size: Discrete 1024x768
                           Interval: Discrete 0.125s (8.000 fps)
                   Size: Discrete 320x240
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 424x240
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 640x360
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 848x480
                           Interval: Discrete 0.050s (20.000 fps)
                   Size: Discrete 960x540
                           Interval: Discrete 0.067s (15.000 fps)
                   Size: Discrete 1280x720
                           Interval: Discrete 0.125s (8.000 fps)
                   Size: Discrete 640x480
                           Interval: Discrete 0.033s (30.000 fps)
                   Size: Discrete 1920x1080
                           Interval: Discrete 0.200s (5.000 fps)
                   Size: Discrete 2592x1944
                           Interval: Discrete 0.500s (2.000 fps)
                   Size: Discrete 1280x800
                           Interval: Discrete 0.125s (8.000 fps)

    6. ffmpeg를 이용한 카메라 지원 포맷 확인


    $ ffmpeg -f v4l2 -list_formats all -i /dev/video0
    ffmpeg version 6.1.5 Copyright (c) 2000-2026 the FFmpeg developers
     built with gcc 15 (PCLinuxOS 15.2.0-1pclos2025)
     configuration: --prefix=/usr --enable-shared --enable-pic --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/us
    r/include --extra-cflags=-I/usr/include/nvenc --disable-stripping --enable-postproc --enable-gpl --enable-pthreads
    --enable-libtheora --enable-libvorbis --disable-encoder=vorbis --enable-libvpx --enable-runtime-cpudetect --enabl
    e-libaom --enable-libdc1394 --enable-librtmp --enable-libspeex --enable-libfreetype --enable-libgsm --enable-libce
    lt --enable-libopus --disable-libopencv --enable-libopenjpeg --enable-libaom --enable-libvidstab --enable-libtwola
    me --enable-libxavs --enable-frei0r --enable-libmodplug --enable-libass --enable-gnutls --enable-libcdio --enable-
    libmfx --enable-libpulse --enable-libv4l2 --enable-opencl --enable-libmp3lame --enable-sndio --enable-libdav1d --e
    nable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libx264 --enable-libx265 --enable-li
    bvo-amrwbenc --enable-libxvid --enable-libjxl --enable-decoder=atrac3 --enable-decoder=atrac3p --enable-libwebp --
    enable-libfdk-aac --enable-nonfree --enable-cuda --enable-cuvid --enable-nvenc --enable-libzvbi --extra-cflags=-I/
    usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-libsoxr --enable-ladspa --enable-lcms2 --e
    nable-libcodec2 --enable-libass --enable-libdav1d --enable-libdc1394 --enable-libgsm --enable-libiec61883 --enable
    -libilbc --enable-libjack --enable-libjxl
     libavutil      58. 29.100 / 58. 29.100
     libavcodec     60. 31.102 / 60. 31.102
     libavformat    60. 16.100 / 60. 16.100
     libavdevice    60.  3.100 / 60.  3.100
     libavfilter     9. 12.100 /  9. 12.100
     libswscale      7.  5.100 /  7.  5.100
     libswresample   4. 12.100 /  4. 12.100
     libpostproc    57.  3.100 / 57.  3.100
    [video4linux2,v4l2 @ 0x558af4935d80] Compressed:       mjpeg :          Motion-JPEG : 2560x1440 1024x768 320x240 4
    24x240 640x360 848x480 960x540 1280x720 640x480 1920x1080 2592x1944 1280x800
    [video4linux2,v4l2 @ 0x558af4935d80] Raw       :     yuyv422 :           YUYV 4:2:2 : 2560x1440 1024x768 320x240 4
    24x240 640x360 848x480 960x540 1280x720 640x480 1920x1080 2592x1944 1280x800

    7. ffmpeg를 이용한 웹캠 보기


    7.1  720p 화면으로 /dev/video0 장치로 30 프레임 속도로 5초간 캡쳐해서 test.mp4 파일로 저장하기


    ffmpeg -f v4l2 -framerate 30 -video_size 1280x720 -i /dev/video0 -t 5 test.mp4

    7.2 high resolution test 

    ffmpeg -f v4l2 -pix_fmt yuyv422 -framerate 30 -video_size 640x480 -i /dev/video0 -t 3 test_yuyv.mp4
    ffmpeg -f v4l2 -framerate 60 -video_size 640x480 -i /dev/video0 -t 3 test_60fps.mp4
    ffmpeg -f v4l2 -framerate 30 -video_size 1920x1080 -i /dev/video0 -t 3 test_hd.mp4

    7.3 실시간 웹캠 보기 

    ffplay -f v4l2 -framerate 30 -video_size 1280x720 -i /dev/video0


    8. v4l2-ctl -l

    $ v4l2-ctl -l

    User Controls

                        brightness 0x00980900 (int)    : min=-64 max=64 step=1 default=0 value=0
                          contrast 0x00980901 (int)    : min=0 max=100 step=1 default=40 value=40
                        saturation 0x00980902 (int)    : min=0 max=100 step=1 default=64 value=64
                               hue 0x00980903 (int)    : min=-180 max=180 step=1 default=0 value=0
           white_balance_automatic 0x0098090c (bool)   : default=1 value=1
                             gamma 0x00980910 (int)    : min=100 max=500 step=1 default=300 value=300
                              gain 0x00980913 (int)    : min=1 max=128 step=1 default=64 value=64
              power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1 (50 Hz)
         white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=10 default=4600 value=4600 flags=inac
    tive
                         sharpness 0x0098091b (int)    : min=0 max=100 step=1 default=50 value=50
            backlight_compensation 0x0098091c (int)    : min=0 max=2 step=1 default=0 value=0

    Camera Controls

                     auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
            exposure_time_absolute 0x009a0902 (int)    : min=50 max=10000 step=1 default=166 value=912 flags=inactive
        exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=0
                    focus_absolute 0x009a090a (int)    : min=0 max=1023 step=1 default=68 value=68 flags=inactive
        focus_automatic_continuous 0x009a090c (bool)   : default=1 value=1

    9. 

    $ v4l2-ctl --all -d 0
    Driver Info:
           Driver name      : uvcvideo
           Card type        : HD WEB CAMERA: HD WEB CAMERA
           Bus info         : usb-0000:04:00.4-2
           Driver version   : 6.12.74
           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            : HD WEB CAMERA: HD WEB CAMERA
           Serial           : 200901010001
           Bus info         : usb-0000:04:00.4-2
           Media version    : 6.12.74
           Hardware revision: 0x00000001 (1)
           Driver version   : 6.12.74
    Interface Info:
           ID               : 0x03000002
           Type             : V4L Video
    Entity Info:
           ID               : 0x00000001 (1)
           Name             : HD WEB CAMERA: HD WEB CAMERA
           Function         : V4L2 I/O
           Flags            : default
           Pad 0x01000007   : 0: Sink
             Link 0x02000010: from remote pad 0x100000a of entity 'Extension 4' (Video Pixel Formatter): Data, Enable
    d, Immutable
    Priority: 2
    Video input : 0 (Camera 1: ok)
    Format Video Capture:
           Width/Height      : 1920/1080
           Pixel Format      : 'YUYV' (YUYV 4:2:2)
           Field             : None
           Bytes per Line    : 3840
           Size Image        : 4147200
           Colorspace        : sRGB
           Transfer Function : Rec. 709
           YCbCr/HSV Encoding: ITU-R 601
           Quantization      : Default (maps to Limited Range)
           Flags             :  
    Crop Capability Video Capture:
           Bounds      : Left 0, Top 0, Width 1920, Height 1080
           Default     : Left 0, Top 0, Width 1920, Height 1080
           Pixel Aspect: 1/1
    Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:  
    Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:  
    Streaming Parameters Video Capture:
           Capabilities     : timeperframe
           Frames per second: 5.000 (5/1)
           Read buffers     : 0

    User Controls

                        brightness 0x00980900 (int)    : min=-64 max=64 step=1 default=0 value=0
                          contrast 0x00980901 (int)    : min=0 max=100 step=1 default=40 value=40
                        saturation 0x00980902 (int)    : min=0 max=100 step=1 default=64 value=64
                               hue 0x00980903 (int)    : min=-180 max=180 step=1 default=0 value=0
           white_balance_automatic 0x0098090c (bool)   : default=1 value=1
                             gamma 0x00980910 (int)    : min=100 max=500 step=1 default=300 value=300
                              gain 0x00980913 (int)    : min=1 max=128 step=1 default=64 value=64
              power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1 (50 Hz)
                                   0: Disabled
                                   1: 50 Hz
                                   2: 60 Hz
         white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=10 default=4600 value=4600 flags=inac
    tive
                         sharpness 0x0098091b (int)    : min=0 max=100 step=1 default=50 value=50
            backlight_compensation 0x0098091c (int)    : min=0 max=2 step=1 default=0 value=0

    Camera Controls

                     auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
                                   1: Manual Mode
                                   3: Aperture Priority Mode
            exposure_time_absolute 0x009a0902 (int)    : min=50 max=10000 step=1 default=166 value=912 flags=inactive
        exposure_dynamic_framerate 0x009a0903 (bool)   : default=0 value=0
                    focus_absolute 0x009a090a (int)    : min=0 max=1023 step=1 default=68 value=68 flags=inactive
        focus_automatic_continuous 0x009a090c (bool)   : default=1 value=1



    상기 출처 : https://coding-shop.tistory.com/733

       

     

     


  • Q: [2026.07.25] LGU+ Settop Box의 디즈니 해상도 UHD 지원하지 못하는 문제 zharyong 2026.07.25
  • Q: [2026.07.22] qemu-android-x86 RPM 제작 zharyong 2026.07.22
  • Q: [2026.07.21] 심심풀이 땅콩으로 Cest.Linux 환경에서 Android app를 구동하는 방법을 모색하다. zharyong 2026.07.21
  • Q: [2026.07.19] rpm 패키지수 최소한으로 살빼기 전략 zharyong 2026.07.19
  • Q: [2026.07.19] Wayland의 구글 크롬에서 한영 전환되지 않는 문제점 수정 zharyong 2026.07.19
  • Q: [2026.07.18] 셋탑박스 미러링의 장단점 zharyong 2026.07.19
  • Q: [2026.07.18] dracut를 이용한 배포판용 nitramfs.img 이미지 제작 zharyong 2026.07.18
Board Pagination Prev 1 Next
/ 1