Giter Site home page Giter Site logo

josephnhtam / live-streaming-server-net Goto Github PK

View Code? Open in Web Editor NEW
103.0 103.0 14.0 6.52 MB

A .NET implementation of RTMP live streaming server, supporting HTTP-FLV, WebSocket-FLV, HLS, Kubernetes, cloud storage services integration and more.

Home Page: https://josephnhtam.github.io/live-streaming-server-net/

License: MIT License

C# 95.98% JavaScript 0.04% HTML 0.04% TypeScript 3.76% CSS 0.01% Dockerfile 0.09% Makefile 0.09%
asp-net-core autoscaling cloud-native csharp dash dotnet dotnet-library flv hls http-flv kubernetes live-streaming livestream remuxing rtmp rtmp-server websocket-flv

live-streaming-server-net's Introduction

Hi there ๐Ÿ‘‹

Here are some of my open-source projects:

If you find my work interesting or useful, please consider giving them a โญ๏ธ. Thank you!

Bo Bo

live-streaming-server-net's People

Contributors

dependabot[bot] avatar josephnhtam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

live-streaming-server-net's Issues

Authentication Sample

Hi @josephnhtam this is really a great work!
I want to inject some mechanism for authentication, example -
My API server will give code to push stream, but before allowing push I want to verify the code. Can you share some sample how the inbuilt authentication can be used or customized. I could not find any sample for that on repository.

Also I am open to contribute some sample for the same if you allow, like db authentication or bearer etc, if you guide.

Vishal

Running On Docker

Hi @josephnhtam
when i try to run on docker with this "LiveStreamingServerNet.KubernetesPodDemo", added "EXPOSE 1935", then its started, when i try to stream, am getting below error. Also commented out Redis.

image

WebSocket-FLV Not Working

using System.Net;
using LiveStreamingServerNet;
using LiveStreamingServerNet.Flv.Installer;
using LiveStreamingServerNet.Networking.Helpers;

using var liveStreamingServer = LiveStreamingServerBuilder.Create()
    .ConfigureRtmpServer(options => options.AddFlv())
    .ConfigureLogging(options => options.AddConsole())
    .Build();

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddBackgroundServer(liveStreamingServer, new IPEndPoint(IPAddress.Any, 1935));

var app = builder.Build();

app.UseWebSockets();
app.UseWebSocketFlv(liveStreamingServer);

app.UseHttpFlv(liveStreamingServer);

await app.RunAsync();

