← Blog

The BC-250 has no video encoder. It can still stream your games.

The BC-250's video encoder doesn't work, so most streaming hosts can't use it. Punktfunk's PyroWave codec encodes on the GPU's shader cores instead, over a cable.

The BC-250 is a cheap board built around a cut-down PlayStation 5 chip: six Zen 2 cores, PS5-class graphics and 16 GB of GDDR6. With Linux on it, it makes a capable gaming box. Streaming from it is the hard part.

The missing piece

Streaming hosts encode on the GPU's video block: NVENC on NVIDIA, VCN on AMD. On the BC-250 that block doesn't work, and a software encoder on the CPU would take cores the game needs.

A codec that runs on shaders

Punktfunk ships PyroWave, an open-source codec by Hans-Kristian Arntzen. It runs as Vulkan compute shaders, the same kind of work a game does, and compresses each frame on its own with a wavelet transform:

  • It's fast. About 0.15 ms to encode and 0.07 ms to decode a 1080p frame on an RTX 5070 Ti. Not measured on a BC-250.
  • A lost packet costs one frame. No frame depends on another, so there is no wait for a keyframe.

These clients decode it: Linux (including the Steam Deck), Windows on x64, Mac, iPhone, iPad and Apple TV with Apple silicon or an A13 or newer, and 64-bit Android with a Vulkan 1.3 GPU. The LG TV app and Moonlight don't.

It wants a cable

PyroWave trades bandwidth for speed. At the default 1.6 bits per pixel:

  • 1080p at 60 fps: about 200 Mbps
  • 1080p at 120 fps: about 400 Mbps
  • 1440p at 120 fps: about 710 Mbps
  • 4K at 60 fps: about 800 Mbps

Before the first frame the client tests the link. If the link can't carry the rate, the session drops to 70 % of what the test measured, and the picture gets softer. Wi-Fi can't carry these rates, hence the name PyroWave (wired LAN).

Two more things:

  • It shares the GPU with your game. The encoder runs at real-time GPU priority, which the host packages set up. A game that maxes out the GPU gives up a little frame rate; see streaming under GPU load.
  • HDR and 4:4:4 work on Linux. 4:4:4 costs about 1.6 times the bits. HDR needs a gamescope session with the punktfunk-gamescope package.

Setting it up

  1. Install the Punktfunk host on the BC-250. The download page has the command.
  2. Connect the BC-250 and your client with cables.
  3. On the client, set Video codec to PyroWave (wired LAN).
  4. Start at 1080p or 1440p and 60 fps.

Step 3 matters. Punktfunk never picks PyroWave by itself: on Automatic the host looks for a hardware encoder the BC-250 doesn't have. The host needs no setup.

Every client and a bitrate calculator are in the PyroWave docs.