
合作前必须重点测5类指标:1) 端到端延迟(ingest→输出);2) 丢包率/重传;3) 带宽与码率稳定性(码流抖动);4) 播放成功率/首屏时间;5) 转码、分发与切片能力(是否支持低延迟HLS、LL-HLS、SRT等)。这些指标决定观众体验与成本。
构建标准场景:固定上行码率(如4Mbps/10Mbps)、多分辨率并开启ABR;在不同地域节点并发若干流(并发数模拟实际峰值);以真实播放器(H5/RN/播放器SDK)拉流并记录首帧时间、缓冲次数和播放失败率。测试要包含峰值、丢包注入、网络切换等极端场景。
至少覆盖峰值周期、离峰和突发三类时段,每个时段多点位重复测试以保证统计显著性。
推荐组合:1) 使用ffprobe/ffmpeg做端到端推流与拉流观测(监测PTS/DTS、丢帧);2) 用ping/traceroute采集时延与路径;3) 用curl或播放器SDK打点获取首屏时间和HTTP响应;4) 使用SRT/RTMP打点脚本测丢包与重传。脚本应产出CSV/JSON便于分析。
#!/bin/bash # 简单ffmpeg推流并记录日志 ffmpeg -re -i test.mp4 -c copy -f flv rtmp://cdn.example.com/live/stream1 2>&1 | tee ffmpeg_push.log # 拉流并用ffprobe分析 ffprobe -v quiet -show_frames -print_format json rtmp://cdn.example.com/live/stream1 > ffprobe_pull.json
脚本应在异常(丢包阈值、首屏超时)时调用告警接口(Slack/钉钉/邮件),并上传原始日志到存储以便深度排查。
设定SLA阈值,例如:端到端延迟≤3s(低延迟场景)或≤8s(常规直播)、播放成功率≥99%、丢包<0.5%。自动化脚本在每次测试后产出统计报告(均值/95分位/最大值/异常计数),并将结果写入时序数据库(Prometheus、InfluxDB)用于长期趋势分析。
常见坑:供应商夸大节点覆盖但回源能力弱;低价但并未支持低延迟协议;监控数据不可导出。决策时关注:1) 是否支持你的协议栈(RTMP/SRT/LL-HLS);2) SLA与赔付条款;3) 技术支持响应与故障演练能力;4) 是否提供可接入的监控API与日志导出,便于与你的自动化脚本和报警体系集成。