Turn a jailbroken PlayStation 5 into a real capture card for your PC.
The console screen is streamed over your LAN and shows up in Discord, OBS or ffmpeg
as a virtual camera called PS5 Capture.
No capture card. No Remote Play. No cloud. Just your console and your network.
by fstat13
๐ How to use it โ step-by-step guide ยท ๐ฎ๐น Guida passo-passo in italiano ยท ๐ง Build from source ยท ๐ฎ๐น Build dai sorgenti
--- ## โจ What you get - **One executable** โ `PSCapture.exe` carries the console payload inside itself: it installs the virtual capture driver, pushes the payload to the PS5, registers it in the autoloader and starts the stream. One window, one button. - **A real camera device** โ a DirectShow source filter named *PS5 Capture*: pick it in Discord calls, record it in OBS at 1920x1080, open it from ffmpeg. - **Low latency** โ frames are read straight from the console's display engine (NV12 over TCP); nothing is re-encoded on the console. - **Live tuning** โ chroma `gain` and horizontal `shift` knobs, saved in `pscapture.ini`, applied without restarts. ## ๐ Quick start 1. **Jailbreak your PS5** โ you need the standard setup: a payload loader on TCP `9021` (`elfldr`-style), anonymous FTP on TCP `2121`, and optionally `pldmgr` so the payload starts on every boot. 2. **Double-click `PSCapture.exe`** (one file โ the console payload and the Windows driver travel inside it). Accept the UAC prompt. If your PS5 isn't at `192.168.0.36`, type its IP in the *PS5 IP* field and press *Apply*. 3. **Watch the log pane** โ the app installs the capture driver (first run only), sends the payload to the console and connects by itself. The status pill turns green: `STREAMING`. The console shows the system toast **PSCapture is streaming on:PORT**. 4. In Discord (*Settings โ Voice & Video โ Camera*) or OBS pick the camera **PS5 Capture**. Stuck on *โIN ATTESA DELLA PS5โ*? Console off, not jailbroken yet, or wrong IP โ the app retries by itself every 2 seconds. ๐ Step-by-step with every log line explained: [`docs/GUIDE.md`](docs/GUIDE.md) โ or the [illustrated HTML guide](docs/index.html). ๐ง What the app does under the hood when you press Start: [`docs/INSTALLER.md`](docs/INSTALLER.md). ## ๐ Verify the download The release binaries are built from this repository's sources. Every release carries a `SHA256SUMS.txt` โ check it before running the exe: ``` certutil -hashfile pscapture.exe SHA256 (Windows) sha256sum -c SHA256SUMS.txt (Linux/macOS) ``` And you never have to trust any binary: the whole toolchain is documented in [`docs/BUILD.md`](docs/BUILD.md) โ rebuild `pscapture.exe` from the sources yourself and compare. ## ๐ฆ Repository layout ``` payload/ PS5 side: display-engine reader + NV12 streamer (pscapture.elf) pc/ PSCapture.exe โ GUI + installer + payload deployer + feeder pc/ps5cam.c the virtual capture-card driver (DirectShow source filter) pc/shm.h shared-memory contract between feeder and driver docs/ guides: HTML, step-by-step, build, installer, RE, log ``` ## ๐ง Build Full walk-through (toolchain install, verification, gotchas): **[`docs/BUILD.md`](docs/BUILD.md)**. The short version, in the **mandatory order** (the `.res` embeds the driver and the payload as they are on disk): **Console payload** โ `payload/pscapture.elf` (needs Docker + the PS5 payload SDK image; any tag works, here `ps5sdk:18`): ```bash docker run --rm -v "$PWD/payload:/payload" -w /payload ps5sdk:18 make ``` **PC side** โ `pscapture.exe` + `pscapture.dll` (needs MinGW-w64 with `gcc` + `windres`): ```bash cd pc cp ../payload/pscapture.elf . # gets embedded as-is # 1) the capture-card driver (-static is mandatory, see BUILD.md) gcc -O2 -shared -static -static-libgcc -o pscapture.dll ps5cam.c \ -lole32 -loleaut32 -luser32 -ladvapi32 -lws2_32 # 2) resources = icon + payload + driver windres pscapture.rc -O coff -o pscapture.res # 3) the app (one self-contained executable) gcc -O2 -mwindows -o pscapture.exe pscapture.c pscapture.res \ -lws2_32 -lshell32 -ladvapi32 -luxtheme ``` Rebuild rule: **DLL โ windres โ exe, every time** โ rebuilding only the exe ships the old driver inside it. ## โ FAQ **Does it work on firmwares older than 13.60?** The PC side works everywhere. The console payload was built and tuned on **13.60**; other firmwares may need a small porting pass (re-finding the same display-engine anchors). Open an issue with your firmware version. **720p in Discord but 1080p in OBS?** That's Discord's voice engine โ it requests 1280x720 from every camera (capture cards included). Use OBS for full quality, or Discord screen-share (up to 1080p60 with Nitro). **Remote Play involved?** Never. The payload reads the display engine on the console itself. ## ๐ฌ Reverse engineering The whole story of how the console's display engine was mapped โ the scan-out ring, the pan, the chroma plane, the kernel-side notes and the delivery format for kernel payloads โ lives in [`docs/REVERSE_ENGINEERING.md`](docs/REVERSE_ENGINEERING.md). The bench used to get there is in [`tools/`](tools/): the library dumper payload, the disassembly hunters, the deterministic frame renderers. > No Sony binaries are distributed with this project: `tools/dumplib/` extracts > what you need **from your own console** to reproduce every finding. ## ๐ License **Source-available**, copyright ยฉ 2026 **fstat13**. You may read and study the code and use the official binaries for personal projects; redistribution, reuse in other projects and commercial use are not allowed without permission. See [LICENSE](LICENSE) for the full terms.