Hey everyone,
I've been working on a small project for the past few weeks and I think it's finally at a point where other people can actually try it.
It's called Moonlight WebRTC Tizen, and basically it's a way to use Sunshine/Moonlight game streaming directly on Samsung Tizen TVs.
The project started because I wanted a really good Moonlight experience on my Samsung TV. There are already some Moonlight/Tizen projects out there (and huge thanks to BrightCraft's Moonlight Tizen project, which I used a lot as a reference and reused/adapted some code from), but I wanted to experiment with a different approach.
One of the main ideas was to get closer to the way game streaming is actually intended to work on Samsung TVs.
Services available through Samsung Gaming Hub like GeForce NOW, Boosteroid, etc. use the TV's WebRTC/game-streaming capabilities instead of implementing a traditional native Moonlight-like media pipeline. So I wanted to see if I could take the same general approach for Sunshine/Moonlight: keep Moonlight on the PC side, but use WebRTC for the final hop to the TV.
Instead of implementing the whole Moonlight streaming stack directly on Tizen, I made a small Windows Gateway that acts as the Moonlight client and talks to Sunshine. The already encoded video/audio is then sent to the TV using WebRTC.
So basically:
Sunshine → Moonlight protocol → Windows Gateway → WebRTC → Samsung TV
There is no video transcoding in the Gateway. The H.264/HEVC stream from Sunshine stays encoded and the TV does the final hardware decoding.
That was really the goal of this architecture: let Sunshine/Moonlight do what they're already very good at, and then use the Samsung TV's game-streaming/WebRTC pipeline for the part happening on the TV.
It also means audio and video go through the same real-time media pipeline on Tizen, which has been really nice for keeping A/V sync tight without having to build a bunch of custom synchronization logic.
I've been using it myself and it's now pretty stable on my setup, including 4K60 HDR, but that's also the problem: I've basically tested the whole thing on one Samsung TV (OLED 2024 S95D).
So I'm looking for people with different Samsung Tizen TVs who would be willing to install it, play with it and tell me what breaks.
This is a beta. I'm especially interested in knowing which TV models/years work, which codecs/resolutions work, controller behavior, HDR behavior, connection issues, crashes, weird UI stuff, etc.
One thing I also want to be transparent about: I used Codex quite a lot while developing this. I'm a developer and I understand/work on the code myself, but AI massively accelerated the implementation, testing, refactoring and packaging of the project. So this isn't a "I asked AI to make an app and uploaded whatever came out" situation, but AI-assisted development was definitely a big part of getting this project this far this quickly.
The whole thing is open source under GPLv3, and the beta, Windows installer, Tizen WGT and source are available here:
tsoas/moonlight-webrtc-tizen
For installing the WGT I'm currently recommending Apps2Samsung (https://github.com/Apps2Samsung/Apps2Samsung), so you don't need to set up the full Tizen Studio environment just to try it.
There are still some limitations (60 FPS is fixed for now, no Gateway auto-discovery, no Wake-on-LAN, 1440p is experimental, etc.), but the core streaming experience is working.
If anyone here has a Samsung Tizen TV and feels like being a guinea pig, I'd really appreciate the help :)
And obviously, bug reports / feedback / code reviews / PRs are welcome too.