控制台生成的推流url可以正常推送,但是在ios上面就会报这样的错误,
dynamic_cast error 1: Both of the following type_info's should have public visibility. At least one of them is hidden. N5boost7archive6detail14basic_iarchiveE, N5boost7archive13text_iarchiveE.
ERROR: WriteN, RTMP send error 32 (140 bytes)
ERROR: WriteN, RTMP send error 32 (103 bytes)
ERROR: WriteN, RTMP send error 9 (42 bytes)
"live pusher 网络连接断开"
EINPROGRESS in connect() - selecting
"live pusher 网络重连成功"
ERROR: WriteN, RTMP send error 32 (140 bytes)
ERROR: WriteN, RTMP send error 32 (103 bytes)
ERROR: WriteN, RTMP send error 9 (42 bytes)
"live pusher 网络连接断开"
EINPROGRESS in connect() - selecting
"live pusher 网络重连成功"
ERROR: WriteN, RTMP send error 32 (129 bytes)
ERROR: WriteN, RTMP send error 32 (103 bytes)
ERROR: WriteN, RTMP send error 9 (42 bytes)
"live pusher 网络连接断开"
EINPROGRESS in connect() - selecting
"close"
"live pusher 网络重连成功"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到这样的错误信息,主要涉及到RTMP推流过程中出现的网络连接问题和潜在的编码库兼容性问题。根据您提供的错误信息,这里有几个可能的原因和解决建议:
网络不稳定:错误信息中多次提到“网络连接断开”和“网络重连成功”,这表明推流过程中网络连接可能存在波动或不稳定。请检查您的网络环境,确保推流设备(iOS设备)与推流服务器之间的网络连接稳定可靠。
RTMP协议问题:RTMP发送错误(如ERROR: WriteN, RTMP send error 32/9
)通常意味着数据包发送失败,可能是由于RTMP协议握手、数据包格式不正确或者服务器端配置不匹配导致。确认您的推流URL是否完全符合RTMP协议标准,并且服务器端支持当前的RTMP版本和设置。
第三方库兼容性:错误信息中的dynamic_cast error 1
提示可能与使用的推流库(如boost库)有关,这可能是由于编译时或运行时类型信息的可见性问题。检查您的开发环境中使用的第三方库版本,确保它们与您的项目以及目标平台(iOS)兼容。有时候,更新或降级相关库到一个更稳定的版本可以解决问题。
iOS平台特定问题:考虑到错误出现在iOS平台上,可能与iOS系统的某些特性或限制有关。比如,iOS对后台网络操作有严格的限制,如果应用进入后台,网络连接可能会被系统中断。确保您的应用在Info.plist中请求了必要的后台模式权限,如audio
, video
, 或 voip
,以保持推流服务在后台运行。
代码层面的调试:深入到具体的推流代码中,查看是否有异常处理逻辑不当或者资源管理问题。使用Xcode等开发工具进行调试,观察变量状态和调用栈,可以帮助定位具体是哪一步操作引发了错误。
针对以上建议,逐一排查并尝试解决方案。如果问题依然存在,考虑联系阿里云技术支持获取更专业的帮助,他们能提供更针对性的服务器端配置检查和建议。