Skip to content

πŸ› Issue β€” ristreceiver doesn't output packets on UDP (Main Profile)

πŸ› Issue β€” ristreceiver doesn't output packets on UDP (Main Profile)

Summary

I'm attempting to build a RIST-based bridge from Larix Broadcast (Main Profile, RIST) to OBS, using the ristreceiver and ristsender tools from librist.
However, when I use the Main Profile, I can successfully receive packets and see complete stats β€” but no UDP output is ever emitted, even though it's configured correctly.


What I'm trying to do

I'm developing a professional streaming setup for IRL, using mobile apps (Larix or Moblin) that send a RIST Main Profile stream directly to a local server (Windows for testing, after that it will be instaltion on debian with docker and k8s) that then:

  1. Receives the RIST stream (ristreceiver)
  2. Forwards it to UDP (udp://127.0.0.1:8500)
  3. Sends it to OBS via ristsender (rist://127.0.0.1:8300)

I need the Main profile for accurate packet-level stats (missing, reordered, retries, etc.), and to use the -r logging features.


Initial Setup

I first tried with rist2rist, but it does not allow setting the profile:

rist2rist.exe -i "rist://@:8200?profile=1" -o "rist://127.0.0.1:8300"

Results in:

Unknown or invalid parameter profile
[ERROR] Could not parse peer options for receiver

So I switched to using separate ristreceiver and ristsender processes with -p 1.


Current Command (Working Input)

ristreceiver.exe ^
  -i "rist://@:8200?cname=larix&bandwidth=8000000&buffer=1000&rtt-min=5&rtt-max=200" ^
  -o "udp://127.0.0.1:8500" ^
  -v 6 ^
  -p 1

And:

ristsender.exe ^
  -i "udp://127.0.0.1:8500" ^
  -o "rist://127.0.0.1:8300?cname=obs" ^
  -v 6 ^
  -p 1

Problem

  • βœ… The RIST stream is received correctly from Larix (Main profile)
  • βœ… The receiver-stats log is generated, with high-quality data and bitrates
  • ❌ No UDP packets are ever sent to 127.0.0.1:8500
  • ❌ Nothing is visible in ffplay udp://127.0.0.1:8500 or Wireshark
  • ❌ OBS doesn't receive any stream

Expecetd

When using Main profile and receiving valid RIST input, I expect UDP packets to be sent to the configured output (udp://127.0.0.1:8500), so that ristsender or ffmpeg/OBS can consume them.


Additional Notes

  • I'm on Windows, using libRIST version: v0.2.11-11-g11e0f15
  • ristreceiver is launched via Node.js script to parse stderr logs and expose metrics via HTTP
  • With Larix Broadcast in Simple Profile, everything works end-to-end β€” but I lose per-packet stats
  • With Main Profile, packets are received and parsed correctly, but output never starts
  • Using -o mpegts://127.0.0.1:8500, udp://, or other formats makes no difference

Logs Example (input confirmed, output silent)

1742740261.072457|0.0|[INFO] Starting in Main Profile Mode
...
1742742062.905573|0.0|[INFO] {"receiver-stats":{"flowinstant":{"flow_id":..., "bitrate": 2934770 }}}
...
(no logs about sending packets or output activation)

➑️ Is this a known issue with the Windows build of ristreceiver?

➑️ Is there a flag or workaround to make output activation work with UDP in Main Profile?

➑️ Is rist2rist planned to support Main Profile directly with a flag like -p?


Thank you πŸ™

This setup is extremely valuable for advanced streamers and IRL workflows. Thanks for your amazing work on libRIST!

Edited by Hugo Combe