我正在从 Wowza 流式传输到移动设备 (Android)。我正在使用 Vitamio 流媒体库。实际流程是这样的,当我的应用程序点击 Wowza 时,Wowza 没有直播,但过了一会儿 Wowza 就开始直播了。现在又想敲Wowza看看直播有没有。
我想要的是,我的应用程序应该每 5 秒点击一次 Wowza 来检查是否有流。
最佳答案
听起来您只需要查询 Wowza 服务器即可查看您的流是否处于 Activity 状态。如果是这样,那么您可以使用 Wowza REST API 命令来查询传入流(您至少需要版本 4.2+)。
例如,要查询应用程序“实时”的所有传入流,您可以通过 HTTP 发送以下命令:
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":"<hidden>","isPTZEnabled":false,"applicationInstance":"_definst_","name":"wowzademo.stream","isRecordingSet":false,"isStreamManagerStream":true,"isPublishedToVOD":false,"isConnected":true,"ptzPollingInterval":2000}],"outgoingStreams":[],"recorders":[],"streamGroups":[],"name":"_definst_"}
这表明我有一个名为“wowzademo.stream”的传入流(除其他外)。如果您愿意,还可以将响应更改为 xml 而不是 json。
更新
为了回应您的评论,我将添加:
确保您使用的版本至少为 4.2+;我实际上建议使用版本 4.3,因为最新版本上有一些 REST API 修复;
如果您使用的是 4.3 版本,请通过设置
<AuthenticationMethod>
禁用身份验证进行测试。和<DocumentationServerAuthenticationMethod>
conf/Server.xml 文件的 Root/Server/RESTInterface 容器下为 none;确保添加restUserHTTPHeaders属性,使其值为“Access-Control-Allow-Origin:*|Access-Control-Allow-Methods:OPTIONS,GET,PUT,DELETE,POST |Access-Controlol-Allow-Headers:Content-Type”。
如果上述方法仍然不适合您,请尝试通过设置 <DiagnosticURLEnable>
来启用调试属性。为 true,并添加 <debugEnable>
(设置为 true/Boolean 类型)RESTInterface 容器中的属性。您可以通过查看logs/目录下的访问日志来查看生成的日志。
关于android - 如何检查 Wowza 上的 LiveStream(仅限音频)是否已启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34273477/