-
Notifications
You must be signed in to change notification settings - Fork 182
Home
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),
- receive H264 and H265 (HEVC) video and write the data to a .264 or .264 file
- receive G711 PCMU and PCMA, AMR and AAC Audio and write the data to a .ul, .al, .amr or .aac file
- receive RTP over UTP (UDP mode) or RTP over RTSP (TCP mode) or RTP over MULTICAST
- 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
- Start a RTSP Server
- 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.