SRS-RTMP合并写
作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音
SRS-RTMP 的 Merged-Write 可以提高 RTMP 下行的效率,大约可以提升5倍左右。简单来说他实际的实现原理就是 等到队列里面有 8 个 包,才会读取出来,一次性写入到 TCP 通道,这样 TCP Write 的次数就少了,效果就提高了。
Merged-Write 主要有两个配置选项,mw_latency
与 mw_msgs
,如下:
mw_latency
代表最小延迟,默认是 350 毫秒。也就是他最多 等待 350 毫秒,如果 350 毫秒后,还没有 8 个包,例如只有 5 个包,也会进行发送。
mw_latency
就是这个意思。
mw_msgs
是队列的大小,默认是 8 ,等到 8 个包在一起发送,你也可以设置为 0 ,0 就是直接关闭了 Merged-Write
SRS 是在 SrsRtmpConn::do_playing()
里使用 这些配置 的,如下:
参考资料: