flv.js
flv.js copied to clipboard
【求助】累积延时播放越久,累积越严重
尝试了追帧,但是也压不住。 稳定的时候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)
以上是追帧和初始化参数,请问大佬有碰到相关问题吗?如何解决
播放HTTP-FLV遇到同样问题,播放越久,累积延时越严重, 发生问题时,增加playbackRate为1.2,播放到最后,仍然无法自动加载最新播放进度, 必须重新加载视频才能追平进度
感谢来件,已收到!
请问这个问题后来有找到解决办法吗?
感谢来件,已收到!
你这个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
感谢来件,已收到!
播放HTTP-FLV遇到同样问题,播放越久,累积延时越严重, 发生问题时,增加playbackRate为1.2,播放到最后,仍然无法自动加载最新播放进度, 必须重新加载视频才能追平进度
多久重新加载一次,用户体验如何呢
感谢来件,已收到!
播放HTTP-FLV遇到同样问题,播放越久,累积延时越严重, 发生问题时,增加playbackRate为1.2,播放到最后,仍然无法自动加载最新播放进度, 必须重新加载视频才能追平进度
我目前也遇到了这个问题