我如何代理 rtmp 流?
我的局域网上有两个树莓派流式传输来自 raspicam 的实时视频。每个树莓派将视频发送到 ffmpeg,ffmpeg 包装在 flv 中并发送到 crtmpserver。
第三台使用 nginx 的服务器有一个静态 html 页面,其中包含两个 jwplayer 实例,每个实例都指向一个树莓派。
设置就像 this one .
Web 服务器使用身份验证,我希望流也不要公开。
我正在考虑尝试 nginx-rtmp-module,但我不确定它是否对我有帮助。此外,它似乎处于休眠状态并且有许多 Unresolved 问题。
我愿意接受建议,在此先感谢!
最佳答案
您可以使用MonaServer与 this client (将其复制到 MonaServer 的 www/目录中)监听 udp 端口 6666 并等待一个名为“file”的 flv 文件发布它。
那么您应该已经可以使用 jwplayer(地址为 rtmp:///file)或任何其他播放器播放您的流了。 MonaServer 支持 HTTP 协议(protocol),因此您可以根据需要在没有 nginx 的情况下托管您的 html 页面。
现在如果你想过滤对"file"的订阅,你需要写一个 client:onSubscribe main.lua 脚本中的函数,就像这样:
function onConnection(client)
INFO("Connection from ",client.address)
function client:onSubscribe(listener)
INFO("Subscribing to ", listener.publication.name, "...")
if not client.right then
error("no rights to play it")
end
end
end
(这里您需要更改“not client.right”并为您的目的实现您的身份验证功能)
更进一步,您可以使用另一个支持 RTMFP 的 Flash 视频客户端来处理大量客户端。联系我(jammetthomas AT gmail.com)了解更多信息。
关于nginx - 代理一个rtmp流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28639422/