zoukankan      html  css  js  c++  java
  • 记录排查国标直播流播放卡顿的问题

    背景

    相同镜像, 在公有云跑直播视频不卡顿, 在其他私有化交付环境直播不卡顿, 但是在某项目交付中, 很多海康摄像机播放一天左右出现了卡顿的问题, ffplay播放不明显, 但是浏览器cyberplayer播放卡顿明显.

    媒体流流向: IPC-> 服务器gbsrs-> 服务器srs->其他服务器-> .............->播放集群-> ffplay/cyberplayer/其他播放器

    对pts的修改只有gbsrs和srs

    排查过程

    1、ffprobe显示下行视频pts存在相同的pts. 频率很高, pts如: 0 40 40 80 120 120 160 200 240 240 .... 没有规律可言.

    2、从服务器抓包摄像机发出来的包, 发现源rtp/ps数据 音视频正常, 不存在相同的情况.

    3、回顾服务器对pts的更改. gbsrs对音视频pts分别correct, 并且correct之后的fpts除90, 放在转封装rtmp的timestamp中. 

      srs收到gbsrs收到的rtmp之后对pts进行了合并correct.

    4、抓包gbsrs-> srs的rtmp流, 分析得知, gbsrs产出的视频不存在pts重复的情况

    5、抓包srs产出的rtmp流, 分析得知, srs产出的视频存在pts重复的情况.

    结论

    gbsrs存在video-jitter 和 audio-jitter分别对视音频pts校正,  srs音视频使用同一个jitter对视音频pts进行校正. 

    gbsrs的video-jitter 和audio-jitter的差值如果越来越大, srs的jitter对gbsrs产出的音视频pts综合校正, 导致srs最终产出的pts视频可能造成相同的情况.

    解决办法

    把gbsrs的音视频pts校正都是用同一个jitter. 保证只要从摄像机发出来的视频间、音频间pts差距不是很大(小于1S),gbsr产出的pts就可以相对正常. 

    反思

  • 相关阅读:
    1、电源管理概念
    37、mipg-streamer的使用讲解
    ARM+linux学习过程(3)mini2440的USB驱动无法在win7下识别
    ARM+linux学习过程(2)安装vmware-tool过程与错误解决
    ARM+linux学习过程(1)虚拟机下ubuntu上网
    35、在编译Linux内核中增加程序需要完成以下3项工作
    36、ALSA声卡驱动和应用
    35、在JZ2440上使用3G上网卡
    POJ
    CF453-A Visiting a Friend (dfs)
  • 原文地址:https://www.cnblogs.com/micoblog/p/15606803.html
Copyright © 2011-2022 走看看