在LOLS IRL里设置srtla聚合,直播时看懂每条链路的指示,也知道第一次断网时会是什么情况。
聚合会让你的直播同时走手机上所有的网络。区别在于:一种是Wi-Fi一断直播就结束,另一种是不用你动手,直播自动靠移动网络继续。设置一次,之后开播就是这样。
publish:前缀,所以要整串粘贴到Stream id里,不是名称里,也不是接在主机后面。wifi和cell,各有自己的码率和往返时间。有两行就是聚合上了。只有一行就是没有,下面的常见错误会告诉你原因。收起时,叠加层显示一个健康状态点、你的码率、编码器帧率、往返时间,以及已经直播了多久。点一下会展开详情:
| 读数 | 它告诉你什么 |
|---|---|
| send buffer | 先行指标,也是最该盯的那个。缓冲区会在画面卡顿之前先涨满,所以数值在升,就是在警告你某条链路吃力了,而不是在报告它已经出问题。 |
| target | 自适应码率当前瞄准的码率,会随情况变化自己降下去、再爬回来。 |
| dropped和retransmit | 丢失的包和重发的包。移动网络上有几个重传是正常的,丢包数一路上涨就不正常。 |
| 每条链路一行 | 标着wifi、cell或eth,各有自己的码率和往返时间,所以你能看出哪个网络在扛什么。 |
| 每条链路行上的圆点 | 绿色是正常并在走流量,琥珀色是正在连接或卡住了,红色是断了。直播还在、这一行却是红的,说明聚合在干它该干的事。 |
| 每个目标一行 | 带名字,所以同时推到好几个地方时,你能看出哪一个断了,其他的没事。 |
没什么大动静,这正是重点。出问题的链路那一行变红,剩下的链路接过流量,直播保持连着。网络恢复后,那条链路会重新向接收端注册,自己重新加入这一组。你不用停,不用重启,也不用动任何东西。
有两点值得先交代清楚。第一,剩下的那条链路得扛起整路直播,所以如果你的码率本来只有好Wi-Fi才装得下,那么移动网络顶上时自适应码率会降下来,之后再爬回去。第二,聚合带来的是稳定,不是额外的速度:你的几条链路永远不会叠加成一条更粗的管道。把码率设成一条好链路能扛住的水平,切换时你几乎感觉不到。
在需要之前,故意测一次。在家用聚合开播,等统计看起来稳了,把Wi-Fi关一分钟,看着。你会看到wifi那一行变红,cell那一行顶上来,等你打开Wi-Fi,一切又恢复。这样试十分钟,比读多少文字都管用,而且在厨房里学会,比在直播到一半时才学会好得多。
这是最大的一个。192.168.1.50上的接收端只能通过你的Wi-Fi访问到,别处都够不着,所以你的移动网络链路注册不上,你没有聚合,只是多绕了几步在走Wi-Fi。目标必须是公网主机名或地址,也就是一个中继、一台托管的机器,或者你路由器上指向你那台机器的UDP端口转发,并用路由器的公网地址来填。你桌上的笔记本也是同一条规则。
接收端会验证推流方,所以空的或被截断的Stream id,换来的是一条哪儿也到不了的连接。把密钥整串粘贴进Stream id栏,包括它的publish:前缀。
两条链路不会相加。如果你设了一个只有Wi-Fi才扛得住的码率,一旦由移动网络来扛,画面就会变差,然后你会把聚合没做的事怪到聚合头上。聚合让你保持在线。码率是另一个决定。
VPN会接管设备上的每一个socket,所以应用没法为每个网络各开一个,也就没有东西可以聚合了。出现这种情况时,统计里会直接这么说。把VPN关掉,或者在VPN应用自己的设置里把LOLS IRL排除出去。
SRTLA需要一个运行srtla_rec的接收端,是它把链路重新拼回去。普通的SRT监听端不认识分组注册。用中继,或者像自托管指南讲的那样,在你的SRT服务器前面跑srtla_rec。
距离会带来你追不回来的延迟,往返时间够长的话,连接甚至可能建立不起来。选最近的区域:应用会给匹配你SIM卡所属国家的那个标上星。