above code works fine with RTMP. But, when i try to access Websocket-FLV url(ws://localhost:5051/live/k1.flv), its not working. Is any change need to be done on code?

IStreamAuthorization.AuthorizeSubscribingAsync is not invoking

Hello,

I'm trying to apply authorization handler and bumped to an issue that IStreamAuthorization.AuthorizeSubscribingAsync method is not invoking. On the other hand IStreamAuthorization.AuthorizePublishingAsync method is invoking as expected.

I'm running server (ASP NET Core project .NET 8) and subscriber (VLC Media player) on localhost. The video source is on Raspberry Pi.
VLC Media player (FLV subscription) is subscribing successfully and I can see the stream.

Program.cs setup

var outputDir = Path.Combine(Directory.GetCurrentDirectory(), "output");
if (!Directory.Exists(outputDir))
    new DirectoryInfo(outputDir).Create();

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddJsonFile("appsettings.Local.json", true, true);

using var liveStreamingServer = LiveStreamingServerBuilder.Create()
    .ConfigureRtmpServer(options =>
    {
        options
        .AddAuthorizationHandler<StreamAuthorizationHandler>()
        .AddConnectionEventHandler<ConnectionEventListener>()
        .AddStreamEventHandler<StreamEventListener>()
        .AddStandaloneServices()   
        .AddFlv(); 

        options
        .AddStreamProcessor(options => options.AddStreamProcessorEventHandler<HlsTransmuxerEventListener>())
        .AddHlsTransmuxer(options => options.OutputPathResolver = new HlsTransmuxerOutputPathResolver(outputDir));
    })
    .ConfigureLogging(options =>
    {
        options.AddConsole();
        options.AddApplicationInsights(config => config.ConnectionString = builder.Configuration.GetValue<string>("APPLICATIONINSIGHTS_CONNECTION_STRING"), loggerOpts => { });
    })
    .Build();

// Add services to the container.
builder.Services.AddBackgroundServer(liveStreamingServer, new ServerEndPoint(new IPEndPoint(IPAddress.Any, 1935), false));
builder.Services.AddApplicationInsightsTelemetry();

builder.Services.AddCors(options =>
    options.AddDefaultPolicy(policy =>
        policy
        .AllowAnyHeader()
        .AllowAnyOrigin()
        .AllowAnyMethod()));

builder.Services.AddControllers();

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

app.UseSwagger();
app.UseSwaggerUI();
app.UseWebSockets();
app.UseWebSocketFlv(liveStreamingServer);
app.UseHttpFlv(liveStreamingServer);
app.MapStandaloneServerApiEndPoints(liveStreamingServer);
app.UseAdminPanelUI(new AdminPanelUIOptions { BasePath = "/ui", HasHttpFlvPreview = true });
app.UseCors();

app.UseStaticFiles(new StaticFileOptions
{
    RequestPath = "/hls",
    FileProvider = new PhysicalFileProvider(outputDir),
    ContentTypeProvider = new FileExtensionContentTypeProvider
    {
        Mappings = { [".m3u8"] = "application/x-mpegURL" }
    }
});

app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();

Please clarify what do I do wrong here?
Thank you!

12Sec Delay on HLS URL

Am facing 12sec delay on hls url, if i use RTMP url, it have only 2sec delay. Is there any change, that can reduce the delay?

Minimize delay on displaying local RTMP-Stream

Hi, first of all thank you for this project!

I am using it in a .NET MAUI Application on iOS, where an iPhone is not only the RTMP-Server but also the Client, showing the RTMP-Livestream on the screen.

I want to show the stream along a view of the camera of the iPhone itself, my problem is the delay of ~2sec I get between both views. The only setting I found which could have impact was on RtmpServerConfiguration the setting EnableGopCaching. But changing it had no impact at all.

Is there any caching/delay/latency setting I've missed?

Thanks in advance!

Upload the files to Azure Blob

First of all thanks for the wonderful project, its very useful for me.

am using this to stream my desktop and store those stream to Azure blob. Its streaming the desktop, is there any way to upload the files to azure blob.?

Streaming from own code

First of all, this is a really dope project. Thank you for your contribution!

I have a couple of questions, maybe I don't understand well and I think it is still a bit early for proper documentation (which btw is not a jab). Some of the code samples go over my head, perhaps also because I don't know all terminology. I want to have a live streaming server, which this seems to fully offer with a million options - so that is fantastic. My usecase is for streaming drone footage (multiple drones at once) to the server and a frontend where users can see the streams. However, I don't understand how to stream to the server from e.g. another project rather than OBS or something like that. Do you by any chance have a sample for this? Also would my usecase, altho I appreciate the auth and all, be maybe too simplistic and would this add a lot of overhead to the streaming? Or would I even be better off simply using .NET Web API endpoints or simplistic TCP/UDP server splitting the streams up in chunks myself?

Excessive use of IServiceProvider

You have a very interesting approach to dependency injection, and coding in general.

The IServiceProvider has tripped me up several times when trying to work with the code. The nested dependencies make it difficult to understand which classes are actually used and where.

I'd suggest removing the IServiceProvider references and actually using the dependency injection built into Net Core properly. It will make the code easier to use, easier to test and easier to understand.

Microsoft recommendation for not using IServiceProvider

How to use it ?

Hello! i don't know how to use it. Can you demo for a livestream video ?

question: stream camera in browser to rtmp server using javascript

Hi, thank you for your great project.

I know it's impossible to stream a camera directly from the browser to an RTMP server, and it should be done with WebRTC or other methods. Something like this:
browser -> WebRTC -> media server -> FFmpeg -> RTMP

Could you please share any implementation examples if you know of any?

I have already run the HLS and admin panel sample projects. I successfully streamed video using an FFmpeg command to RTMP and displayed the stream in the browser using an HTML video tag with HLS.js, as you mentioned in one of the issues.

But I'm lost! I don't know how to stream the camera to the RTMP.

One more thing that I'm not sure about: As a second option, can we use Blazor WebAssembly/Server to run an FFmpeg command inside the browser?

Thank you very much.

Edit:
Is it possible to send every single frame to the SignalR server (subject), assemble those blobs on the server, and send them to the RTMP server again?

Delay on Streaming

am facing 15sec delay when running from IIS, is there any way to reduce the delay?

Multi-Bitrate HLS

This project looks awesome. I am transitioning away from Azure Media services and this could be a good fit. Does the HLS transmuxer support multi-bitrate streams or is it just a single bitrate. If multiple, is there a place to control the quality levels that are served?

How do I manage client connections?

The scenario is like this, I need to automatically stop the RTMP stream when there is no client watching, but I can't seem to get the full RTMP connection information and client information

Stream AdaptiveHlsTranscoder stop for ffmpeg error

error summarize :
New audio stream 0:2 [flv @ 0x55fdf75bb300] Video codec (1) is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
--- ffmpeg version 5.1.5-0+deb12u1

hi .
i stream two separated obs to stream server , but after 3 hours , i got this error and stream server don't transcode rtmp input to adaptive hls manifest .

log details :

frame=503275 fps= 30 q=21.0 q=21.0 size=N/A time=04:39:36.31 bitrate=N/A dup=498 drop=0 speed= 1x
[hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_720p16775.ts' for writing
2024-08-10T18:48:08.448833986Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_720p.m3u8.tmp' for writing
2024-08-10T18:48:08.486427308Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_480p16775.ts' for writing
2024-08-10T18:48:08.487321309Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_480p.m3u8.tmp' for writing
2024-08-10T18:48:09.099378657Z frame=503290 fps= 30 q=23.0 q=23.0 size=N/A time=04:39:36.83 bitrate=N/A dup=498 drop=0 speed= 1x
[flv @ 0x55fdf75bb300] New audio stream 0:2 at pos:3436306359 and DTS:0.002s
2024-08-10T18:48:09.099438652Z [flv @ 0x55fdf75bb300] Video codec (1) is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
2024-08-10T18:48:09.099447831Z [flv @ 0x55fdf75bb300] If you want to help, upload a sample of this file to https://streams.videolan.org/upload/ and contact the ffmpeg-devel mailing list. ([email protected])
2024-08-10T18:48:09.099455435Z [flv @ 0x55fdf75bb300] New video stream 0:3 at pos:3436306675 and DTS:0.016s
2024-08-10T18:48:12.408108842Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 625186 != 2918783
2024-08-10T18:48:13.055228705Z [rtmp @ 0x55fdf75bbb80] Too short chunk size change packet (0)
2024-08-10T18:48:13.055279230Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Invalid data found when processing input
2024-08-10T18:48:13.968039463Z [rtmp @ 0x55fdf75bbb80] Too short chunk size change packet (0)
2024-08-10T18:48:13.968111184Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Invalid data found when processing input
2024-08-10T18:48:13.977801339Z frame=503302 fps= 30 q=21.0 q=21.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed= 1x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 16767750 != 16761090
2024-08-10T18:48:13.977861110Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:14.542797402Z frame=503303 fps= 30 q=22.0 q=22.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed= 1x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 12374083 != 7636160
2024-08-10T18:48:14.542870185Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:15.368774872Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 13851213 != 1231443
2024-08-10T18:48:15.368818246Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:15.382943083Z frame=503305 fps= 30 q=20.0 q=20.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed= 1x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 2877572 != 1883281
2024-08-10T18:48:15.382985258Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:15.685196205Z frame=503306 fps= 30 q=22.0 q=22.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed= 1x
rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Invalid data found when processing input
2024-08-10T18:48:17.708611752Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 8947886 != 2252168
2024-08-10T18:48:17.708667808Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:18.326897507Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Invalid data found when processing input
2024-08-10T18:48:18.884657321Z frame=503309 fps= 30 q=20.0 q=21.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed= 1x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 16663411 != 3556741
2024-08-10T18:48:18.884715824Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:20.105873399Z frame=503310 fps= 30 q=21.0 q=22.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed= 1x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 10758328 != 10953343
2024-08-10T18:48:20.105983485Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:20.119726519Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_720p16776.ts' for writing
2024-08-10T18:48:20.121218092Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_720p.m3u8.tmp' for writing
2024-08-10T18:48:20.139609523Z frame=503311 fps= 30 q=19.0 q=19.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed=0.999x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 15585872 != 14977620
2024-08-10T18:48:20.139693714Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:20.150045510Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_480p16776.ts' for writing
2024-08-10T18:48:20.151015221Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_480p.m3u8.tmp' for writing
2024-08-10T18:48:21.576882785Z frame=503312 fps= 30 q=24.0 q=25.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed=0.999x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 12586311 != 9155489
2024-08-10T18:48:21.576932453Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:21.902701923Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 4895758 != 12686999
2024-08-10T18:48:21.902774081Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:21.914747996Z frame=503314 fps= 30 q=21.0 q=22.0 size=N/A time=04:39:37.15 bitrate=N/A dup=498 drop=0 speed=0.999x
[tcp @ 0x55fdf75bc440] RTMP packet size mismatch 15275514 != 10908515
2024-08-10T18:48:21.914815016Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:24.075614658Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 12380405 != 2366994
2024-08-10T18:48:24.075676932Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:24.117155236Z [flv @ 0x55fdf75bb300] Packet mismatch -1766165772 11 3431154670
2024-08-10T18:48:24.117453021Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 15790384 != 2927520
2024-08-10T18:48:25.409790349Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 7098662 != 2587332
2024-08-10T18:48:25.409855394Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:25.453570831Z frame=503320 fps= 30 q=20.0 q=20.0 size=N/A time=04:39:37.33 bitrate=N/A dup=504 drop=0 speed=0.999x
[flv @ 0x55fdf75bb300] Packet mismatch -1778064483 11 3431154681
2024-08-10T18:48:25.821809558Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 4078679 != 15838148
2024-08-10T18:48:25.821864488Z [tcp @ 0x55fdf75bc440] RTMP packet size mismatch 16629406 != 6342112
2024-08-10T18:48:25.821874166Z rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76: Input/output error
2024-08-10T18:48:25.823167267Z frame=503320 fps= 30 q=20.0 q=20.0 size=N/A time=04:39:37.33 bitrate=N/A dup=504 drop=0 speed=0.999x
[hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_720p16777.ts' for writing
2024-08-10T18:48:25.824393658Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_720p.m3u8.tmp' for writing
2024-08-10T18:48:25.825112674Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_480p16777.ts' for writing
2024-08-10T18:48:25.826056007Z [hls @ 0x55fdf7655ac0] Opening 'hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master_480p.m3u8.tmp' for writing
2024-08-10T18:48:25.826808490Z frame=503320 fps= 30 q=20.0 Lq=20.0 size=N/A time=04:39:37.33 bitrate=N/A dup=504 drop=0 speed=0.999x
2024-08-10T18:48:25.826831459Z video:13840562kB audio:521719kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
2024-08-10T18:48:25.836692844Z [libx264 @ 0x55fdf75cb0c0] frame I:16778 Avg QP:18.02 size: 74483
2024-08-10T18:48:25.836746282Z [libx264 @ 0x55fdf75cb0c0] frame P:486542 Avg QP:21.04 size: 15880
2024-08-10T18:48:25.836760997Z [libx264 @ 0x55fdf75cb0c0] mb I I16..4: 100.0% 0.0% 0.0%
2024-08-10T18:48:25.836768768Z [libx264 @ 0x55fdf75cb0c0] mb P I16..4: 9.3% 0.0% 0.0% P16..4: 39.3% 0.0% 0.0% 0.0% 0.0% skip:51.3%
2024-08-10T18:48:25.836775487Z [libx264 @ 0x55fdf75cb0c0] coded y,uvDC,uvAC intra: 25.6% 58.6% 27.7% inter: 16.1% 22.7% 4.3%
2024-08-10T18:48:25.836782118Z [libx264 @ 0x55fdf75cb0c0] i16 v,h,dc,p: 46% 23% 15% 17%
2024-08-10T18:48:25.836879095Z [libx264 @ 0x55fdf75cb0c0] i8c dc,h,v,p: 41% 22% 24% 13%
2024-08-10T18:48:25.836897927Z [libx264 @ 0x55fdf75cb0c0] kb/s:4280.12
2024-08-10T18:48:25.837523893Z [libx264 @ 0x55fdf765d340] frame I:16778 Avg QP:18.47 size: 43683
2024-08-10T18:48:25.837538406Z [libx264 @ 0x55fdf765d340] frame P:486542 Avg QP:21.50 size: 9174
2024-08-10T18:48:25.837542770Z [libx264 @ 0x55fdf765d340] mb I I16..4: 100.0% 0.0% 0.0%
2024-08-10T18:48:25.837558836Z [libx264 @ 0x55fdf765d340] mb P I16..4: 7.7% 0.0% 0.0% P16..4: 44.1% 0.0% 0.0% 0.0% 0.0% skip:48.2%
2024-08-10T18:48:25.837563115Z [libx264 @ 0x55fdf765d340] coded y,uvDC,uvAC intra: 34.5% 62.1% 38.2% inter: 20.4% 24.7% 7.4%
2024-08-10T18:48:25.837566873Z [libx264 @ 0x55fdf765d340] i16 v,h,dc,p: 43% 24% 17% 17%
2024-08-10T18:48:25.837570459Z [libx264 @ 0x55fdf765d340] i8c dc,h,v,p: 42% 22% 24% 12%
2024-08-10T18:48:25.837574296Z [libx264 @ 0x55fdf765d340] kb/s:2477.92
2024-08-10T18:48:25.841100997Z info: LiveStreamingServerNet.Networking.Internal.Client[208815263]
2024-08-10T18:48:25.841150389Z ClientId: 14 | Disconnected
2024-08-10T18:48:25.852353799Z info: LiveStreamingServerNet.StreamProcessor.Internal.Services.StreamProcessorManager[915708228]
2024-08-10T18:48:25.852400734Z Stream processor stopped | StreamProcessor: adaptive-hls-transcoder | Identifier: d87230a6-1361-4a82-b320-513a63cf6655 | InputPath: rtmp://localhost:1935/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906?code=4B644C70627252576C434F767549506B39354C74755173644F61664A67516575444F66626A43413762655542695033643837755342546E764667385336464E76 | OutputPath: hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master.m3u8 | StreamPath: /live/cbc94c88-dd6a-42cb-9143-b5ad96a39906
2024-08-10T18:49:15.862068617Z info: LiveStreamingServerNet.StreamProcessor.Internal.Hls.Services.HlsCleanupManager[1714131537]
2024-08-10T18:49:15.862132559Z HLS files are cleaned up | ManifestPath: hls/live/cbc94c88-dd6a-42cb-9143-b5ad96a39906/master.m3u8

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.