施维老师的srt讲座笔记

施维老师srt讲座笔记

边听边记的
如果有侵权,联系[email protected] zhangbin 删掉

  • 在这里插入图片描述
  • rtmp 自己有三次握手,tcp有三次握手
  • 一个建立连接完成,要9 次会话的来回,才能完成建连接
  • 移动互联网,用手机比较难
  • rtmp 完全依赖于 tcp
  • 不能提供带宽自适应算法
  • quic vs srt 都可以

在这里插入图片描述

  • 有ack
  • 有ack的ack
  • 有nack
    • 基于时间报文发送和接收
  • rtt
  • inflight 就是报文发出去,但是还没收到ack
    • 在 应用层,就是编码层做带宽自适应的算法

编码器厂商发明的在这里插入图片描述

  • encoer 加大 send buffer 以及 internet 和 decoder 部分都叫做通道
  • 其编码出来的是什么样的曲线,保证其在接收过程也是什么曲线,这样使得internet部分变得透明
  • 怎么实现?
  • 堆sender ,按照编码器编码出来的时间顺序 做发送
  • receiver buffer ,解码出来平滑

一般的传输:

  • 建立连接,快速连接
  • 基于连接,怎么做丢包重传
  • 丢包重传基础做拥塞控制

在这里插入图片描述

  • srt 交互过程只有2次,大幅度提升建连过程
  • 1 建连 2. 传输 3. 结束

报文

  • 数据报文和控制报文

  • UDP + UDT + data

  • sequence 31bit ,2的31次方,有生之间不会翻转

  • FF 报文位置

  • KK 加密

  • O 有序

  • Dest Socket ID 这个是srt自己定义的socket id ,不是系统的

  • 结构很简单
    在这里插入图片描述

    扫描二维码关注公众号,回复: 10019085 查看本文章

控制报文

  • ACK ACKACK 是丢包重传报文

在这里插入图片描述

常规的SRT发送图

  • 编码器 把报文放send buffer
  • send buffer 按照编码器输出的时间顺序,严格发送出去
  • 接收端
    • 延迟window,严格按照时间戳返回给 app


  • -在这里插入图片描述

丢包重传

  • ack 机制,常用
  • 收到5个报文,发一个ack 回去
  • 发送者收到ack,移除这五个报文

在这里插入图片描述

  • 第一个图:
  • 接收者发送给发送者 ack
  • 发送者收到ack,通过计算,发送ackack 给接收者
  • 通过rtt 获取 网络质量情况
  • rtt 越高,证明延迟越大
  • rtt是个实时变化的值
  • -在这里插入图片描述

ack 控制报文

    • 每10 毫秒发送一个rtt,频率高
    • 发送端拿到rtt后就知道网络质量
    • rtt的变化情况
    • 可用buffer,传文件需要
    • 现在接收包的收包数目,与直播有关
  • bps ,收包的比特率

  • 在这里插入图片描述

  • 以上三个数据直观反映 网络状况

  • rec buffer 接收端 缓存情况

  • recv bitrate 当前时刻接收的码率情况

  • -在这里插入图片描述

  • -quic 只有ack 方式

    • webrtc的rtp rtcp 只用 nack
  • -srt 支持 ack nack ,目的是 强势抢占带宽

    • ack 代表包收到了,也可能ack包会丢失
      – nack 周期发送,可能会造成发送者多发报文
  • 在这里插入图片描述

  • srt 在丢包时,重传比其他协议更多,抢占带宽

按照时间发送

  • 编码器按照时间发送 == 按照编码器的编码速度发送

srt 可配置

-在这里插入图片描述

  • srt 发送策略
  • 在这里插入图片描述
    • 编码器的输入带宽
    • 编码器的最大带宽
  • =- 编码器过载率加粗样式**
  • smpinpbw 实际测试出的编码bitrate

-在这里插入图片描述

-如果配置,按照配置来,

  • 如果没配置,按照实际的编码的比特率来。
  • 如果不配置,如互联网,一般是不配置。所以常规是中间算法:
  • 在这里插入图片描述
  • 实际的 * 1.25 bps
    -如果实际是1k,那么就是1250 bps

拥塞控制

拥塞避免


  • 比如带宽变化,接收端 1000k 变 900,少了10%,带宽变窄了,导致丢包
    • 如果现在发送量是1.1M, 带宽变的更差,
  • -1.1M -900 , 少了200k,导致网络崩溃在这里插入图片描述

