我想设置一个ngninx rtmp代理,它可以使用hotswap功能从客户端转发流。
我不确定自己的确切问题,我不习惯rtmp,但我会尝试解释我想要实现的目标:
我想设置一个不停止运行的抽搐流,即使转发的客户端停止流式传输,我们假设我们在同一个抽搐频道上有多个流媒体广播,当一个人完成流媒体播放时,另一个人将其取消,但是需要将流切割几分钟。
有没有办法设置nginx不断流向该抽搐通道(即使没有客户端正在流式传输),并开始转发连接到nginx的新流式传输器的流而不必切断抽搐流?如果第二个流媒体加入,nginx会自动丢弃第一个流媒体并输出第二个流媒体的视频,同样不会丢弃抽搐广播吗?
提前感谢您的回复!
答案 0 :(得分:0)
我不清楚您是否具体说明了您希望使用哪种语言或系统等,但看起来您想要多个连接到多个位置的多个连接(几乎)同时进行双向工作。
首先,如果您需要它们,我会给您一些帮助链接,然后我会告诉您如何通过通用网络浏览器(在您的系统和浏览器的轮询能力范围内)进行类似设置。
这可能对您有所帮助。
也许如果您尝试使用 A Simple Webserver in C++ for Windows 中的一些代码:https://renenyffenegger.ch/notes/web/webserver/cpp/simple/index
或
也许您正在寻找这样的东西。 VASTreaming 的 C++ 媒体流库: https://vastreaming.net/cpp-streaming-libraries.html
或
您可能会使用其中的一些: https://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm
但这里是如何通过通用网络浏览器执行类似操作。
编写一个程序(我几年前在 VB6 sp5 中做过。永远不要使用任何更高版本的 Visual Studio。在 C++11 中,这应该可以工作。)
在此示例中使用 FireFox 作为浏览器。
(1) 启动您的程序并子类化 FireFox。
(2) 让您的程序告诉 Firefox 打开一个新窗口(可能需要将其设置为 FireFox 的“新选项卡”,也可能不需要)。
(3) 告诉你的程序去获取新打开的窗口的前置句柄。快速执行此操作并继续尝试(如果您的操作系统过载,最多 30 秒),直到获得预句柄,然后将新窗口的句柄分配给该新窗口或新选项卡。
(4) 使用新句柄并向地址栏发送一个 javascript(减去“j”),这意味着您将整个“avascript...”发送到该地址栏,然后添加前一个“j”因为如果 FireFox 检测到您在地址栏中放置了包含整个单词“javascript”的任何命令,它将阻止您执行某些操作(如果我没记错的话)。
(5) 运行该 javascript,告诉页面定期轮询所需位置以获取更新,并定期适当地响应更新(使用计时器)。
(6) 就这么简单。浏览器中的网页,在其中运行 javascript 会执行您的要求。
或者作为最后的手段:
在您的地址设置一个网络服务器并直接连接到它并让它为您进行轮询。