Skip to content

Releases: iFocsy/ScreenBridge

ScreenBridge 1.0.2

Choose a tag to compare

@iFocsy iFocsy released this 21 Aug 06:45

Discord Rich Presence.

While a share is running, your Discord status shows what you are sharing and how many people are watching, with a Watch stream button that opens the invite link.

Discord's own Join button cannot do this. join_secret launches the same application on your friend's machine and hands it a token, rather than opening a URL, so the link is carried by a custom activity button instead.

  • Publishing is a button in the app, not a config key: the eye next to Discord on the start screen, and on the live row while sharing. Flipping it mid-share takes the presence down or puts it back up immediately, without interrupting the stream.
  • The presence names the application or monitor only, never the window title, which can carry document names and URLs.
  • Nothing connects to Discord until something is actually published, so a share with the toggle off never touches it.
  • Discord being closed, or restarted mid-share, is retried quietly in the background and never affects the share.

Two things worth knowing

The button is only visible to other people. Discord never renders activity buttons on your own profile, so checking your own status will not show it.

The link carries the room passcode, so anyone who can see your status can reach the room. They still land in the approval queue and cannot watch until you let them in. Switch the toggle off if you would rather not publish it at all, or set discord_app_id = "" in config.toml to remove the feature and its toggle entirely.

Install (Windows x86_64)

Unzip ScreenBridge-1.0.2-windows-x86_64.zip and run screenbridge.exe. The ffmpeg DLLs it loads at runtime ship in the same folder.

ScreenBridge 1.0.1

Choose a tag to compare

@iFocsy iFocsy released this 21 Aug 00:34

Connection reliability and diagnostics.

Viewers behind symmetric NAT or CGNAT could not connect: the only ICE server in effect was a single STUN host, and STUN alone cannot relay. ICE reached Checking, then failed after its 30s timeout, and the viewer sat on a blank video element with nothing in the log explaining why.

  • The effective ICE server list is now logged at startup, with a warning when it contains no relay.
  • Gathered candidate types are logged, so a missing relay candidate is visible at a glance.
  • A failed peer connection now reports why instead of only changing state.
  • STUN defaults widened from one host to three, so a single DNS failure is not fatal.
  • The dead openrelay.metered.ca entry in the preset configs is replaced with a TURN template.

Connecting from a restrictive network

If a peer is behind CGNAT or a firewall that blocks inbound UDP, a TURN relay is required and no amount of STUN will substitute. Fill in the commented [[ice_servers]] block in config.toml with your relay's host and credentials. TURN on the sharing side alone is enough — viewers connect outward to the relay.

Note that only the transport=udp entry produces relay candidates on the sharer: webrtc-rs 0.17 leaves TURN over TCP and TLS unimplemented. The TCP and TLS URLs are still worth listing, because the list is forwarded to the viewer and browsers do support them.

Install (Windows x86_64)

Unzip ScreenBridge-1.0.1-windows-x86_64.zip and run screenbridge.exe. The ffmpeg DLLs it loads at runtime ship in the same folder.

ScreenBridge 1.0.0

Choose a tag to compare

@iFocsy iFocsy released this 20 Aug 23:20

First ScreenBridge release.

  • Share a single application window, including borderless and fullscreen games, or a whole screen.
  • Per-application audio through WASAPI process loopback, with a configurable exclusion list so a call you are on is not sent back to the viewers. Falls back to whole-system loopback on Windows 10 builds without process loopback.
  • Switch source or stream mode while sharing, without viewers reconnecting.

Install (Windows x86_64)

Unzip ScreenBridge-1.0.0-windows-x86_64.zip and run screenbridge.exe. The ffmpeg DLLs it loads at runtime ship in the same folder.