下面是音視頻面試題集錦第 1 期:
1)RTMP 消息分優(yōu)先級的設(shè)計(jì)有什么好處?
RTMP 的消息優(yōu)先級是:控制消息 > 音頻消息 > 視頻消息。當(dāng)網(wǎng)絡(luò)傳輸能力受限時(shí),優(yōu)先傳輸高優(yōu)先級消息的數(shù)據(jù)。
要使優(yōu)先級能夠有效執(zhí)行,分塊也很關(guān)鍵:將大消息切割成小塊,可以避免大的低優(yōu)先級的消息(如視頻消息)堵塞了發(fā)送緩沖從而阻塞了小的高優(yōu)先級的消息(如音頻消息或控制消息)。
2)什么是 DTS 和 PTS?它們有什么區(qū)別?
DTS 是解碼時(shí)間戳;PTS 是顯示時(shí)間戳。
雖然 DTS、PTS 是用于指導(dǎo)播放端的行為,但它們是在編碼的時(shí)候由編碼器生成的。
當(dāng)視頻流中沒有 B 幀時(shí),通常 DTS 和 PTS 的順序是一致的。但如果有 B 幀時(shí),就回到了我們前面說的問題:解碼順序和播放順序不一致了。DTS 告訴我們該按什么順序解碼這幾幀圖像,PTS 告訴我們該按什么順序顯示這幾幀圖像。
3)什么是 IDR 幀?它和 I 幀有什么區(qū)別?
IDR 幀全稱叫做 Instantaneous Decoder Refresh,是 I 幀的一種。IDR 幀的作用是立刻刷新,重新算一個(gè)新的序列開始編碼,使錯(cuò)誤不致傳播。
IDR 幀有如下特性:
- IDR 幀一定是 I 幀,嚴(yán)格來說 I 幀不一定是 IDR 幀(但一般 I 幀就是 IDR 幀);
- 對于 IDR 幀來說,在 IDR 幀之后的所有幀都不能引用任何 IDR 幀之前的幀的內(nèi)容。與此相反,對于普通的 I 幀來說,位于其之后的 B 和 P 幀可以引用位于普通 I 幀之前的 I 幀(普通 I 幀有被跨幀參考的可能);
- 播放器永遠(yuǎn)可以從一個(gè) IDR 幀播放,因?yàn)樵谒鬀]有任何幀引用之前的幀。因此,視頻開頭的 I 幀一定是 IDR 幀;一個(gè)封閉類 GOP 的開頭的 I 幀也一定是 IDR 幀。
所以,在直播場景通常每個(gè) I 幀都是 IDR 幀,這樣服務(wù)端下發(fā)流數(shù)據(jù)的時(shí)候總是從一個(gè) I 幀開始,播放器就可以立即開始播放。
4)什么是 SPS 和 PPS?它們有什么區(qū)別?
SPS,Sequence Paramater Set,保存了一組編碼后的圖像序列所依賴的全局參數(shù)。
PPS,Picture Paramater Set,保存了每一幀編碼后的圖像所依賴的參數(shù)。
SPS 中的信息至關(guān)重要,如果其中的數(shù)據(jù)丟失,解碼過程就可能失敗。SPS 和 PPS 通常作為解碼器的初始化參數(shù)。一般情況,SPS 和 PPS 所在的 NAL 單元位于整個(gè)碼流的起始位置,但是在某些場景下,在碼率中間也可能出現(xiàn)這兩種結(jié)構(gòu):
- 解碼器要在碼流中間開始解碼。比如,直播流。
- 編碼器在編碼過程中改變了碼率的參數(shù)。比如,圖像的分辨率。
5)什么是 SEI?我們可以用它來做什么?
...
全文鏈接:點(diǎn)擊看全文