Live-Streaming-Server-Net is a high-performance and flexible toolset that allows you to build your own live streaming server using .NET.
Please check the documentation for more details.
- RTMP/RTMPS protocol: Supports the RTMP and RTMPS protocols for streaming audio, video, and data.
- RTMP Relay: Supports relaying RTMP streams between servers, allowing building a scalable RTMP server cluster.
- RTMP Client: Provides a client library for connecting to RTMP servers and publishing/subscribing live streams.
- HTTP-FLV/WebSocket-FLV with ASP.NET CORE: Provides support for serving FLV live streams using HTTP-FLV and WebSocket-FLV protocols within an ASP.NET Core application.
- Transmuxing RTMP streams into HLS streams: Allows you to transmux RTMP streams into HLS (HTTP Live Streaming) streams using the built-in HLS transmuxer.
- Transcoding RTMP streams into Adaptive HLS streams: Integrates with FFmpeg to transcode RTMP streams into multiple-bitrate Adaptive HLS streams.
- Integration with FFmpeg: Provides support for processing the incoming RTMP stream with FFmpeg, for example, to create an MP4 archive.
- GOP caching: Supports caching the Group of Pictures (GOP) to ensure immediate availability of live streaming content.
- Custom authorization: Enables you to implement custom authorization mechanisms for accessing live streams.
- Admin panel: Includes an admin panel that provides an user interface for managing and monitoring the live streaming server.
- Cloud Storage Integration: Enabling real-time uploading of HLS files to cloud storage services like Azure Blob Storage, Google Cloud Storage, and AWS S3, which ensures scalable and efficient HLS stream distribution through CDN.
- Codecs: Supports AVC/H.264, HEVC/H.265, AAC, and MP3 codecs.
Create a .NET 8 console application project and add the dependencies
dotnet new console
dotnet add package LiveStreamingServerNet
dotnet add package Microsoft.Extensions.Logging.Console
Program.cs
using LiveStreamingServerNet;
using Microsoft.Extensions.Logging;
using System.Net;
using var server = LiveStreamingServerBuilder.Create()
.ConfigureLogging(options => options.AddConsole())
.Build();
await server.RunAsync(new IPEndPoint(IPAddress.Any, 1935));
Run the application
dotnet run
Use the following command to publish a video as the live stream using FFmpeg
ffmpeg -re -i <input_file> -c:v libx264 -c:a aac -f flv rtmp://localhost:1935/live/demo
- Open OBS Studio and go to "Settings".
- In the "Settings" window, select the "Stream" tab.
- Choose "Custom" as the "Service".
- Enter "Server":
rtmp://localhost:1935/live
and "Stream Key":demo
. - Click "OK" to save the settings.
- Click the "Start Streaming" button in OBS Studio to begin sending live stream to the RTMP server.
Use the following command to play the live stream using FFplay
ffplay rtmp://localhost:1935/live/demo
- Open VLC Media Player.
- Go to the "Media" menu and select "Open Network Stream".
- In the "Network" tab, enter the URL:
rtmp://localhost:1935/live/demo
. - Click the "Play" button to start playing the live stream.
This project is licensed under the terms of the MIT license.
Special thanks to JetBrains for providing the open-source software license that supports the development of this project.