如果您在Android平台上通過setVideoFPS設置幀率為30,可能會發現實際幀率只有20FPS,什么原因?
硬件限制
部分安卓機器的Camera接口無法實現30FPS及以上的數據采集頻率,這個問題在很多機型的前置攝像頭上尤為明顯。
編碼不足 我們一般說編碼不足是說編碼器的計算量太大,機器性能無法勝任,對於Android而言尤為明顯。其實Android的CPU核心數一直領先iPhone,然而CPU晶體管數量卻沒有什么優勢,這就意味着Android手機的單個核心計算能力是遠不及iPhone的,再加上Android系統的降頻策略往往比較激進,所以每個核心的計算能力被軟件又限制了一層。
優化方案
如果您得目標畫質是360 * 640 級別,主要場景是是做美女主播等秀場模式,那么軟件編碼在絕大多數中高端Android手機上是可以實現30FPS的,如果更高的分辨率,就推薦啟用硬件編碼了。Android RTMP SDK的硬件編碼中有詳細介紹,當然,魚與熊掌不可兼得,這會犧牲部分機型的兼容。
20FPS足以
是的,如果視頻源來自攝像頭捕捉的畫面,20FPS大部分場景下就已經安全足夠了,要知道24FPS以上,我們的眼睛就無法看到有任何不流暢的地方。更高的幀率則只適合於手機游戲直播這類用3D模型和實時計算模擬出的動畫場景。
---------------------
作者:HugoforAndroid
來源:CSDN
原文:https://blog.csdn.net/lipengshiwo/article/details/53174981
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!