flv.js icon indicating copy to clipboard operation
flv.js copied to clipboard

【求助】累积延时播放越久,累积越严重

Open ye332866614 opened this issue 2 years ago • 9 comments

尝试了追帧,但是也压不住。 稳定的时候3-5S延时, 但偶尔压不住会一直跳到20+的延时都有。

跳帧会有明显卡顿,并且画面不连续。

// 初始化参数
  function createPalyerObj(rtspUrl, videoElement) {
      const flvPlayer = flvjs.createPlayer({
          type: "flv",
          isLive: true,
          // url: `ws://localhost:8888/rtsp/${id}/?url=${rtspUrl}`
          // url: "http://localhost:8118/live/"+window.btoa(rtspUrl)+"/live.flv",
          url: "http://localhost:8119/flv/open/"+window.btoa(rtspUrl),
      }, {
          isLive: true,
          enableStashBuffer: false,
          // enableWorker: true,
          stashInitialSize: 128,
          autoCleanupSourceBuffer: true
      });
      flvPlayer.attachMediaElement(videoElement);
      flvPlayer.load();
      return flvPlayer;
  }

  //避免时间长时间积累缓冲导致延迟越来越高
  this.interval = setInterval(() => {
      if (!this.videoElement || !this.videoElement.buffered.length) {
          return
      }
      let end = this.videoElement.buffered.end(0)
      let delta = end - this.videoElement.currentTime
      if (delta >= 1.0) {
          console.log(`%c 开始追帧 `, 'background:#42A5F5;color:#fff', delta.toFixed(2))
          if (delta > this.delta) {
              // this.player.playbackRate += 0.1;
              this.videoElement.playbackRate += 0.1;
              // console.log('playbackRate:', this.player.playbackRate)
              console.log('videoElement_playbackRate:', this.videoElement.playbackRate)
          }
      } else {
            console.log('delta<1', delta.toFixed(2))
            // this.player.playbackRate = 1
            this.videoElement.playbackRate = 1
            if (delta < 0) {
                this.delta = null;
                this.$_reload();
            }
        }
        this.delta = delta
    }, 5000)

以上是追帧和初始化参数,请问大佬有碰到相关问题吗?如何解决

ye332866614 avatar Feb 22 '22 03:02 ye332866614

播放HTTP-FLV遇到同样问题,播放越久,累积延时越严重, 发生问题时,增加playbackRate为1.2,播放到最后,仍然无法自动加载最新播放进度, 必须重新加载视频才能追平进度

qiangbro avatar May 17 '22 07:05 qiangbro

感谢来件,已收到!

ye332866614 avatar May 17 '22 07:05 ye332866614

请问这个问题后来有找到解决办法吗?

zhang421755327 avatar Jun 27 '22 07:06 zhang421755327

感谢来件,已收到!

ye332866614 avatar Jun 27 '22 07:06 ye332866614

你这个interval间隔感觉太长了,追帧追不过来,我的方案是延时太大直接跳帧,延时小就追帧 可以看下这篇文章: https://www.cnblogs.com/xiahj/p/flvExtend.html#31-%E8%BF%BD%E5%B8%A7-%E8%A7%A3%E5%86%B3%E5%BB%B6%E8%BF%9F%E7%B4%AF%E7%A7%AF%E9%97%AE%E9%A2%98

shady-xia avatar Jul 20 '22 06:07 shady-xia

感谢来件,已收到!

ye332866614 avatar Jul 20 '22 06:07 ye332866614

播放HTTP-FLV遇到同样问题,播放越久,累积延时越严重, 发生问题时,增加playbackRate为1.2,播放到最后,仍然无法自动加载最新播放进度, 必须重新加载视频才能追平进度

多久重新加载一次,用户体验如何呢

Lilinjie01 avatar Jul 06 '23 14:07 Lilinjie01

感谢来件,已收到!

ye332866614 avatar Jul 06 '23 14:07 ye332866614

播放HTTP-FLV遇到同样问题,播放越久,累积延时越严重, 发生问题时,增加playbackRate为1.2,播放到最后,仍然无法自动加载最新播放进度, 必须重新加载视频才能追平进度

我目前也遇到了这个问题

Lilinjie01 avatar Jul 06 '23 14:07 Lilinjie01