1. 問題現象
直播過程中手機發熱嚴重,耗電快。
2. 問題排查
導致手機功耗高,發熱嚴重的根本因素,無外乎就是一點:cpu/gpu 佔用率高,所以,我們首先要分析下,哪些因素會導致 cpu/gpu 佔用率高。
2.1 資料量太大
在這整個流程中,決定資料量大小的因素有哪些呢 ?
2.2 大量的格式轉換
我們要盡可能減少不同格式之間的資料轉換,或者盡可能利用 gpu 來處理一些複雜的格式轉換,比如利用 opengl 直接渲染 yuv 格式的資料,而不是用 cpu 做一次 yuv -> rgb 的轉換,就是乙個不錯的選擇。
2.3 對影象進行放大操作
《直播疑難雜症排查(6)— 馬賽克嚴重》這篇文章有提到,非常不推薦把乙個小尺寸的 -> 放大 -> 大尺寸,這樣很容易出現馬賽克。
其實,這樣的設計,不僅僅是容易出現馬賽克,而且在影象放大的過程中,由於涉及到複雜的插值運算,也會非常消耗 cpu。
同理,影象的縮小或者剪裁,同樣也會消耗一定的 cpu,只不過相比於放大要好點。
因此,最好的辦法,就是小心選擇攝像頭的預覽解析度以及推流的尺寸,盡可能讓兩者保持一致,這樣,才能最大化地節省 cpu 的消耗。
2.4 軟編/軟解
這個原因或許大家都懂,軟編/軟解靠的是 cpu,非常耗效能,而硬編/硬解是使用專門的硬體編解碼器模組,會顯著降低 cpu 的負擔,相對而言,會省電很多。
只不過需要小心各種 android 機型相容性問題,對於某些奇葩裝置,還是加入硬編/硬解黑名單的好。
2.5 其他方面
當然,導致功耗高的因素還有很多,這裡就不一一展開說明了,列舉如下:
- 人臉識別/美顏/濾鏡,對 cpu/gpu 消耗很大
- **邏輯中過多的 memory copy 操作
- 後台執行緒頻繁喚醒手機訪問網路或者讀寫 sdcard
- 其他等等
直播疑難雜症排查 序
在七牛做直播 sdk 一年多了,幫助客戶解決過各種形形 的問題,如直播卡頓 馬賽克 花屏 黑屏 雜音 音畫不同步等等等等,這其中,有一些是網路原因,有一些是客戶的使用姿勢問題,有一些是引數配置錯誤,當然,也有一些是 sdk 本身的問題。總結下來,如果開發者能夠對直播領域的一些基礎知識有更深入的了解,...
直播疑難雜症排查(4) 延時高
本文是 直播疑難雜症排查 系列的第四篇文章,我們來看看直播的延時問題。1.延時的測量 2.延時高問題分析 首先,我們看看可能產生延時的模組有哪些 影象處理延時,比如畫面剪裁 美顏 特效處理 網路傳輸的延時 業務 中的緩衝區 一般影象處理 資料拷貝 編譯碼帶來的延時,都是 ms 級別的,真正會產生比較...
《直播疑難雜症排查》之三 首開慢
七牛直播雲在 2016 年 6 月發布之後,幫助廣大客戶解決過形形色色的問題,如直播卡頓 馬賽克 花屏 黑屏 雜音 音畫不同步等等等等,這其中,有一些是網路原因,有一些是開發者的使用姿勢問題,有一些是引數配置錯誤,當然,也有一些是 sdk 本身的問題。總結下來,如果開發者能夠對直播領域的一些基礎知識...