Skip to content
Roger Hardiman edited this page Oct 3, 2017 · 14 revisions

Welcome to the SharpRTSP wiki!

This project was initially made as a proof of concept to test transformation of Unicast to Multicast RTSP Stream for interconnection of Closed-circuit television in 2011. The "Real" project was remade in JAVA + C++ on Linux.

I have released this project with the MIT license because I think it could be useful to someone. I have tried some tools with it (Unit test, Contract...). I do not have time to work on the project but contributions are welcome.

  • It can be used for private networks to forward commands from one source to another.

  • It has a RtspServer but it does not support adding authorization to streams which did not already have it, additionally if the source has authorization then the RtspServer will not be able to use a single stream for each different username and password because of the design of the Forwarder / Multiplexer.

  • It has a RtspClient Example, written by Roger Hardiman, which can

  • connect to IP cameras,
  • authenticate with a username and password Digest
  • send OPTIONS, DESCRIBE, SETUP and PLAY commands,
  • process the Session Description (SDP),
  • extract the SPS and PPS from the SDP,
  • receive RTP over UTP (UDP mode) or RTP over RTSP (TCP mode) or RTP over MULTICAST
  • process H264 RTP packets
  • save the video to a .264 file The RTSPClientExample has been tested on Windows 10 (with Visual Studio) and on Mac OS X 10.11.6 (with Xamarin Studio) and on iOS (with Xamarin Studio)
  • It has a RTSP Camera Server Example, written by Roger Hardiman, which can
  • Generate a test YUV Image
  • Encode the YUV Image as H264 video (a very simple H264 encoding)
  • Send the H264 video to multiple RTSP clients (currently RTP over RTSP is the only supported transport) The RTSPCameraServer example has been tested on Windows 10 (Visual Studio) and Mac OS X (with Xamarin). H264 NALs are generated by the World's smallest H264 encoder from Cardinal Peak

There is also another open source RTSP C# project : https://net7mma.codeplex.com/ This has a more complete implementation (with Rtcp) and classes to read different file formats and to process a range of RTP payloads. It may be of use to developers.

Clone this wiki locally