You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GoCoder SDK未在自建Wowza服务器创建流文件问题咨询

解决GoCoder SDK推流到Wowza未自动生成StreamFile的问题

嘿,我之前也踩过这个坑,核心是得先把Wowza里StreamNameStreamFile的概念理清楚,咱们一步步来解决:

先搞懂核心差异

你在GoCoder SDK里配置的StreamName实时推流的标识,Wowza接收到这个流后,会在后台的Incoming Streams页面显示正在运行的实时流,但默认不会自动生成StreamFile

StreamFile是Wowza里用来预定义流配置的实体——比如绑定应用、设置拉流地址、配置转码规则等,它和实时推流的流名完全是两回事。系统提示推流正常,说明你的推流连接是没问题的,先去Incoming Streams页面确认一下实时流是否在运行,大概率是能找到的。

如果确实需要自动生成StreamFile

如果你的业务场景必须要自动创建对应的StreamFile(比如需要持久化流配置、做拉流映射等),可以试试这两种方法:

1. 借助Wowza REST API在推流时创建

你可以在GoCoder SDK的推流成功回调里,调用Wowza的REST API来自动生成StreamFile。示例请求如下:

POST http://[你的Wowza服务器IP]:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/[你的应用名称]/streamfiles/[你的StreamName]
Headers:
Content-Type: application/json
Authorization: Basic [Base64编码的Wowza管理员账号:密码]
Body:
{
  "restURI": "http://[你的Wowza服务器IP]:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/[你的应用名称]/streamfiles/[你的StreamName]",
  "name": "[你的StreamName]",
  "serverName": "_defaultServer_",
  "applicationName": "[你的应用名称]",
  "uri": "rtsp://localhost:1935/[你的应用名称]/[你的StreamName]"
}

把这个请求集成到iOS代码里,用URLSession调用就行,确保推流成功后自动触发创建。

2. 手动创建StreamFile的注意事项

如果选择手动创建,一定要盯紧这几点:

  • StreamFile的name和你推流用的StreamName完全一致(大小写敏感)
  • StreamFile绑定的应用名称和你推流的应用名称匹配
  • 配置的uri格式要和推流协议对应(比如用RTMP推流的话,uri改成rtmp://localhost:1935/[你的应用名称]/[你的StreamName]

额外排查小技巧

如果连Incoming Streams里都看不到流,那得再检查下:

  • 开启GoCoder SDK的日志功能,看看推流过程中有没有隐藏的错误(比如端口被拦截、参数不匹配)
  • 确认Wowza应用的推流权限,保证你用的推流账号有足够权限推流到目标应用

内容的提问来源于stack exchange,提问作者tomn

火山引擎 最新活动