内容提要
H5直播选型需先确认两点:主播是否在浏览器开播、能否接受低延迟单独计费。浏览器端受解码方式限制(iOS微信不支持FLV),WebRTC需HTTPS,自动播放需静音或手势触发。ZEGO以WebRTC原生、推拉一体、低延迟默认,但CDN播放较弱;阿里云CDN原生,低延迟需另开RTS,浏览器推流仅限RTS;腾讯云CDN加快直播,TCPlayer单实例支持多协议并自动降级,最为省事。各方案计费口径不同,需计入转码、录制等费用,并做浏览器矩阵与延迟实测。
延伸解读
浏览器兼容性:选型的第一道门槛
文章指出,H5直播受浏览器解码能力限制:iOS微信不支持MSE,导致FLV方案直接出局;WebRTC必须HTTPS;自动播放需静音或手势。这意味着选型前必须明确目标浏览器矩阵,尤其是iOS微信占比高的业务。腾讯云TCPlayer的自动降级机制(WebRTC不支持时转HLS)能减少兼容性处理成本,而ZEGO和阿里云需要自行实现降级逻辑。
低延迟的实现方式决定产品结构
三家在低延迟上的产品结构不同:ZEGO将低延迟作为RTC原生能力,通过resourceMode切换;阿里云需单独开通RTS服务,且浏览器推流仅限RTS;腾讯云通过快直播(LEB)提供WebRTC通道,并集成在TCPlayer中。这导致依赖的产品数量不同:ZEGO一套SDK,阿里云需理解RTS推流和拉流两个包,腾讯云需区分播放和推流封装。选型时需评估团队对多产品集成的接受度。
计费口径差异大,直接比单价会误导
文章强调三家计费根本不同:ZEGO按拉流分钟计费,推流不单独收费;阿里云和腾讯云按流量或带宽计费,且低延迟服务(RTS/快直播)独立计费。此外,转码、录制等增值项常被忽略,例如阿里云RTS的H5自动转码、腾讯云WebRTC转AAC都会产生额外费用。资源包抵扣范围也不同:阿里云通用流量包不抵扣RTS,腾讯云流量包可抵扣快直播。比价时应将观看时长折算成流量,并加入转码、录制成本。
实测验证:一天内可完成的关键检查
文章提供了一天验证清单,包括浏览器矩阵测试(Windows Chrome、macOS Safari、Android Chrome、iOS Safari、微信浏览器)、延迟测量(需同一时钟源,避免依赖控制台统计)、弱网模拟(DevTools限速无法模拟丢包和抖动)以及降级验证(手动禁用WebRTC观察行为)。还需记录首帧时间、卡顿率、重连次数等指标,并特别注意腾讯云单推流域名1000路并发限制。这些实测能暴露文档未提及的兼容性和稳定性问题。
Q&A
H5直播选型时,最先要确认哪两个问题?
先确认主播是否也在浏览器里开播,以及能否接受低延迟作为单独计费的增值项。这两个答案基本决定了选谁,剩下的才是延迟和价格。
为什么iOS微信里不能直接用FLV播放H5直播?
因为iOS上MSE不可用,微信的WKWebView也没有MSE,而FLV方案依赖MSE(HTTP-FLV),所以iOS微信里FLV方案直接出局,flv.js也不行。
ZEGO、阿里云、腾讯云在浏览器推流能力上有什么不同?
ZEGO的Web SDK本身是WebRTC推拉流SDK,推流是主SDK的一个接口;阿里云浏览器推流仅限RTS(artc://协议),没有标准直播的网页推流;腾讯云基于WebRTC封装提供Web推流。
腾讯云TCPlayer的自动降级是怎么工作的?
TCPlayer单实例可喂flv://、m3u8、webrtc://三种地址。当浏览器不支持WebRTC时,传入的webrtc://地址会自动转成HLS播放;连接重试超限(状态码-2004)或播放中解码失败(-2005)也会触发同样的降级。
三家在低延迟计费上有什么关键区别?
ZEGO低延迟(L3)是产品自带能力,按拉流分钟分档计费,不单独计费;阿里云低延迟需开通RTS增值服务,独立按流量/带宽计费,且通用流量包不抵扣RTS费用;腾讯云快直播独立按流量/带宽计费,但直播流量资源包可抵扣快直播流量。
如果观众主要在微信里打开链接且iOS占比高,推荐哪家?为什么?
推荐腾讯云。因为TCPlayer的webrtc://地址在浏览器不支持WebRTC时会自动降级为HLS播放,降级逻辑不用自己写,能覆盖iOS微信等环境。
验证H5直播延迟时应该怎么测才可靠?
用同一个时钟源:直播画面里放一个毫秒级时间码,手机拍屏对比本地时钟,或两端同时打开同一网页时钟。不要凭感觉,也不要信控制台的统计字段。