masklive1.xyz

测试推流

把一路画面从采集端推到观众屏幕,中间要经过编码、上行、转码、分发和播放五段链路。这个站点用来记录我在这些环节里做过的验证、调过的参数和踩过的坑。

关于我

一个长期和推流链路打交道的人,常住广州。

我是张光熙,做推流链路搭建与验证的工作。日常往返于采集端、编码器、推流服务器和播放端这四段之间——摄像头与麦克风拾音进采集卡,编码器把人眼看不出差别的画面压成几百到几千 kbps 的码流,上行链路再把它送到边缘节点,最后由播放器解码显示。任何一环发生抖动,观众端看到的就是卡顿、花屏或者声音对不上画面。

我做的主要事情,是在这条链路的每一个接缝上反复跑验证:换协议、换编码参数、模拟弱网、换播放端,然后把现象和原因一条条钉下来。这些记录最初只是自己的笔记,后来整理出习惯,就放在这个站点上。

masklive1.xyz 是我个人的站点,不承接商业推广,内容以推流测试的方法、参数与经验为主。

1200+链路验证场次
6覆盖推流协议
<1s目标端到端延迟

专注方向

围绕推流全链路,长期做下面这几类验证工作。

推流协议验证

逐一走通 RTMP、RTMPS、SRT、WebRTC、HLS 与 HTTP-FLV,核对握手过程、推流鉴权、断线重连和容器封装方式在不同服务端的实际表现。

弱网与延迟测试

用限速、丢包与抖动模拟地铁、电梯、地下车库一类的移动网络,记录首帧时间、卡顿次数与端到端延迟,找出链路上最先失守的那一环。

多码率与画质评估

同一路素材分别按 1080p60、720p30 与 480p 推流,对比码率波动、关键帧间隔、动态画面下的块效应,以及主观观感上的差距。

播放端兼容性

桌面浏览器、移动端播放器与机顶盒对同一路流的处理并不一致,逐一记录首帧速度、音画同步和长时间播放后的稳定性差异。

测试工具与脚本

用 ffmpeg、OBS 配合自写脚本批量跑用例,把重复的验证动作沉淀成可复用的参数集,减少每次从头搭环境的时间。

监控与告警

推流中断、码率归零、音画不同步这类问题,尽量在观众反馈之前就从监控里发现,并把判定条件固化成告警规则。

作品与兴趣

几个一直在维护的小东西,以及不碰键盘时的时间去向。

  • 长期维护

    推流故障用例集

    把推流过程中反复出现的故障整理成可复跑的用例:推流地址鉴权失败、关键帧间隔过大导致首屏慢、上行带宽不足触发码率骤降、播放端解码器不支持特定档次等,每条都配上复现步骤与判定依据。

  • 参数速查

    编码参数对照表

    分辨率、帧率、码率、GOP 与编码档次之间的搭配关系,按使用场景分组,方便在临时搭建新链路时快速决定一组起点参数。

  • 自用工具

    弱网模拟脚本

    把限速、丢包、延迟抖动的组合写成参数化脚本,一次跑完预设的几档网络条件,自动记录每一档下的首帧时间与卡顿次数。

  • 随手记

    链路观察笔记

    一些没有形成结论的观察:同一条线路在不同时段的抖动规律、某些机型在长时间推流后的发热降频表现,以及它们对画面的具体影响。

联系方式

技术交流、测试思路讨论或者需要一起排查推流问题,都可以直接找我。

  • 邮箱contact@masklive1.xyz
  • 备用邮箱zhangguangxi@masklive1.xyz
  • 电话020-3892 6741
  • 地址广东省广州市天河区科韵路 16 号 305 室
  • 时间周一至周五 10:00 - 19:00

联系时可以带上这些

推流用的协议与工具(例如 RTMP 推 OBS,或者 SRT 推 ffmpeg)、出问题时的分辨率与码率设置、观众端看到的实际现象,以及大致的地域与网络环境。信息越具体,越容易一次定位到链路上出问题的那一段。

邮件一般当天回复;如果问题比较长,直接写清楚前后经过就好,不用先打招呼。

推流链路的排查往往不是找一个点,而是判断哪一段最先失守。把现象、时间和参数一起记录下来,绝大多数问题都能复现。