— 仅仅使用丢包重传,无法解决网络拥塞
– 怎么办?

  • 限号。治堵。

  • SRT 的用拥塞控制代码简单:

  • 接收方的缓存大小,接收方是否够收

  • 1秒内发送来的数据 / (rtt + 10 ) ,因为检测周期是10

  • 1个rtt 已经发出的东西,一个rtt时间段内,已经发出去的数据是多少。

  • 直播中不会出现接收方缓冲不够用的情况

  • 传文件才会存在

  • 在这里插入图片描述

  • 只要大,就发

  • 在这里插入图片描述

  • 大佬说,拥塞控制太简单,有bw,rtt 完全可以用bbr。

  • 2个包,握手和capbility
    -在这里插入图片描述
  • ack ackack 很好
  • 提供的信息很丰富
  • 在这里插入图片描述
  • 带宽占用大 ,随着丢包率高,占用更大
  • 按照编码器编码出来的实际的bitrate 来发送。
    -

srs4

  • 自适应srt 编码方案,针对拥塞控制的提升
  • 在这里插入图片描述

-在这里插入图片描述

-在这里插入图片描述

  • 编码器到 边缘节点这段。
  • 提高源流质量,
  • 对 编码器和解码器 最后一公里推流很适合。
  • SRT 不是自适应的。
  • SRT 要求先知道 RTT --》 延迟 , 出口带宽 BW

互联网 不容忍预先测量

  • 推流节点到边缘节点
  • 配置参数,rtt 有限带宽 ,然后根据算法计算 latency ,sendbuffer和 出口带宽。
  • 并非所有问题都在传输层解决
    -在这里插入图片描述

-在这里插入图片描述

  • 简单推流配置
    -在这里插入图片描述
  • vhost 虚拟主机

-在这里插入图片描述

-在这里插入图片描述

-在这里插入图片描述

-在这里插入图片描述

  • 拥塞控制 拥塞避免算法,
  • 丢包率20% 带宽变为12M了!!

-在这里插入图片描述

  • 预测 带宽
  • 调整编码比特率
  • 从而拥塞避免
  • 动态自适应
  • GCC
    -在这里插入图片描述

-在这里插入图片描述

  • DELAY是导数,看变化率
  • 在这里插入图片描述
  • 卡门滤波,预估下一次网络带宽
  • -在这里插入图片描述
    • 把这个变为bbr的预测算法,而不需要在接收端实现
  • -在这里插入图片描述
  • -在这里插入图片描述
    • 1 s 内找到一个rtt 最小值
    • 1s 内找一个 最大的发送的bitrate
  • inflight 发出了报文但是没有收到ack的报文的字节数目,报文还在漂在网络中
    • 1个 rtt内 最大的发送字节数
  • -在这里插入图片描述
  • 在这里插入图片描述

-传输层,bbr 会不发:

  • 在这里插入图片描述
  • 1.2 和 0.8 是buffer ,0.8到1.2之间是保持不变 。
  • 用bbr 应该是不发:
    -在这里插入图片描述
  • 这里为啥是减少btrate?
  • bbr是放缓存,不发
  • 不发 用塞避免了
  • 但是编码器 buffer 满了,不发就是丢包。
  • 长时间丢包照样会花瓶。
  • 编码率大于了网络带宽的有效值
  • 通用编码器
  • 在这里插入图片描述

-降低bitrate,会降低画面质量,但不会改变分辨率

-在这里插入图片描述

  • 只降低编码器推流带宽 最后一公里的带宽
  • 美国节点,推流到杭州
    -在这里插入图片描述
  • 1M 带宽

-在这里插入图片描述

  • 没有上面的问题。大佬说。

-FEC 是丢包回复,不是拥塞控制的

QUIC

-在这里插入图片描述

-在这里插入图片描述

-在这里插入图片描述

  • QUIC 不包括udp ip 头,有50个字节,加上udp ip 有七八十个,一个包才1366个字节。很亏?
  • -QUIC 非常适合长距离传输
  • 视频会议适合webrtc
  • srt适合直播
  • SRT的参数有可以调节的,有不变的

-在这里插入图片描述

  • 视频卡顿与 接收方的缓存有关
    • QUIC 是面向连接的,没有ack会断开。
      -在这里插入图片描述
  • webrtc 视频回宜
  • 动态编码 自适应编码
  • 低延迟
  • 端上音视频同步
    • 端上带宽预估
    • OBS已经支持SRT
  • SRT 传TS,比较整齐,非常有利于做基于时间的发送。

-推流用SRT,播放用RTMP

发布了693 篇原创文章 · 获赞 58 · 访问量 220万+

猜你喜欢

转载自blog.csdn.net/commshare/article/details/104544488
今日推荐