Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重定向视频流_C#_Asp.net Core_Nginx_Rtmp - Fatal编程技术网

C# 重定向视频流

C# 重定向视频流,c#,asp.net-core,nginx,rtmp,C#,Asp.net Core,Nginx,Rtmp,假设我正在将带有OBS的RTMP视频发送到我的C#app,例如http://my_site/.com 我想将它重定向到例如中间件中的内部rtmp服务器-在urlrtmp://internal/live 如何在不破坏视频流的情况下执行“重定向” app.Use(async (context, next) => { if (!context.Request.Headers.TryGetValue("ApiKey", out var key)) { context

假设我正在将带有OBS的RTMP视频发送到我的C#app,例如
http://my_site/.com

我想将它重定向到例如中间件中的内部rtmp服务器-在url
rtmp://internal/live

如何在不破坏视频流的情况下执行“重定向”

app.Use(async (context, next) =>
{
    if (!context.Request.Headers.TryGetValue("ApiKey", out var key))
    {
        context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
        return;
    }

    if (!apiKeys.Contains(key))
    {
        context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return;
    }

    Redirect(await next.Invoke());
});

如果我只想重定向所有数据,是否需要添加一些支持rtmp协议?

rtmp是一种双向协议。您可以在两者之间使用TCP代理(如ssh隧道或ha代理)。但是您仍然需要运行一些软件的RTMP服务器。这可能在你的应用程序中,甚至只是nginx

如果您只是试图“重定向”到另一个您不控制的RTMP服务器,任何TCP代理都可以。它不需要知道RTMP

一般来说,我“只是”想知道有人正在流到我的rtmp。我想要一些元数据,例如至少在什么url下,例如
rtmp://internal/live/1234
或能够拒绝该人