As of now (2023-04-14) Playstation only supports streaming through Youtube or Twitch. Both of these options add at least a few seconds delay until a viewer is able to see your screen, which is acceptable by professional streamers, but for streaming to friends we want to make the delay as low as possible, so we can enjoy the games together.
The natural option would be to stream Playstation to PC and share the window to our viewers, however, most of the popular video chat platforms haven't handled Playstation stream properly (Discord, for example, was extremely stuttering, had black screens or couldn't stream sound).
To stream our games, we will first stream Playstation to our local PC, set the RTMP sever on our PC and stream OBS window to our server. Viewers will then connect to our RTMP server to watch our stream.
- Playstation 4 or Playstation 5 (tested only on Playstation 5)
- PC (tested on Windows, but steps should work similarly with other OS)
- Access to router (port filtering adjustments may be needed)
- OBS
- RTMP server - MonaServer for Windows, alternatives can be found for linux / macOS
To stream video from your playstation to your PC, you need to install PS Remote play. You can follow the steps from official documentation for how to connect to your Playstation.
WARNING: If you connect using your primary account, the PC will take over and you will not be able to use the controller that is connected to your Playstation. You may need to create a second PS account and connect to it through PS Remote play, so you can still use your controller on your primary account.
After all the configuration, you should be able to see the window on your PC with the Playstation content.
Download and unpack Monaserver. Open the unpacked directory and create new directory inside www folder named 'fuckpis'. Go back and run MonaServer.exe. If asked, add the rules to the firewall for this program.
WARNING: If you use IPv6, you need to make your server listen on '::0' instead of the default '0.0.0.0'. Open MonaServer.ini and find [RTMP] section. Inside it, change:
host=0.0.0.0
to:
host=::0
If your viewers are outside your LAN, you should configure your router to forward all packets from the Internet on port 1935 to your PC.
You can read more about port filtering here. You need to go to your router's website and forward traffic coming from any port to port 1935 to your PC. Setup may vary across routers, so please follow your router's documentation.
Set up capturing video from PS remote play. If you are unfamiliar with OBS, please follow these steps.
Now, we want OBS to send captured video to our local RTMP server we have just created. Go to File -> Settings -> Stream. Select:
Service: Custom
Server: rtmp://127.0.0.1:1935/live (or rtmp://[::1]:1935/live if you use IPv6)
Stream Key: fuckpis
Make sure Use Authentication is not marked.
Go back to OBS main window and click Start Streaming. You should see in MonaServer that the new client is connected.
Open VLC. Go to Media -> Open Network Stream. Type:
rtmp://ipv4:1935/live/fuckpis
or
rtmp://[ipv6]:1935/live/fuckpis
Where ipv4 or ipv6 are public IPs of the streamer's PC (you can get them by accessing whatismyip.com on streamer's PC).
You can also click Show more options and try lowering Catching for even lower latency, but don't be too greedy.
Click Play and after a while you should be able to see video from playstation in VLC :)
From 2023-03, Playstation added discord voice chat integration. You can talk with your viewers on Discord while they watch your stream in VLC.
RTMP uses TCP, which is not perfect for our purpose. Other protocols may be faster, but I couldn't manage to get them working. RTMFP, for example, is not supported by VLC and OBS.
One could try to forward port responsible for PS Remote Play through the Internet, so our viewer can hop in directly. We haven't tried this option as it has many downsides.
If you manage to find one, please comment and share your knowledge.
Thanks to julls2137 for helping me find a working solution.