如何从 wowza 服务器获取所有活动流?

How to get all active streams from wowza server?

我一直在尝试设置多个实时流(最多 30 个)并制作某种小型视频聊天网站,用户可以在其中将流推送到服务器,其他用户可以观看这些流。我使用一个 wowza 实例和一个创建的名为 live 的应用程序。在阅读了关于 https://streamtoolbox.com 的所有教程后,我知道用户身份验证、令牌等,但我仍然不知道:

  1. 成功登录的用户如何收集来自 wowza 服务器的所有活动流?我希望他返回包含各种视频列表的 HTML 页面。登录用户是否应该向 wowza 服务器查询活动流?
  2. wowza如何区分和存储一个应用程序中的所有活动流?

提前感谢您对这个主题的一些阐述。

您可以构建自己的模块,使用 Wowza API 遍历应用程序中的所有活动流,甚至在 VHost 中的所有应用程序 运行 中。这个模块可能是一个你注册的 HTTPProvider,这样你就可以让它监听一个特定的 URL 和 return 一个 JSON/XML/HTML 表示你的 Wowza 服务器中的流。您的网站可能会向该模块发出请求并动态加载数据以将内容呈现给用户。这将是我的一般方法,API 文档和教程可以让您了解如何实际启动您自己的模块。

如果您更熟悉 Web 编程,您还可以研究使用 Wowza REST API 查询活动的传入流。您的 REST API 请求可以包装在 HTTP 请求中,返回的结果 JSON 数据可用于使用服务器端脚本填充 HTML 页面。

这是 REST API 调用,用于为名为 "live" 的应用程序获取传入流:

curl -X GET --header 'Accept:application/json; charset=utf-8' http://localhost:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/live/instances/_definst_

结果类似于:

{
    "serverName": "_defaultServer_",
    "incomingStreams": [{
        "sourceIp": "rtmp://127.0.0.1:28402",
        "isPTZEnabled": false,
        "applicationInstance": "_definst_",
        "name": "myStream",
        "isRecordingSet": false,
        "isStreamManagerStream": false,
        "isPublishedToVOD": false,
        "isConnected": true,
        "ptzPollingInterval": 2000
    }],
    "outgoingStreams": [],
    "recorders": [],
    "streamGroups": [],
    "name": "_definst_"
}