有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
文档中心 > 直播 SDK > 常见问题 > 播放失败相关问题
如果您发现直播无法观看,完全搞不懂里面出了什么情况,按照下面的思路进行排查,一般都能在几十秒内确认问题原因。



1. 检查播放 URL

在所有检查开始之前,您务必要先检查一下地址是否正确,因为这里出错概率最高,腾讯云的直播地址分推流地址和播放地址两种,我们要首先排除误拿推流地址来播放的错误。
rtmp://domain/AppName/StreamName?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
http://domain/AppName/StreamName.m3u8?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
http://domain/AppName/StreamName.flv?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
https://domain/AppName/StreamName.m3u8?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
https://domain/AppName/StreamName.flv?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
说明
domain 为推流/播放域名,AppName 自定义、默认为 live,StreamName 自定义;若未开启推流或播放鉴权,则无 “?” 及其后的 txSecret 内容。例如,推流域名为 www.push.com,AppName 为 live,StreamName 为 test01,未开启推流鉴权,则推流地址为 rtmp://www.push.com/live/test01。 小直播的播放 URL 可以用调试的办法获取,您可以全局搜索代码寻找关键字 startLivePlay,然后在此处打下调试断点,这里是小直播对 RTMP SDK 的调用点,startLivePlay 的参数即为播放 URL。

2. 检查视频流

播放 URL 正确不代表视频就能播放,所以要检查视频流是否正常:
对于直播,如果主播已经结束推流,直播 URL 就不能观看。
对于点播,如果云端的视频文件已经被移除,同样也是不能观看。
常用的解决办法就是用 VLC 检查一下,VLC 是 PC 上的一款开源播放器,支持的协议很多,所以最适合用来做检查。对于 WebRTC 协议,因为是腾讯私有协议,您可以使用 快直播 Demo 验证。



3. 检查播放端

如果视频流非常健康,我们就要分情况检查一下播放器是否正常:
Web 浏览器
格式支持:手机浏览器只支持 HLS(m3u8)和 MP4 格式的播放地址。
HLS(m3u8):腾讯云 HLS 协议是懒启动的,简言之,只有当有观众请求 HLS 格式的观看地址后,腾讯云才会启动 HLS 格式的转码,这种懒启动策略的目的是规避资源浪费。但也就产生一个问题:HLS 格式的播放地址要在全球首个用户发起请求后30秒才能观看
腾讯云 Web 播放器: 支持同时指定多种协议的播放地址,能够根据所在的平台 (PC/Android/iOS)采用最佳的播放策略,同时内部的选择性重试逻辑也能针对性解决 HLS(m3u8) 懒启动的问题。
RTMP SDK 如果 RTMP SDK DEMO 本身播放没有问题,推荐您参考 RTMP SDK 的播放文档(iOSAndroid)检查一下对接逻辑是否错误。
移动端调用 startLivePlay 返回 -5 在调用 startLivePlay 前,需要通过 V2TXLivePremier#setLicence 或者 TXLiveBase#setLicence 设置 License 后方可成功播放,否则将播放失败(黑屏),全局仅设置一次即可。直播 License、短视频 License 和播放器 License 均可使用,若您暂未获取上述 License ,可 快速免费申请测试版 License 以正常播放,正式版 License 需 购买
onError 抛出 V2TXLIVE_ERROR_NO_AVAILABLE_HEVC_DECODERS(-2304) 当抛出此错误码时,说明当前设备不支持 H265 解码,请切换至 H264 数据流进行播放。
调用 setAudioRoute 设置音频路由不生效
1.1 音频路由必须在硬件设备打开后才会生效,所以请在 onCaptureFirstAudioFrame 回调收到后再设置;
1.2 确认是否添加 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 权限。
Android 硬解黑屏 检查一下 manifest 文件中 android:hardwareAccelerated 属性,确保其值为 true。

4. 检查防火墙拦截

这是常见的一种情况,不少客户的公司网络环境会限制视频播放,限制的原理是由防火墙侦测 HTTP 请求的是否是流媒体资源。如果您使用 4G 进行直播观看没有问题,而用公司的 Wi-Fi 网络无法观看,即说明公司的网络策略有所限制,您可以尝试跟网管沟通,让网管给您的 IP 做一下特殊处理。

5. 检查推流端

如果是直播 URL 根本不能播放,而且没有步骤4中防火墙限制的可能,那么很大概率是推流不成功,可以到 推流失败问题排查 继续问题的排查。