← Blog

Der BC-250 hat keinen Video-Encoder. Streamen kann er trotzdem.

Der Video-Encoder des BC-250 funktioniert nicht, deshalb scheitern die meisten Streaming-Hosts an ihm. Punktfunks Codec PyroWave encodiert stattdessen auf den Shader-Kernen, per Kabel.

Der BC-250 ist ein günstiges Board rund um einen abgespeckten PlayStation-5-Chip: sechs Zen-2-Kerne, Grafik auf PS5-Niveau und 16 GB GDDR6. Mit Linux darauf wird er zu einem brauchbaren Gaming-Rechner. Schwierig wird es beim Streamen.

Das fehlende Teil

Streaming-Hosts encodieren im Video-Block der GPU: NVENC bei NVIDIA, VCN bei AMD. Beim BC-250 funktioniert dieser Block nicht, und ein Software-Encoder auf der CPU nähme dem Spiel Kerne weg.

Ein Codec auf den Shadern

Punktfunk bringt PyroWave mit, einen Open-Source-Codec von Hans-Kristian Arntzen. Er läuft als Vulkan-Compute-Shader, also dieselbe Art Arbeit, die ein Spiel macht, und komprimiert jedes Bild für sich mit einer Wavelet-Transformation:

  • Er ist schnell. Etwa 0,15 ms zum Encodieren und 0,07 ms zum Decodieren eines 1080p-Bilds auf einer RTX 5070 Ti. Auf einem BC-250 nicht gemessen.
  • Ein verlorenes Paket kostet ein Bild. Kein Bild hängt von einem anderen ab, also wartet nichts auf einen Keyframe.

Diese Clients decodieren ihn: Linux (auch das Steam Deck), Windows auf x64, Mac, iPhone, iPad und Apple TV mit Apple Silicon oder ab A13 sowie 64-Bit-Android mit einer Vulkan-1.3-GPU. Die LG-TV-App und Moonlight nicht.

Er will ein Kabel

PyroWave tauscht Bandbreite gegen Tempo. Beim Standard von 1,6 Bit pro Pixel:

  • 1080p mit 60 fps: etwa 200 Mbit/s
  • 1080p mit 120 fps: etwa 400 Mbit/s
  • 1440p mit 120 fps: etwa 710 Mbit/s
  • 4K mit 60 fps: etwa 800 Mbit/s

Vor dem ersten Bild testet der Client die Leitung. Schafft sie die Rate nicht, sinkt die Sitzung auf 70 % dessen, was der Test gemessen hat, und das Bild wird weicher. WLAN trägt diese Raten nicht, daher der Name PyroWave (wired LAN).

Zwei Dinge noch:

  • Er teilt sich die GPU mit deinem Spiel. Der Encoder läuft mit Echtzeit-Priorität auf der GPU; das richten die Host-Pakete ein. Ein Spiel, das die GPU voll auslastet, gibt etwas Bildrate ab; siehe Streaming unter GPU-Last.
  • HDR und 4:4:4 gehen unter Linux. 4:4:4 kostet etwa das 1,6-Fache an Bits. HDR braucht eine gamescope-Sitzung mit dem Paket punktfunk-gamescope.

So richtest du es ein

  1. Installiere den Punktfunk-Host auf dem BC-250. Die Download-Seite hat den Befehl.
  2. Verbinde BC-250 und Client per Kabel.
  3. Stell auf dem Client Video codec auf PyroWave (wired LAN).
  4. Fang mit 1080p oder 1440p bei 60 fps an.

Schritt 3 ist der wichtige. Punktfunk wählt PyroWave nie von selbst: Auf Automatic sucht der Host einen Hardware-Encoder, den der BC-250 nicht hat. Auf dem Host musst du nichts einrichten.

Alle Clients und einen Bitraten-Rechner findest du in der PyroWave-Doku.