我想设置一个ngninx rtmp代理,可以转发来自具有热插拔功能的客户端的流。
我自己也不确定确切的问题,我不是很习惯rtmp,但我会试着解释我试图实现的目标:
有没有办法将nginx设置为不断传输到该twitch通道(即使没有客户端在传输),并开始转发连接到nginx的新流的流,而不必切断twitch流?如果第二个streamer加入,nginx是否可以自动丢弃第一个streamer并输出第二个streamer的视频,而不会丢弃twitch广播?
提前感谢您的回复!
发布于 2021-04-29 05:14:40
我不清楚你具体是不是想用什么语言或系统等来完成这项工作,但看起来你想要到多个位置的多个连接,这些连接(几乎)同时双向工作。
首先,如果你需要,我会给你一些帮助的链接,然后我会告诉你如何通过常见的web浏览器(在你的系统和浏览器的轮询能力范围内)设置类似的。
这可能会对你有帮助。
如果您尝试使用C++ for Windows中的简单for服务器中的一些代码: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的“新标签”,也可能不需要)。
(3)告诉你的程序获取新打开的窗口的前置句柄。快速执行此操作,并继续尝试(如果您的操作系统负载过重,则最多30秒),直到您获得预句柄,然后将新窗口的句柄分配给新窗口或新选项卡。
(4)使用这个新句柄并向地址栏发送一个javascript (减去"j"),这意味着您发送了一个完整的"avascript...“然后在地址栏中添加前面的"j“,因为如果FireFox检测到您在地址栏中放置了带有完整单词"javascript”的任何命令,它将阻止您执行某些操作(如果我没记错的话)。
(5)运行该javascript,告诉页面定期轮询所需位置的更新,并相应地定期响应更新(使用计时器)。
(6)就这么简单。浏览器中的网页,其中运行着javascript,可以做你所要求的事情。
或者作为最后的手段:
在您的地址设置一个web服务器,并直接连接到它,让它为您进行轮询。
https://stackoverflow.com/questions/44218575
复制相似问题