【问题标题】:Proxy a rtmp stream代理一个rtmp流
【发布时间】:2015-04-22 17:57:40
【问题描述】:
如何代理 rtmp 流?
我的局域网上有两个树莓派流式传输来自 raspicam 的实时视频。每个树莓派将视频发送到 ffmpeg,ffmpeg 包装在 flv 中并发送到 crtmpserver。
第三台使用 nginx 的服务器有一个静态 html 页面,其中包含两个 jwplayer 实例,每个实例都指向一个树莓派。
设置就像this one。
网络服务器使用身份验证,我也希望流不要公开。
我正在考虑尝试 nginx-rtmp-module,但我不确定它是否对我有帮助。此外,它似乎处于休眠状态并且有许多未解决的问题。
我愿意接受建议,在此先感谢!
【问题讨论】:
标签:
nginx
ffmpeg
video-streaming
rtmp
【解决方案1】:
您可以使用MonaServer 和this client(将其复制到 MonaServer 的 www/ 目录)侦听 udp 端口 6666 并等待名为“file”的 flv 文件发布。
那么您应该已经可以使用 jwplayer(地址为 rtmp:///file)或任何其他播放器播放您的流了。 MonaServer 支持 HTTP 协议,因此您可以根据需要在没有 nginx 的情况下托管您的 html 页面。
现在如果你想过滤对“文件”的订阅,你需要在你的 main.lua 脚本中写一个client:onSubscribe 函数,就像这样:
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)了解更多信息。