天天看點

流媒體伺服器影響視訊傳輸的品質和大小的參數有哪些?

幀率、碼率和分辨率這幾個專業名詞是流媒體伺服器中我們經常會遇到的詞,我們每天都在說降低分辨率、提高幀率碼率,是因為流媒體傳輸中遇到的基本問題大多是通過調整這幾個參數解決的,尤其是優化視訊的延遲方面,這幾個參數的作用真的是舉足輕重。是以身為視訊流媒體技術的精英分子,大家怎麼可以不知道這幾個參數的意義呢?

我之前寫的很多文章,都是基于對三個參數有足夠了解的情況下寫的。今天記錄一下這三個參數,一方面能為自己加深印象,另一方面也便于以後為新的同僚或者開發者們做講解。

流媒體伺服器影響視訊傳輸的品質和大小的參數有哪些?

1)如何制定幀率

現在我門打遊戲都十分在意幀率,更别說安防監控視訊或者視訊直播了。

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

流媒體伺服器影響視訊傳輸的品質和大小的參數有哪些?

2)如何制定碼率

我們首先看視訊編碼的目的,它是為了在有限的帶寬中傳輸盡可能清晰的視訊,我們以每秒 25 幀的圖像舉例,25 幀圖像中定義了 GOP 組,目前主要是有 I,B,P 幀三種幀格式,I 幀是關鍵幀,你可以想象它就是一幅 JPEG 壓縮圖像,而 B,P 幀是依靠 I 幀存在的,如果丢失了 I 幀,B,P 幀是看不到圖像的,B,P 幀描述的不是實際的圖像像素内容,而是每個相關像素的變化量,他們相對于 I 幀資訊量會很小。GOP 組是指一個關鍵幀I幀所在的組的長度,每個 GOP 組隻有 1 個 I 幀。

我們再來看,一組畫面的碼流大小跟什麼有關?當視訊編碼的壓縮方式都一樣,清晰度要求都一樣的時候,GOP 組的長度格式決定了碼流的大小,例如:每秒 25 幀畫面,GOP 組長度為 5,那麼幀格式為 IBPBP,那麼 1 秒鐘有 5 個 I 幀,10 個 B 幀,10 個 P 幀,如果 GOP 組長度為 15,幀格式就是 IBBPBBPBBPBBPBB,那麼 1 秒鐘内會有 2 個 I 幀和 16 個 B 幀和 7 個 P 幀,那麼 5 個 I 幀比 2 個 I 幀占用的資料資訊量大,是以 GOP 組的長度格式也決定了碼流的大小。

3)如何指定分辨率

視訊分辨率是指視訊成像産品所成圖像的大小或尺寸。常見的視像分辨率有 640×480,1088×720,1920×1088。在成像的兩組數字中,前者為圖檔長度,後者為圖檔的寬度,兩者相乘得出的是圖檔的像素。