Zum Inhalt

Stream Setup

📅 Erstellt: 19.12.2025 🔄 Aktualisiert: 23.08.2026

Streamen mit 2 PCs, diverse Konsolen/Geräten mit HDMI von 720p bis 4K Auflösung und diversen Upscalern

Technisches Geplänkel

Abriss vorhandener Hardware und technischer Details

PC Specs

Morphose
Komponente Bezeichnung
Name Morphose
CPU i7-10700K @ 4,9 GHz all cores
RAM 32 GB DDR4
Storage 1+2 TB NVMe, 3+6 GB HDD, 1 TB SSD
Video nvidia 4080 Super
OS Windows 11 Pro, CachyOS Linux
Capture UVC compat. Avermedia GC553 USB3.x
Framemeister
Komponente Bezeichnung
Name Framemeister
CPU i7-7700 stock
RAM 16 GB DDR4
Storage 512 GB NVMe, Optical DVD-Burner
Video nvidia 1650 Super
OS Windows 11 Pro currently only
Capture Not directly Linux compat. Avermedia GC573 PCIe

Monitor I/O

Name HDMI HDMI DP mDP Spkr
LG Ultragear 21:9 x x x - -
BenQ 16:9 x x x x x

HDMI Matrix 4x2

Momentaner Anschlussplan:

Gerät HDMI_1 HDMI_2 HDMI_3 HDMI_4
MiSTer FPGA - - - x
Scaler - - - x
HD Konsole - - - -
UHD Konsole - - - -

Die Ausgänge HDMI_A und HDMI_B gehen zum LG Monitor, Eingang HDMI-1 und zur Capturekarte.
Optischer und Line-Ausgang gehen in die Soundkarte von Morphose.

V4L2 Gerät(e) steuern

In OBS ist die Nutzung von V4L2 Geräten möglich, über UVC z.B. auch die Avermedia Live Gamer USB GC553.
Jedoch wird eine Quelle das Gerät exklusiv belegen.

Weitere Transformationen sind über Filter wie Zuschneiden/Padding oder Skalierung möglich, somit auch über ein Stream Deck schaltbar. Weitere Geräte- bzw. Hardwareeinstellungen wie Auflösung, Farbraum, Pixelformat und Framerate jedoch nicht, diese sind manuell zu konfigurieren.

In Windows habe ich mir für jeden Upscaler und ggf. deren Auflösungen, sowie Bildformate 4:3 / 16:9 und jedes weitere HDMI Gerät, sofern sie nicht die gleichen Einstellungen benötigen, eine eigene Quelle in OBS angelegt. So, dass ich quasi wie an einem Fernseher die Sender umschalten kann bzw. Eingabequellen und sofort die richtigen Formate und Transformationen habe.

In Linux ist das so nicht möglich, da wie o.g. exklusiv belegt wird. Was auch ein Vorteil ist, ganz klar!
Also muss ich sowas wie multiplexen. Das macht man in Linux wohl mit dem Kernel Loopback Modul v4l2loopback, aus dem AUR zu installieren, ich habe die OBS DKMS Version installiert.

Auflistung der v4l2-Geräte
❯ v4l2-ctl --list-devices
Live Gamer Ultra-Video: Live Ga (usb-0000:00:14.0-3):
        /dev/video0
        /dev/video1
        /dev/media0
Auflistung der verfügbaren Formate
❯ v4l2-ctl --list-formats-ext -d /dev/video0
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'NV12' (Y/UV 4:2:0)
                Size: Discrete 3840x2160
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                Size: Discrete 2560x1440
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 2560x1080
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.008s (120.000 fps)
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x576
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
        [1]: 'YV12' (Planar YVU 4:2:0)
                Size: Discrete 3840x2160
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                Size: Discrete 2560x1440
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 2560x1080
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.008s (120.000 fps)
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x576
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
        [2]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 2560x1440
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 2560x1080
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x576
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
        [3]: 'BGR3' (24-bit BGR 8-8-8)
                Size: Discrete 2560x1440
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 2560x1080
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.042s (24.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x576
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                Size: Discrete 720x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.017s (59.940 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.033s (29.970 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
TLDR Formate
Auflösung Pixelformat FPS
640x480 NV12, YV12, YUYV, BGR3 30, 60
720x480 NV12, YV12, YUYV, BGR3 29.97, 30, 59.94, 60
720x576 NV12, YV12, YUYV, BGR3 25, 50
1280x720 NV12, YV12, YUYV, BGR3 25, 29.97, 30, 50, 59.94, 60
1920x1080 YUYV, BGR3 24, 25, 29.97, 30, 50, 59.94, 60
1920x1080 NV12, YV12 24, 25, 29.97, 30, 50, 59.94, 60, 120
2560x1080 BGR3 30
2560x1080 NV12, YV12, YUYV 30, 59.94, 60
2560x1440 BGR3 30
2560x1440 YUYV 30, 50
2560x1440 NV12, YV12 30, 50, 59.94, 60
3840x2160 NV12, YV12 24, 25, 29.97, 30
Relevante Pixelformate 50, 60 FPS
Auflösung 50 FPS 59.94 / 60 FPS
640x480 - ALL
720x480 - ALL
720x576 ALL -
1280x720 ALL ALL
1920x1080 ALL ALL
2560x1080 - NV12, YV12, YUYV
2560x1440 NV12, YV12, YUYV NV12, YV12
3840x2160 - -
Gerät initialisieren

Zur Initialisierung das Format für /dev/video0 festlegen:

v4l2-ctl -d /dev/video0 --try-fmt-video=width=1920,height=1080,pixelformat=BGR3

Sollte das klappen, also die gewünschten Werte ALLE korrekt angezeigt werden:

❯ v4l2-ctl -d /dev/video0 --try-fmt-video=width=1920,height=1080,pixelformat=BGR3
Format Video Capture:
        Width/Height      : 1920/1080
        Pixel Format      : 'BGR3' (24-bit BGR 8-8-8)
        Field             : None
        Bytes per Line    : 5760
        Size Image        : 6220800
        Colorspace        : sRGB
        Transfer Function : Rec. 709
        YCbCr/HSV Encoding: Rec. 709
        Quantization      : Default (maps to Full Range)
        Flags             : 

kann man das Format festsetzen mit:

sudo v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BGR3

Ggf. die Framerate noch:

sudo v4l2-ctl -d /dev/video0 --set-parm=60

Überprüfen:

v4l2-ctl -d /dev/video0 --get-fmt-video

Loopback Device(s) erstellen

Mit v4l2loopback drei Geräte /dev/video10...12 erstellen mit den jeweiligen Namen und exklusiv Flag (nur einmalige Nutzung erlaubt)

sudo modprobe v4l2loopback devices=3 video_nr=10,11,12 card_label="Stream10,Stream11,Stream12" exclusive_caps=1

Multiplex Stream

Quelle /dev/video0 -> /dev/video10...12
Mit ffmpeg natürlich...

ffmpeg -f v4l2 -input_format bgr3 -framerate 60 -video_size 1920x1080 -i /dev/video0 \
  -vf format=yuv420p \
  -map 0:v -f tee "[f=v4l2]/dev/video10|[f=v4l2]/dev/video11|[f=v4l2]/dev/video12"