我需要能够流式传输 VOD,但视频将按分钟进行跟踪,因此我需要不断维护用户拥有多少分钟的信息,并且当他花费几分钟时,我需要终止他的流。
我已经在 Wowza 中实现了这一点,现在我正试图找到在 nginx 中实现这一点的方法。最大的问题是,我不知道 nginx 是否会将有关请求的视频块的信息转发到我的 PHP(或任何其他脚本),以便我可以决定是否允许当前请求。
如果有人能告诉我这是否可能,如果可以,请给我指明正确的方向。
答案1
可以使用开源nginx-rtmp-模块。
Rtmp模块有通知挂钩。
例如:
播放中
设置 HTTP 播放回调。每次客户端发出播放命令时,都会异步发出 HTTP 请求,并且命令处理会暂停,直到它返回结果代码。然后分析 HTTP 结果代码。
- HTTP 2xx 代码继续 RTMP 会话
- HTTP 3xx 将 RTMP 重定向到另一个流,该流的名称取自 Location HTTP 响应标头。如果新流名称以 rtmp:// 开头,则会创建远程中继。中继要求指定 IP 地址而不是域名,并且仅适用于 1.3.10 以上的 nginx 版本。另请参阅notify_relay_redirect。
- 否则 RTMP 连接会断开
Nginx 也有一个商业产品。我上次听说每个座位每年 1500 美元。按这个价格应该按照你的要求做,但我不熟悉。