在 Linux 上使用 FFMPEG 从 GV-USB2 捕获视频时出现奇怪的视频失真

在 Linux 上使用 FFMPEG 从 GV-USB2 捕获视频时出现奇怪的视频失真

我正在尝试在运行 Raspbian Buster 的 Raspberry Pi 4B 上从 GV-USB2(一种流行的复合/S-Video 捕获卡)捕获视频。我构建并安装了这些适用于 GV-USB2 的 V4L2 驱动程序,当我尝试通过 S-Video 捕获视频时,出现了一些奇怪的扭曲,看起来像是“视口”的位移。

捕获卡使用官方驱动程序(仅限 Windows)在 Windows 计算机上产生正常输出。

输出v4l2-ctl --all

Driver Info:
        Driver name      : gvusb2
        Card type        : gvusb2
        Bus info         : usb-0000:01:00.0-1.3
        Driver version   : 5.10.17
        Capabilities     : 0x85200001
                Video Capture
                Read/Write
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x05200001
                Video Capture
                Read/Write
                Streaming
                Extended Pix Format
Priority: 2
Video input : 1 (S-Video: ok)
Video Standard = 0x00001000
        NTSC-M
Format Video Capture:
        Width/Height      : 720/480
        Pixel Format      : 'UYVY' (UYVY 4:2:2)
        Field             : Interlaced
        Bytes per Line    : 1440
        Size Image        : 691200
        Colorspace        : SMPTE 170M
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Limited Range)
        Flags             :
Streaming Parameters Video Capture:
        Frames per second: 29.970 (30000/1001)
        Read buffers     : 2

User Controls

                     brightness 0x00980900 (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                            hue 0x00980903 (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                      sharpness 0x0098091b (int)    : min=0 max=15 step=1 default=0 value=0 flags=slider
                 vertical_start 0x0098f900 (int)    : min=1 max=4 step=1 default=2 value=2 flags=slider
               horizontal_start 0x0098f901 (int)    : min=0 max=8 step=4 default=4 value=4 flags=slider

的结果ffmpeg -f video4linux2 -pix_fmt uyvy422 -i /dev/video0 -c:v libx264 -t 10 gvusb2-test.mp4https://youtu.be/Eqn_zlZJVx0

截屏:
视频失真截图

使用yadif视频滤镜有助于消除隔行扫描效果。
结果ffmpeg -f video4linux2 -pix_fmt uyvy422 -i /dev/video0 -c:v libx264 -vf yadif -t 10 gvusb2-test-yadif.mp4https://youtu.be/t13SVu5o-Sc

截屏:
在此处输入图片描述

如果它有任何意义的话,音频可以使用来自同一存储库的附带声音驱动程序正常工作。

如果有人能帮助我或给我一些 Google 信息就太好了。谢谢!

相关内容