H265網頁視頻播放器播放H265編碼錄像視頻文件如何減緩卡頓情況?


視頻播放延時卡頓的問題從視頻服務誕生以來就一直存在,即便是在技術發達的今天,延時卡頓問題仍然是不能完全解決的(不同視頻流延時說明)。

TSINGSEE青犀視頻研發團隊開發的H265播放器播放錄像文件時,偶爾也會出現卡頓情況。

分析問題

播放器是通過地址獲取數據,然后解碼再編碼給瀏覽器渲染,排查發現再編碼后的數據片段緩存較少,有時會導致錄像不流暢。調試發現數據片段緩存稍大些,播放就相對流暢很多。

原始緩存:

調大緩存:

解決問題

找到H265播放器項目中DecodeWorker.js 並把緩存大小調整到160

                if (!self.pause) {
                    var frame = null;
                    let ret = -1;
                    if (!self.isFlvStream) {
                        if (self.findKeyFrame) {
                            while (self.videoQueue.length > 0) {
                                frame = self.videoQueue[0];
                                if (frame.frameType && self.videoQueue.length < 160) {
                                    self.findKeyFrame = false;
                                    break;
                                }
                                self.videoQueue.shift();
                            }
                        }
                        else {
                            if (self.videoQueue.length > 160) {
                                self.findKeyFrame = true;
                            }
                        }
                        if (self.videoQueue.length > 0) {
 
                            if (frame == null) {
                                frame = self.videoQueue[0];
                            }
                            ret = onProcStreamData(frame.mediaType, frame.codecId, frame.frameType,
                                frame.playTimeSec,
                                frame.samplerate, frame.channelNum, frame.bitPerSample,
                                frame.dat, frame.dat.length);
                        }
                    }
                    else {
                        frame = self.videoQueue[0];
                        ret = onProcStreamData(frame.mediaType, frame.codecId, frame.frameType,
                            frame.playTimeSec,
                            frame.samplerate, frame.channelNum, frame.bitPerSample,
                            frame.dat, frame.dat.length);
                    }
                    if (ret >= 0) {
                        self.videoQueue.shift();
                    }
                }

  

EasyPlayer播放器

EasyPlayer播放器是TSINGSEE青犀視頻研發的H265播放器,如果有用戶想將EasyPlayer播放器集成進自己的流媒體平台,也是可以的,我們提供了非常簡單易用的SDK及API接口,用戶通過API調用就可以非常快速地開發出屬於自己的應用程序,進行第二次開發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM