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.