首页 > 解决方案 > 重定向视频流

问题描述

假设我正在将带有 OBS 的 RTMP 视频发送到我的 C# 应用程序,例如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 协议?

标签: c#asp.net-corenginxrtmp

解决方案


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

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


推荐阅读