c# - 重定向视频流
问题描述
假设我正在将带有 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 协议?
解决方案
RTMP 是一种双向协议。您可以在两者之间使用 TCP 代理(如 ssh 隧道或 ha 代理)。但是您仍然需要运行一些软件的 RTMP 服务器。这可能在您的应用程序中,甚至只是 nginx。
如果您只是尝试“重定向”到您无法控制的另一台 RTMP 服务器,则任何 TCP 代理都可以。它不需要知道 RTMP。
推荐阅读
- c# - 如何监听数据库的变化?
- react-native-navigation - react-native-navigation 中顶部栏菜单操作的样式选项
- windows - __appdir__ 在 cmd.exe 和 Start > Run 之间是不同的
- java - 将 Kafka 连接的状态传播到就绪执行器指示器
- python-3.x - 使用函数读取和写入文件
- json - 将列表转储到 Athena 可接受的 JSON 文件中
- javascript - 如何计算摆的运动?
- javascript - 为什么javascript在RN webview中不起作用但桌面浏览器工作正常?
- javascript - 用 JavaScript 创建一个固定列和行的表
- linux - 如何在 docker 实例中找到并杀死不可见的进程?