1. 程式人生 > >音視訊 幀率 位元速率 檔案大小 計算

音視訊 幀率 位元速率 檔案大小 計算

錄製 視訊 過程中,視訊幀率視訊設定幀率為25, 而此時 從採集裝置過來的 資料流也是25frame/s ,如是 我十分好奇音訊有沒有類似幀率一說,

百度到如下資料:感覺十分 清楚的說明了 該問題:

   取樣率Sample Rate指單位時間內對媒體物件的取樣次數,單位Hz(這句話好像和原來不太一樣,鬱悶)。 

    幀率(Frame per second,fps),單位時間內媒體幀的個數。 

   這兩個概念都描述了媒體的“連續”性,二者的區別在於一個Frame可能包含多個Sample。一般每個視訊幀中只包含一個視訊取樣,而音訊幀中會包含多個音訊取樣。如1個AAC幀中包含1024個取樣。所以,幀率常用在視訊方面,取樣率常用於音訊方面。取樣率(幀率)越高,媒體越流暢,當然人的感受就越過癮。但是,由於人的視/聽器官分辨能力的侷限,往往這些數值達到末各程度就可以滿足人對“連續”性的需求了。比如,對取樣率高於44.1kHz的聲音,人很難聽出區別了。對幀率高於30的視訊,人很難看出幀率的區別。 



    位元率(bps或kbps),與前面兩個概念不同,它描述了單位時間長度的媒體內容需要空間。當然該值越高,每個取樣的資訊量就越大,對這個取樣的描述就越精確。 

    對於人的感受來說,當然上述數值越大越好,但是這總是會受到網路頻寬和處理裝置能力的限制。所以,媒體工程師會取一個折中的數值來製作媒體內容,在符合能力的範圍內,提供最佳的體驗。 

例子:一張CD,雙聲道,取樣率44.1kHz每個取樣13bit,時長74分鐘(4440秒),則CD的容量為13*2*44100*4440約等於640MB

這篇文章 如此剛好解釋了 為什麼配置 採集裝置,聲音需要配置取樣率.

而實際專案中,我發現設定為31k取樣的 音訊,每秒受到的資料frame 為:31.(AAC音訊 每個frame包含了1024個取樣).(參考faac 庫的使用)

faac 庫的使用,已經明確了對aac輸出的幀率要求:

實際使用情況是對於單聲道 48000k 取樣資料. 開啟faac編碼器的時候,返回的輸入資料長度是 1024(對於雙聲道長度2048), 因此

音訊的幀率 :  對如此種情況. = (channels * samplerate*samplebits / 8)/1024 *channels;

對於用mp4v2 封裝為 mp4 檔案的音視訊同步 問題. 只要控制好 音視訊的幀率,也會解決.

【檔案大小】(Byte位元組)=【位元速率】(kbps)/8X【時間】(秒)

位元速率】(kbps)=【檔案大小(位元組)X1024X8/1000/【時間(秒)】