WebRTC、Janus卡頓優化實踐(SPS、PPS丟包)
背景
在弱網環境下如果丟了SPS、PPS,會發生較長時間的卡頓。
服務端
Janus
版本
66
詳述
在視訊通話時,WebRTC傳送端傳送的第一個RTP包只包含SPS、PPS,第二個包是IDR幀,接收端收到後會把SPS、PPS、IDR幀合成一個Buffer傳給解碼器,這樣才能正確解碼。
當SPS、PPS發生丟包時,WebRTC在收到第一個IDR幀的包後檢查SPS、PPS,如果缺失,則丟棄該包,併發送一個PLI包,期望從傳送端獲取一個I幀,這期間即使NACK機制重發了SPS、PPS,接收端也不會正確處理。這樣,在WebRTC客戶端從Janus拉流的情況下就依賴Janus對PLI包的處理,目前Janus沒有轉發該包(考慮多人同時拉流的情況),需要自己做I幀的傳送邏輯(支援所謂的秒開),如果Janus的I幀間隔比較大,就會有比較大的卡頓。
其他非關鍵幀包的丟包通過NACK重發即可恢復,即使沒有恢復,也不會出現長時間的卡頓。
解決
在SPS、PPS丟失的情況下,快取第一個IDR幀的包,通過NACK等丟包重傳機制重新獲取到SPS、PPS後重新處理IDR幀,這樣可以有效緩解卡頓。當然,這個需要修改WebRTC的Native程式碼,瀏覽器基本沒有辦法。
相關推薦
WebRTC、Janus卡頓優化實踐(SPS、PPS丟包)
背景 在弱網環境下如果丟了SPS、PPS,會發生較長時間的卡頓。 服務端 Janus 版本 66 詳述 在視訊通話時,WebRTC傳送端傳送的第一個RTP包只包含SPS、PPS,第二個包是IDR幀,接收端收到後會把SPS、PPS、
Android 效能優化之記憶體檢測、卡頓優化、耗電優化、APK瘦身
導語 自2008年智慧時代開始,Android作業系統一路高歌,10年智慧機發展之路,如今 Android 9.0 代號P 都發布了,Android系統性能已經非常流暢了。但是,到了各大廠商手裡,改原始碼自定系統,使得Android原生系統變得魚龍混雜。另外,到了不同層次的
徹底解決 Intellij IDEA 卡頓 優化筆記,重要的快捷鍵
引入 編譯 今天 ctu ons 文件 使用 com 效率提升 由於工作中經常出現分支各種切換,使用Eclipse便不再像以前那麽舒服了,不停的修改工作空間,每次修改完工作空間又是一堆一堆的個性化設置,來回的切換,真的很累。我們做軟件的,怎麽能不去嘗試新鮮的呢,畢竟,再難走
Android 卡頓優化 2 渲染優化
運動 發布 Language 嚴重 onresume 背景色 容易 微信 對比 1、概述 2015年初google發布了Android性能優化典範,發了16個小視頻供大家欣賞,當時我也將其下載,通過微信公眾號給大家推送了百度雲的下載地址(地址在文末,ps:歡迎大家訂閱公眾號
Android 卡頓優化 3 布局優化
block package 機器 分頁 blog apk scaletype auto 方案 欲善其事, 先利其器. 分析布局, 就不得不用到Hierarchy Viewer了. 本文工具使用皆以GithubApp的詳情界面RepoDetailActivity為例說明
AndroidStudio卡頓優化
.com true info 工程 裏的 can lse msi 配置 Xms AS在JVM內存分配方面雞賊的很,縱使你有16G,32G,64G內存,他只給你分配最大幾百兆的堆內存,就會造成工程變大,項目運行時間久後的嚴重卡頓。 優化 打開你的AS安裝目錄,我的是 C:\
WebRTC+libwebsockets+Janus的秒開實踐
背景 客戶端SDK集成了WebRTC和libwebsockets,服務端使用了Janus,需要支援拉流秒開。 關於WebSocket Janus作為SFU,使用WebSocket協議與客戶端通訊。客戶端在挑選開源庫時其實沒有太多選擇,C層主要是l
iOS進階--提高XCode編譯速度、Xcode卡頓解決方案
提升編譯連結的速度主要有以下三個方式: 1. 提高XCode編譯時使用的執行緒數 defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtas
ijkplayer直播播放器使用經驗之談——卡頓優化和秒開實現
在我的部落格移動平臺播放器ijkplayer開源框架分析(以IOS原始碼為例),大致介紹了一下ijkplayer的基本函式呼叫順序和主要執行緒作用,本部落格想介紹一下在直播應用中,針對卡頓和秒開做的一些優化,本優化經驗主要是用在Android系統上,ios上也可以借鑑
記一次簡單的UITableView卡頓優化
先說需求,要做一個類似這種的列表 標籤控制元件直接用的第三方 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3f6e74; background-color: #e1ffde } YZTagList &nbs
詳解Android App卡頓優化問題
所謂app卡頓原因就是在執行時出現了丟幀,還可能是UI執行緒被阻塞。首先來一下丟幀現象,android每16ms會對介面進行一次渲染,如果app的繪製、計算等超過了16ms那麼只能等下一個16ms才能進行渲染,這就發生了丟幀現象。 手機卡頓出現的原因: 1,佈局過於複雜:x
iOS卡頓優化探究學習
1、iOS的CoreAnimation並非只是一些動畫API,本質上是控制圖層的分解、儲存和管理體系。會涉及繪圖、效率等問題。 2、CALayer同UIView類似都是一些被層級關係樹管理的矩形塊,並管理子圖層位置,都可以包含圖片、文字等內容,並有一些API來做動畫。最大的
徹底解決 Intellij IDEA 卡頓 優化筆記
由於工作中經常出現分支各種切換,使用Eclipse便不再像以前那麼舒服了,不停的修改工作空間,每次修改完工作空間又是一堆一堆的個性化設定,來回的切換,真的很累。我們做軟體的,怎麼能不去嘗試新鮮的呢,畢竟,再難走的路,也有人已經走過,我們只需要Google一下而已。本篇適用於Idea 14.x 15.x 16.
Android卡頓優化:卡頓分析方法
rtm 主動 無法 基本 渲染 線程數 star 設備 當前 基礎知識在具體講卡頓工具前,你需要了解一些基礎知識,它們主要都和 CPU 相關。造成卡頓的原因可能有千百種,不過最終都會反映到CPU 時間上。我們可以把 CPU 時間分為兩種:用戶時間和系統時間。用戶時間就是執行
Android效能優化----卡頓優化
### 前言 無論是啟動,記憶體,佈局等等這些優化,最終的目的就是為了應用不卡頓。應用的體驗性好壞,最直觀的表現就是應用的流暢程度,使用者不知道什麼啟動優化,記憶體不足,等等,應用卡頓,那麼這個應用就不行,被解除安裝的概率非常大。所以說為了保證使用者留存率,卡頓優化是非常非常的重要。在這篇文章,咱們不討論是什
Android效能優化-----卡頓、crash
一、效能問題 主要總結為4個類別: 1、卡頓:使用時避免出現卡頓,響應速度快,減少使用者等待的時間,滿足使用者期望。 2、crash:減低 crash 率和 ANR 率,不要在使用者使用過程中崩潰和無響應。 3、耗電:節省流量和耗電,減少使用者使用成本,避免使用時導致手機發燙。 4、包大小 效能
android問題及其解決-優化listView卡頓和怎樣禁用ListView的fling
cati 依據 過程 none mst 角度 解決問題 ces 開心 問題解決-優化listView卡頓和怎樣禁用ListView的fling 前戲非常長,轉載請保留出處:http://blog.csdn.net/u012123160/ar
解決input[type=file]打開時慢、卡頓問題
fire safe window jpg 可能 google 這樣的 str rip 為什麽在input標簽類型為file上傳文件時在標簽中設置屬性 accpet="image/*",打開本地文件夾的速度特別慢? 經過測試發現,在mac裏面safari、Firefox、C
【不用敲命令】如何正常啟動雙系統(windows win7 linux ubuntu ),避免任一系統啟動項丟失或啟動卡殼、卡頓!
本說明針對正常安裝雙系統後,避免啟動任一系統困難。 【以Win7下安裝Ubuntu為例】 當在win7系統上安裝好Ubuntu系統後,進入系統時,發現可以看到win7的啟動條目,但選擇以後,有時候選擇了能進,多用幾次後就發現不行了,因此很惱火。 操作步驟:
【文章學習】監控網頁卡頓、崩潰
圖標 alt date 分數 對象 api sdn -c worker 【學習文章】 1、如何監控網頁的卡頓:https://zhuanlan.zhihu.com/p/39292837 2、如何監控網頁的崩潰:https://zhuanlan.zhihu.com/p/402