重定向视频流
Redirect Video Stream
假设我正在将带有 OBS 的 RTMP 视频发送到我的 C# 应用程序,例如 http://my_site/.com
我想将它重定向到例如中间件中的内部 rtmp 服务器 - 在 url rtmp://internal/live
下
如何在不破坏视频流的情况下执行 "redirect"?
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 感知。
假设我正在将带有 OBS 的 RTMP 视频发送到我的 C# 应用程序,例如 http://my_site/.com
我想将它重定向到例如中间件中的内部 rtmp 服务器 - 在 url rtmp://internal/live
如何在不破坏视频流的情况下执行 "redirect"?
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 感知。