关于拉流端ts时间切片问题导致的直播黑屏问题

公司直播使用的是阿里的直播服务,但是华为的部分手机出现了黑屏,无法观看直播

首先搞懂推拉流

推流: 经过obs等推流工具,将要直播的流文件推送到阿里的直播服务器上
拉流: 遍布全国的阿里直播服务器将流下发给正在观看的用户

问题分析

  1. 推流这一块选择配置稍微低一点点即可,问题应该不在这里
  2. 那最有可能出问题的就是阿里直播服务器拉流这块了
  3. 有可能是拉流这块,下发的时候,每次发送的ts切片过快或过慢,导致本分手机无法很好地解析,以至于黑屏现象
  4. 过快的话会出现黑屏现象,过慢的话出现卡顿现象(这点是后来发现的)

阿里直播服务器在分发流的时候到底在做什么?

大胆地猜测,当我们把直播流推送到阿里直播服务器时,阿里开始接收,然后将若干时间的直播内容,打包成为ts切片,分发下去,这里就会出现一个问题,多长时间内发送多少个ts切片信息,我咨询了阿里的售后,答案如下:

  1. 默认为5秒6个切片
  2. 更改的话通常为2秒3个切片
  3. 直播过程中如果有录播的配置的话,还会在直播的过程中生成m3u8录播索引文件,每个m3u8文件对应若干个ts切片,录播的收回就会用到索引文件
  4. 其实在直播管理台后面的录播文件管理里面,(录制文件管理->存储至oss->管理录制配置->直播延时配置),据售后客服所说,可以有选择的定义多少秒几个ts切片,如下图:
    关于拉流端ts时间切片问题导致的直播黑屏问题
    再看一下延时配置的说明:
    关于拉流端ts时间切片问题导致的直播黑屏问题
  5. 当然你也可以自定义的让后台人员更改多少秒多少片
  6. 当然ts切片大小也是一个变量,但是客服说ts大小是恒定的.我测了之后确实如此,但是改变obs的推流配置后,ts切片大小就会发生改变

测试

  1. 5秒1片,3秒1片,2秒1片都试了,黑屏完美解决,在显著降低了了等比的切片数后,基本实现秒进直播间
  2. 但是同时出现了问题,直播个2分钟或5分钟或十几分钟的时候出现了卡住的现象
  3. 大胆猜测是由于发送的太少了,导致大量的数据堆积在阿里的直播服务器这块,所以卡主了,但又感觉不是这样
  4. 改为了5秒4片后,再次黑屏
  5. 改为了5秒2片,还是卡顿
  6. 5秒3片改不了

持续更新中,如果哪位大神路过,请指点迷津