1. 程式人生 > >Android線上視訊,RTMP,MediaCodec,MediaCamera(碼流_解析度_幀率)

Android線上視訊,RTMP,MediaCodec,MediaCamera(碼流_解析度_幀率)

視訊頻寬計算公式(碼流_解析度_幀率)   (自己整理過的.)

MediaRecorder有很強的硬體依賴性,因此不同的手機表現是不一樣的,有的手機資料傳輸的時候會出現阻塞現象,實時性就降低了

碼流/位元速率

  碼流(Data Rate)是指視訊檔案在單位時間內使用的資料流量,也叫位元速率或碼流率,是視訊編碼中畫面質量控制中最重要的部分,一般我們用的單位是Kb/s或者Mb/s。一般來說同樣解析度下,視訊檔案的碼流越大,壓縮比就越小,畫面質量就越高。碼流越大,說明單位時間內取樣率越大,資料流,精度就越高,處理出來的檔案就越接近原始檔案,影象質量越好,畫質越清晰,要求播放裝置的解碼能力也越高。

視訊每秒鐘的大小,例如800Kbps,就是一秒鐘的視訊大小100KB(1位元組=8位元,所以要除以8),視訊如果有1000秒,整個視訊大小就是100KB*1000約等於100MB。當然有些視訊的位元速率不是恆定的,會根據畫面情況採用不同的位元速率,這樣可以儘可能地縮小視訊體積且保證質量。一般來講視訊位元速率越大質量越好(當然還得看視訊壓制技術,專業軟體和入門軟體壓制出來的視訊即使位元速率一樣效果還是有很大差異)

720P 大約就是百萬畫素 ,碼流大約在2到4或者5M, 1080P 大約在4到8M , 這個要看他們廠家的碼流控制的怎麼樣

幀率

     一幀就是一副靜止的畫面,連續的幀就形成動畫,如電檢視象等。我們通常說幀數,簡單地說,就是在1

秒鐘時間裡傳輸的圖片的幀數,也可以理解為圖形處理器每秒鐘能夠重新整理幾次,通常用fps(Frames Per Second)表示。每一幀都是靜止的圖象,快速連續地顯示幀便形成了運動的假象。高的幀率可以得到更流暢、更逼真的動畫。每秒鐘幀數 (fps) 愈多,所顯示的動作就會愈流暢。

解析度

視訊解析度是指視訊成像產品所成影象的大小或尺寸。常見的視像解析度有352×288,176×144,640×480,1024×768。在成像的兩組數字中,前者為圖片長度,後者為圖片的寬度,兩者相乘得出的是圖片的畫素,長寬比一般為4:3.  目前監控行業中主要使用Qcif(176×144)、CIF(352×288)、HALF D1(704×288)、D1(704×576)等幾種解析度。

D1是數字電視系統顯示格式的標準,共分為以下5種規格:

D1:480i格式(525i):720×480(水平480線,隔行掃描),和NTSC模擬電視清晰度相同,行頻為15.25kHz,相當於我們所說的4CIF(720×576)

D2:480P格式(525p):720×480(水平480線,逐行掃描),較D1隔行掃描要清晰不少,和逐行掃描DVD規格相同,行頻為31.5kHz

D3:1080i格式(1125i):1920×1080(水平1080線,隔行掃描),高清方式採用最多的一種解析度,解析度為1920×1080i/60Hz,行頻為33.75kHz

D4:720p格式(750p):1280×720(水平720線,逐行掃描),雖然解析度較D3要低,但是因為逐行掃描,市面上更多人感覺相對於1080I(實際逐次540線)視覺效果更加清晰。不過個人感覺來說,在最大解析度達到1920×1080的情況下,D3要比D4感覺更加清晰,尤其是文字表現力上,解析度為1280×720p/60Hz,行頻為45kHz

  D5:1080p格式(1125p):1920×1080(水平1080線,逐行掃描),目前民用高清視訊的最高標準,解析度為1920×1080P/60Hz,行頻為67.5KHZ。

其中D1 和D2標準是我們一般模擬電視的最高標準,並不能稱的上高清晰,D3的1080i標準是高清晰電視的基本標準,它可以相容720p格式,而D5的1080P只是專業上的標準。

幀率、碼流與解析度之間關係

公式:

頻寬 / (碼流 * 8) = 同時線上人數

檔案大小 = 時間×位元速率/8

一個視訊檔案的大小為5.86M,播放時長為3分7秒:

1,該檔案對應的碼流就是

5.86 * 1024 * 1024 * 8 / (3 * 60 + 7) =262872.95657754bps

2,10M獨享頻寬能支撐的同時線上人數

10* 1024 * 1024 / 262872.95657754 =39.889078498294

3,支撐1000人同時線上的系統最少需要的頻寬數為

262872* 1000 / (1024 * 1024) = 250.69427490234M