Docs & pointers
PeerStreamer-ng is made up of different (almost) independent blocks.
The core of P2P streaming is called pstreamer and it is a fully-fledged P2P application relying on the GRAPES library. Pstreamer can be used to:
- Create a new live streaming P2P channel and seed a video;
- Join an existing P2P overlay and obtain a media stream.
PeerStreamer-ng is built around the pstreamer library to ease the creation and management of streaming P2P overlays. It takes advantage from the mongoose library to provide a ReSTful HTTP interface for streaming management and to serve a JavaScript library capable of using it. PeerStreamer-ng also employs the Janus gateway to convert WebRTC flows to RTP ones and vice versa.
Development
PeerStreamer-ng development is published on Github. All the code is versioned through git repositories.
The main git repo depends on the four following submodules:
- GRAPES: a toolkit for P2P live video streaming;
- PS-engine: the streaming P2P core of PeerStreamer-ng. It can be built both as a library and as a executable (for the command line enthusiasts);
- Mongoose: the HTTP library; it has been forked and slightly modified to suite PeerStreamer-ng architecture;
- Janus: the RTP to WebRTC bridge; it has been forked to automate the building process.