Capture cards

A capture card brings an HDMI or SDI signal (a console, a camera, a second computer) into stream-concern as a source. Cards appear in Add source ▸ Hardware, each with its native mode beside its name (“Live Gamer Ultra 2.1 — 3840×2160 @ 60 fps”) on Windows and Linux. This page says what works on each platform, how to add a card with its audio, and what the Capture properties of a card layer do. For webcams and the general camera controls (resolution, frame rate, mirror), see Sources.

What works where

Card family Windows Linux macOS
USB (UVC) cards: Elgato Cam Link, HD60 X / S+, AVerMedia Live Gamer (GC553G2 and others), UGREEN, generic “USB3 Video” yes (Media Foundation) yes (V4L2 / PipeWire) yes (AVFoundation)
Elgato PCIe (4K60 Pro, HD60 Pro) yes, with Elgato’s driver no: Elgato ships no Linux driver no
AVerMedia PCIe (Live Gamer 4K, Live Gamer HD 2) yes, with AVerMedia’s driver yes, with AVerMedia’s Linux module (the card then appears as a V4L2 device) no
Magewell (Pro Capture, USB Capture) yes yes (USB models as UVC; PCIe with Magewell’s module) USB models
Blackmagic DeckLink / UltraStudio only in a build with the decklink feature (below) only in a build with the decklink feature no

A card that is not listed is a UVC device, or is not: UVC cards work everywhere without a driver, others need their vendor’s driver or module.

10-bit and HDR (Windows and Linux). An HDR card’s 10-bit (P010) modes are used when the size and rate you pick exist in no 8-bit format, typically 4K60 on a 4K60 Pro or a GC553G2 in HDR mode. The picture is HDR10 (PQ) or HLG in BT.2020, and the canvas is SDR, so stream-concern tone-maps it: SDR white stays white, brighter highlights roll off softly instead of clipping. There is no HDR canvas yet, so nothing is passed through as HDR. On Linux a V4L2 card that offers P010 or Y210 is captured the same way (V4L2 cannot signal HLG, so an HLG picture is shown as SDR); a card PipeWire opens stays 8-bit. On a computer whose graphics cannot draw 10-bit textures the 8-bit mode nearest to your pick is used. macOS captures cards in 8 bits.

Signal and hot-plug. The Input card says whether a card has a signal, no signal (nothing plugged into it, or its source is off), is busy (another application holds it) or failed, and the mode it negotiated. A card plugged in while stream-concern runs is found without Refresh, and a “(missing)” layer comes back on its own when its card returns, even on another USB port.

High rates. 1440p120, 1080p120 and 4K60 modes are offered like any other in the Resolution and Frame rate lists.

Uncompressed modes a card cannot keep up (Linux). Some USB cards list uncompressed modes faster than their USB budget allows: the Live Gamer Ultra 2.1 offers 1080p60 NV12 but delivers about 21 frames a second of it, while its MJPEG 1080p60 runs at the full rate, and its driver still reports 60. stream-concern counts the frames of a card’s first two seconds; when an uncompressed mode delivers under 80% of its rate and the card has MJPEG at the same size and rate, the capture reopens in MJPEG once, and the Input block says so (“Using MJPEG: the card delivered 21 of 60 fps uncompressed”).

Add a card with its audio

A card’s sound is a separate audio device (Windows pairs it by the device it belongs to, Linux by the USB device it sits on or its serial number). When stream-concern can see it, the Hardware group lists the card twice:

  • Live Gamer Ultra 2.1 adds the picture only.
  • Live Gamer Ultra 2.1 with its audio adds the picture and one mixer strip for the card’s sound, named after the card. The strip belongs to the layer: removing the layer removes the strip it brought.

You can also add the sound later with the layer’s Use camera audio toggle (in the native Mac, Windows and Linux apps), or add the audio device yourself in the mixer.

Capture properties of a card layer

