RtspClientSharp 1.3.1

C# RTSP Client for .NET

- Supported transport protocols: TCP/HTTP/UDP
- Supported media codecs: H.264/MJPEG/AAC/G711A/G711U/PCM/G726
- No external dependencies, pure C# code
- Asynchronous nature with cancellation tokens support
- Designed to be fast and scaleable
- Low GC pressure during receive stage (when RTSP session is established); low amount of freezes under high load

There is a newer version of this package available.
See the version list below for details.
Install-Package RtspClientSharp -Version 1.3.1
dotnet add package RtspClientSharp --version 1.3.1
<PackageReference Include="RtspClientSharp" Version="1.3.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RtspClientSharp --version 1.3.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Features

  • Supported transport protocols: TCP/HTTP/UDP
  • Supported media codecs: H.264/MJPEG/AAC/G711A/G711U/PCM/G726
  • No external dependencies, pure C# code
  • Asynchronous nature with cancellation tokens support
  • Designed to be fast and scaleable
  • Low GC pressure during receive stage (when RTSP session is established); low amount of freezes under high load

Using RtspClientSharp

Something like this:

var serverUri = new Uri("rtsp://192.168.1.77:554/ucast/11");
var credentials = new NetworkCredential("admin", "123456");
var connectionParameters = new ConnectionParameters(serverUri, credentials);
connectionParameters.RtpTransport = RtpTransportProtocol.TCP;
using(var rtspClient = new RtspClient(connectionParameters))
{
    rtspClient.FrameReceived += (sender, frame) =>
    {
        //process (e.g. decode/save to file) encoded frame here or 
        //make deep copy to use it later because frame buffer (see FrameSegment property) will be reused by client
        switch (frame)
        {
            case RawH264IFrame h264IFrame:
            case RawH264PFrame h264PFrame:
            case RawJpegFrame jpegFrame:
            case RawAACFrame aacFrame:
            case RawG711AFrame g711AFrame:
            case RawG711UFrame g711UFrame:
            case RawPCMFrame pcmFrame:
            case RawG726Frame g726Frame:
        }
    }
    await rtspClient.ConnectAsync(token);
    await rtspClient.ReceiveAsync(token);
}

You could find more complex samples here (e.g. simple RTSP player with full frame decoding and rendering processes):
https://github.com/BogdanovKirill/RtspClientSharp/tree/master/Examples

Features

  • Supported transport protocols: TCP/HTTP/UDP
  • Supported media codecs: H.264/MJPEG/AAC/G711A/G711U/PCM/G726
  • No external dependencies, pure C# code
  • Asynchronous nature with cancellation tokens support
  • Designed to be fast and scaleable
  • Low GC pressure during receive stage (when RTSP session is established); low amount of freezes under high load

Using RtspClientSharp

Something like this:

var serverUri = new Uri("rtsp://192.168.1.77:554/ucast/11");
var credentials = new NetworkCredential("admin", "123456");
var connectionParameters = new ConnectionParameters(serverUri, credentials);
connectionParameters.RtpTransport = RtpTransportProtocol.TCP;
using(var rtspClient = new RtspClient(connectionParameters))
{
    rtspClient.FrameReceived += (sender, frame) =>
    {
        //process (e.g. decode/save to file) encoded frame here or 
        //make deep copy to use it later because frame buffer (see FrameSegment property) will be reused by client
        switch (frame)
        {
            case RawH264IFrame h264IFrame:
            case RawH264PFrame h264PFrame:
            case RawJpegFrame jpegFrame:
            case RawAACFrame aacFrame:
            case RawG711AFrame g711AFrame:
            case RawG711UFrame g711UFrame:
            case RawPCMFrame pcmFrame:
            case RawG726Frame g726Frame:
        }
    }
    await rtspClient.ConnectAsync(token);
    await rtspClient.ReceiveAsync(token);
}

You could find more complex samples here (e.g. simple RTSP player with full frame decoding and rendering processes):
https://github.com/BogdanovKirill/RtspClientSharp/tree/master/Examples

Release Notes

-Bug fix: previous nuget was without sign and compiled for x86, not for any cpu

  • .NETStandard 2.0

    • No dependencies.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.3.2 6 9/17/2019
1.3.1 515 8/5/2019
1.3.0 243 7/20/2019
1.2.8 884 5/28/2019
1.2.7 614 4/13/2019
1.2.6 581 3/7/2019
1.2.5 260 2/24/2019
1.2.4 1,234 10/24/2018
1.2.3 506 8/31/2018
1.2.2 217 8/18/2018
1.2.1 196 8/15/2018
1.2.0 193 8/15/2018
1.1.0 177 8/11/2018
1.0.0 299 7/23/2018