播放画面异常(黑屏/无画面/闪退)
控制台或浏览器播放只有声音无画面
问题现象:在控制台或浏览器中播放直播流时,有声音但无画面,或提示解码失败。
解决方案:
排查推流端是否使用 H.265 编码,部分浏览器不支持 H.265 解码,无法渲染画面。
若是,将推流端视频编码切换为 H.264 或 AV1 等通用格式。
如需保留 H.265 编码,使用支持 H.265 的专用播放器(如阿里云播放器)播放。
直播突然黑屏但重进恢复
问题现象:直播观看过程中画面突然黑屏,退出后重新进入可恢复;或画面闪一下后消失。
问题原因:
推流端时间戳紊乱:推流端音视频 DTS 增长过大或非递增,导致播放器解析失败。
关键帧缺失:推流端未定期插入关键帧,播放器无法正常解码。
推流端网络波动:推流端网络不稳定,数据传输中断。
解决方案:
检查推流设备和软件稳定性,确保推流端正常运行。
设置 GOP 在 2 秒以内,确保定期插入关键帧。
排查推流端带宽及网络状况,确保上行带宽充足、连接稳定。
Aliplayer 在 Web 端直播场景下页面不可见或息屏后自动恢复播放如何处理?
问题原因:直播播放器本身没有暂停后自动播放的机制。出现该现象通常是因为全局代码中开启播放的方法被意外触发。
解决方案:
检查全局前端代码逻辑,排查是否有开启播放的方法被意外触发。
自行实现播放状态监听,并在检测到异常状态时及时处理。
如需监控流状态,可使用
DescribeLiveStreamsOnlineList接口查询在线流,或配置直播回调,以便在流异常断开和恢复时接收通知。
鸿蒙系统下 Web 播放器白屏如何解决?
问题现象:在鸿蒙系统设备上使用 Web 播放器播放直播流时,页面白屏、无画面。
问题原因:旧版本 Web 端播放器 SDK 不兼容鸿蒙系统环境。
解决方案:
将 Web 端播放器 SDK 升级至 2.37.8 及以上版本以兼容鸿蒙环境。
确认已正确配置 Web 端播放器 License:端类型需选择「Web 端」且 License 已与应用绑定,配置方式参见 License 集成指南「配置 License」章节下的「Web 端 SDK License 获取与配置」小节。
RTMP 协议播放出现绿屏
问题现象:使用 RTMP 协议播放直播流时画面出现绿屏。
解决方案:
将播放协议切换为 FLV 或 M3U8(HLS)协议。这两种协议相对更稳定,有助于解决偶发的绿屏问题。
iOS 设备及 Mac 端播放视频有声音无画面或快进卡顿如何排查?
排查建议:
优先更换网络环境后重试。
切换其他 iOS 设备或 Android 设备进行对比测试,以排除特定设备或网络环境问题。
若以上基础排查未解决,再进一步分析是否为多端兼容性问题。
播放报错与加载失败排查
报错 4008「缓冲数据超时」
问题原因:播放端网络连接不稳定,或播放器缓冲策略配置不当,数据加载超时。
解决方案:
检查播放端网络连接,确保网络稳定。
刷新页面或重新加载播放器重试。
如问题持续,排查播放端缓冲策略配置是否合理。
Web 播放器报错 4002 但 URL 鉴权未过期如何排查?
排查步骤:
检查播流域名是否配置了 Referer 白名单,并确保播放页面的域名已加入白名单。
检查相关域名是否配置了跨域允许(CORS)。
确认是否因 Chrome 浏览器内核版本变化导致兼容性问题。Chrome 130 及以上版本的变化可能引发此类问题,建议将阿里云 Web 播放器 SDK 升级至 2.38.0 或更高版本,以获取日志统计和兼容性支持。
H5 播放器加载 m3u8 格式直播流时报错 manifestLoadError(错误码 4006)
问题原因:
HTTPS 证书或 CORS 配置异常:播放域名的 HTTPS 证书未正确配置,或未设置 CORS 跨域策略。
Referer 防盗链拦截:开启 Referer 防盗链后,播放器域名未加入白名单。
流地址参数不匹配:URL 中的 AppName 或 StreamName 与控制台配置不一致。
解决方案:
检查播放域名的 HTTPS 证书是否正确配置,确认证书有效且域名匹配。
确认 CORS 跨域配置已允许播放器所在域名访问。
如开启 Referer 防盗链,将播放器域名或阿里云默认 Referer 加入白名单。
核对播放 URL 中的 AppName 和 StreamName 与控制台推流配置完全一致。
多路并发拉流失败
问题现象:同时拉取多路直播流时部分流加载失败,关闭某路后其他路恢复正常。
问题原因:
StreamName 冲突:多路流的 StreamName 存在重复,资源分配冲突。
播放端资源限制:播放器本地连接数或解码资源受限,无法同时处理多路流。
解决方案:
检查各路流的 StreamName 是否唯一,避免名称冲突。
排查播放器的并发连接限制,必要时调整播放器并发配置或分批拉流。
iOS 集成 AliPlayerSDK 播放 RTMP 流超时怎么办?
问题原因:iOS 端支持 RTMP 拉流,但不能使用 Xcode 在线调试。如果手机和电脑通过 USB 连接进行调试,会导致播放超时。
解决方案:
断开 USB 连接后再进行测试播放。
提示“接收音频帧时间间隔过大”并伴有卡顿
问题原因:该提示说明推流端送达的音频帧不连续,根因在推流侧输入不稳定,平台侧无法通过配置规避。
解决方案:
校对推流参数:帧率不低于 15 帧每秒,关键帧间隔(GOP)不超过 2 秒,码率保持稳定不频繁波动。
检查推流设备的处理器占用与上行网络质量,设备负载过高或上行带宽不足会直接导致音频帧堵塞。
确认音频采集未被其他应用抢占,并使用固定采样率与 AAC 编码推流。
视频直播 iOS SDK 在 App 切后台再回前台后,音频永久延迟于视频怎么办?
问题原因:使用视频直播 iOS SDK 推流时,应用从后台回到前台后,音频采集层(AVAudioEngine)会在短时间内密集调用 sendPCMData。SDK 会被动将旧音频数据堆入编码队列,导致音频持续落后于视频。
解决方案:
清理缓存的音频数据。
应用进入后台时调用
pusher.stopPush停止推流;回到前台时重建推流。推荐方案:使用
alivcPusher.pausePush()和alivcPusher.restartPush()处理应用前后台切换,以恢复音视频同步。
拉流返回 404,流恢复后播放器不自动重连
问题原因:404 表示当前流不存在(未推流或已断流)。播放器遇到 404 时默认不会持续自动重试,需由业务层实现恢复逻辑。
Connection Timeout was reached 与 404 的区别:推流端开始推流后,直播中心接收数据存在约 3~4 秒延迟。若播放器在推流连接尚未完全就绪时发起拉流请求,可能已建立长连接但尚未收到音视频数据,因此报“Connection Timeout was reached”。该错误不表示流不存在,与 404 不同。
解决方案:
监听播放器错误事件,捕获到 404 后延时 2~5 秒重新发起播放,并限制重试次数避免频繁请求。
更稳妥的做法:先调用查询推流信息接口确认流已开始推送,或通过推流断流回调感知开播状态,再发起播放。
业务侧可在未开播时展示占位页或轮播内容,避免直接向观众暴露报错。
Connection Timeout was reached 的解决方案:
客户端优化:针对该超时错误增加重试逻辑。
业务逻辑优化:在服务端配置推流回调地址,仅在收到阿里云侧“推流成功”回调通知后,再通知播放器发起拉流。
推流侧保障:保持推流稳定性,避免频繁启停。
云端混流(合流)后小窗流播放失败
问题现象:主流可正常播放,合流中的小窗画面缺失或混流任务未启动。
解决方案:
参与混流的各路流,AppName 与 StreamName 不能重复,必须互不相同。
推流地址建议统一使用控制台地址生成器生成,避免手工拼接导致鉴权或参数出错。
小窗流地址需有效且与主流协议保持一致;混流任务至少需要一路有效推流才会启动。
播放协议、编码与延迟优化
ARTC 格式直播流为什么在浏览器/VLC/自研播放器中无法播放?
问题原因:ARTC 协议不能用普通浏览器、VLC 或自研播放器直接播放,必须集成阿里云 RTS 播放 SDK 或使用官方 Web 播放器。
解决方案:
使用阿里云 Web 播放器或集成 RTS 播放 SDK 播放 ARTC 流。
Chrome 等浏览器无法播放 ARTC 时,优先检查播流域名的 HTTPS 证书是否有效(ARTC 要求有效证书,不同浏览器校验策略不同)。
无法集成 SDK 的场景,可改用 HTTP-FLV/HLS 等通用协议播放(延迟高于 ARTC)。
播放延迟大,如何降低延迟?
解决方案:
优先使用 HTTP-FLV 或 RTMP 协议播放,HLS(M3U8)延迟相对较高。
推流端将 GOP(关键帧间隔)设置为 1~2 秒,GOP 过大会显著增加首屏时间和延迟。
对延迟要求严苛(秒级以内)的场景,建议使用超低延时直播 RTS。
FLV 播放报“不支持此编码”,阿里云 Web 播放器支持哪些音视频编码?
问题原因:阿里云 Web 播放器音频仅支持 MP3 和 AAC 编码,推流端使用 pcm_alaw 等其他音频编码时,播放会报“不支持此编码”。
解决方案:
将推流端音频编码切换为 AAC 或 MP3。
如需使用 H.265 拉流播放,需先通过商务申请开通,并在播放地址中添加参数
is_enhanced_rtmp_play=on。
如何配置播放器 SDK 以支持 H.265 格式播放?
说明:若需使用阿里云播放器 SDK 播放 H.265 格式直播流,需满足以下前提:
先申请开通 H.265 播放权限(或在后台配置项目支持 H.265)。
在播放地址中添加参数
is_enhanced_rtmp_play=on。
本条侧重播放器 SDK 配置与播放地址参数;如需排查编码格式导致的「有声音无画面」问题,请参考本文档「控制台或浏览器播放只有声音无画面」条目。
播放失败或卡顿,如何判断是推流端还是拉流端问题?
排查思路:
查看控制台推流事件日志:若推流频繁断开重连,属于推流端网络问题,建议推流码率不超过 4Mbps、使用有线网络、就近接入节点并开启自动重连。
源流卡顿会导致所有拉流、转推同步卡顿,此类问题根因在推流源头而非 CDN 分发。
使用控制台自助问题排查工具检测推流/播流地址有效性与鉴权配置是否正确。
推流正常而部分观众卡顿时,排查观众侧网络质量与播放器缓冲配置。
使用 live-player 等第三方插件拉流画面卡住如何排查?
排查步骤:
使用阿里云播放器官方 Demo进行对比测试:视频类型选择直播,输入拉流地址预览。
若 Demo 播放正常,则问题出在第三方插件或客户端环境,需排查客户端日志。
若 Demo 仍复现卡顿,检查拉流域名离线日志,排除服务端 5xx 错误及 403/404 配置问题。
如何判断当前使用的是超低延时直播 1.0 还是 2.0?
判断方法:在控制台的域名管理中打开目标域名,查看推流信息与协议配置:若仅开启了常规协议、未开启超低延时 2.0 相关开关,则为 1.0。1.0 为默认状态,只要未主动升级即为 1.0。
为何需要先判断版本:
两个版本的降延迟参数与推荐配置不同,按错误版本调整不但无效,还可能劣化体验。
升级为 2.0 需单独开启,升级后播放地址与计费项可能发生变化,请先在测试环境验证。
标准直播(原画)与超低延时能否共用同一个推流地址?
可以共用同一个推流地址,一路推流可同时提供标准直播与超低延时播放。
前提:两边使用的 AppName 与 StreamName 必须完全相同。
区别在播放侧:标准直播使用常规协议播放地址(如 FLV、HLS),超低延时使用超低延时协议地址;两个播放地址不同,但对应同一路推流。
计费上两种播放分别统计,超低延时流量不能用标准直播流量包抵扣。
推流正常,但控制台历史流列表查不到记录
排查顺序:
确认是否开启了半秒延时模式:该模式下不存储历史流信息,这是最常见原因,关闭后重新推流即可正常记录。
确认查询的 AppName、StreamName 与推流时完全一致(区分大小写),且域名选择正确。
历史流仅展示已结束的推流,进行中的推流请在在线流列表查看。
历史流记录保留期为 30 天,超出保留期的记录不再保留;如需长期留存,请自行通过接口定期拉取并存储。
使用 SRT 推流,网络切换时会不会断流?
会断流。网络切换(如无线局域网与移动网络互切)会使链接中断,SRT 本身的丢包重传能力不能避免链接重建。
需在业务侧实现断流检测与自动重连,不要依赖推流端默认行为。
协议组合上,SRT 推流与超低延时协议播放可以配合使用。
建议上线前针对自身网络环境做多场景切换测试,评估重连耗时与观看体验。