Select the card’s layer and open Capture properties:

  • Resolution, Frame rate, Mirror: as for a webcam.
  • Audio sync: the card’s audio delay in milliseconds (−950 to 20000). Many cards deliver sound slightly ahead of the picture; measure it once (a clap, or the A/V sync test), enter it here, and every time you add this card with its audio its strip starts at that delay. It is remembered per card model, and changing it also moves the strip of this layer. The strip’s own Sync field in the mixer changes only that strip.
  • Deinterlace: for interlaced signals (1080i from a broadcast camera or an older console, 480i/576i from SD equipment).
    • Auto (the default): Bob when the card says the signal is interlaced, nothing otherwise.
    • Off: draw the frames as delivered (you will see combing on motion).
    • Bob: one field at a time, its lines interpolated, alternating the two fields on successive frames of a 50 or 60 fps canvas. Smooth motion, slightly softer detail.
    • Weave: both fields of each frame together. Sharp on still pictures, combs on motion; for cards that deliver the two fields one above the other, Weave puts them back together. Changing it never reopens the card. Windows reads the interlacing from the card’s format, Linux from the driver’s field order; macOS does not report it, so Auto does nothing there.

DeckLink and UltraStudio devices need Blackmagic’s SDK, whose headers may not be redistributed, so they are in builds made with it only:

  1. Install Desktop Video (the driver) from Blackmagic’s support site.
  2. Download the Blackmagic DeckLink SDK (Developer downloads) and unpack it.
  3. Build with the feature and the SDK folder:
    • Linux: DECKLINK_SDK_DIR=/path/to/Blackmagic\ DeckLink\ SDK cargo build --release --features decklink
    • Windows, from a Visual Studio developer prompt (it runs midl on the SDK’s DeckLinkAPI.idl): set DECKLINK_SDK_DIR=C:\path\to\Blackmagic DeckLink SDK then cargo build --release --features decklink. Outside a developer prompt, set MIDL to the path of midl.exe.

In such a build each DeckLink input appears in the Hardware group with the signal it sees (“DeckLink Mini Recorder 4K — 1920×1080 @ 29.97 fps”); the log names its mode and audio channel count (“1080i59.94, 16 audio channels”). The input follows the signal: when the source changes mode, the picture follows. An RGB 4:4:4 signal is captured as RGB, everything else as 8-bit YUV (the card converts 10-bit). DeckLink audio is not captured yet. Official builds and CI are made without the feature.

What the app shows about a card

  • In the Add menu: Webcams and Hardware list each device with its best mode, “Live Gamer Ultra 2.1 — 3840×2160 @ 60 fps”, once a discovery has read its formats.
  • On the layer row: a short badge after the layer’s name with what the card delivers now: “1080p60”, “4K30 NV12”, “1080p59.94 NV12” (the size, the exact frame rate and, unless it is RGB, the pixel format). When the picture stops it reads “No signal”, “Device busy” (another program has the card) or “Error”, in the warning colour. The badge is updated about once a second.
  • In the Inspector’s Input card (always open for a camera or card layer):
    • Signal: OK, or what is wrong and why (“No signal (No picture from Live Gamer Ultra 2.1 for 2 s)”), in the warning colour unless OK.
    • Mode: the format the card negotiated: size, exact frame rate, pixel format and colour (“1920×1080 @ 59.94 fps · NV12 · BT.709 limited”), and Signal format when it is HDR or interlaced.
    • Capturing now: what arrives, with the frame rate measured over the last second.
    • On canvas: the layer’s size on the canvas and its scale against the part of the picture it shows (“960×540 · 50 % of the frame”).
    • Crop: each cropped edge in percent, or none.

When a card shows nothing

  • No signal: a USB card with no HDMI source (or a source that is off) sends no frames at all, and has no way to say why. On Linux, after two seconds without a frame the status line says “Live Gamer Ultra 2.1: No signal (…)”; the layer stays, and the picture appears (with “…: signal”) as soon as the source comes on. Consoles may need HDCP turned off for capture (PlayStation: Settings ▸ System ▸ HDMI ▸ Enable HDCP).
  • Another program has it: a card serves one program at a time on Windows (see Sources).
  • Linux, PCIe card: check that the vendor module is loaded and the card appears in v4l2-ctl --list-devices; Elgato PCIe cards will not.
  • Wrong colours on a 10-bit mode: pick an 8-bit size and rate, and report the card model and mode.