Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unknownskl/greenlight-native
Research project for Xbox GameStreaming using the Nano V3 protocol
https://github.com/unknownskl/greenlight-native
streaming xbox
Last synced: 11 days ago
JSON representation
Research project for Xbox GameStreaming using the Nano V3 protocol
- Host: GitHub
- URL: https://github.com/unknownskl/greenlight-native
- Owner: unknownskl
- Created: 2022-09-30T20:26:37.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-02T11:26:31.000Z (6 months ago)
- Last Synced: 2024-05-03T01:04:41.954Z (6 months ago)
- Topics: streaming, xbox
- Language: TypeScript
- Homepage:
- Size: 2.09 MB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Greenlight-Native
This project is a client for the Xbox in-home streaming protocol. (Also known as Nano V3).
#### This project is research material. The client is working but very unoptimised and lot of features are not implemented. Do not expect an optimised client out of this project.
## Setup project
Requirements:
- Nodejs LTS
- Yarn
- FFMpeg### Instructions
Install dependencies first:
yarn
Login with your xbox account to authenticate:
yarn auth
Then edit `client-poc/src/gui.ts` and change your consoleid on line `34`.
After changing the above you can compile the script to a packed js file and run it via:
yarn start:gui
## Project structure
| Folder | Description |
|--------|-------------|
| client-poc | CLI App which interacts with the libraries and renders the stream via node-sdl. |
| client-pcap | Simple PCAP reader. (very bare, comes with a gui and tool to convert your pcap to a video) |
| packages/gamestreaming | Actual game streaming logic |
| packages/gamestreaming-protocol | Library for reading and writing nano packets |
| packages/rtp | Code for reading and creating RTP Packets |
| packages/stun | Wrapper for node stun lib including fetching active interfaces |
| packages/teredo | Teredo library for routing data over Teredo (Not working/dummy package) |
| packages/xcloud | Holds the xcloud library (API client) |## FAQ
### Render video
You can convert the video output by running the following ffmpeg command:
ffmpeg -i client-poc/video.mp4 -vcodec libx264 ./video.mp4
or by running:
make pcap_video
### Render audio
Dumping audio data is not implemented yet.
### Retrieve session SRTP key
You can retrieve the current session SRTP key by searching for 'SRTP' in the output. The key will be printed once every second to the output.
## Credits
- Many thanks to [@tuxuser](https://github.com/tuxuser) for the help and research from the [xcloud-rs](https://github.com/OpenXbox/xcloud-rs) project
- Thanks to the [OpenXbox](https://github.com/OpenXbox) community for being helpfull and supportive during the research