This file has been truncated. show original
# mediasoup demo - RTP recording
In this example, a browser's webcam media is transmitted to [mediasoup](https://mediasoup.org/) using WebRTC ([WebRtcTransport](https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcTransport)); it is then served as a plain RTP stream ([PlainTransport](https://mediasoup.org/documentation/v3/mediasoup/api/#PlainTransport)) to be received and recorded by an external process.
**The media is not re-encoded at any moment**. This is an important detail, because you want recording to take as little resources as possible. For that, the FFmpeg and GStreamer commands are carefully written to make sure that the media packets are received via RTP and get stored as-is to the output recording file.
_mediasoup_ applications are written for [Node.js](https://nodejs.org/), so you need to have it installed. Follow the [installation instructions](https://github.com/nodesource/distributions/blob/master/README.md) provided by NodeSource to install Node.js from an official repository; or just grab it from the official [downloads page](https://nodejs.org/en/download/).
You can choose between three recording programs:
- [FFmpeg](https://ffmpeg.org/). See [Recording with FFmpeg](#recording-with-ffmpeg).
- An external process.
Finally, read some [important notes](#important-notes) about recording and playback.