音視頻面試題集錦第 31 期:
- 1、I 幀、P 幀和 B 幀的概念及區別?
- 2、視頻編碼中的碼率控制技術有哪些?
- 3、音頻采樣參數有哪些?
- 4、RTMP 和 HLS 協議各有什么特點?如何選擇?
- 5、WebRTC 中的 ICE、STUN、TURN 各有什么作用?
- 6、AAC 編碼的 Profile 有什么區別?
- 7、視頻播放內存優化有哪些方向?
- 8、H.264 和 H.265 有哪些區別?
- 9、你對音視頻同步有哪些理解?
- 10、弱網環境下的音視頻卡頓要如何優化?
圖文完整版請閱讀:https://gjzkeyframe.github.io/posts/av-interview-qa-31/
想要學習和提升音視頻技術的朋友,快來加入我們的【音視頻技術社群】,加入后你就能:
- 1)下載 30+ 個開箱即用的「音視頻及渲染 Demo 源代碼」
- 2)下載包含 500+ 知識條目的完整版「音視頻知識圖譜」
- 3)下載包含 200+ 題目的完整版「音視頻面試題集錦」
- 4)技術和職業發展咨詢 100% 得到回答
- 5)獲得簡歷優化建議和大廠內推
現在加入,送你一張 20 元優惠券:點擊領取優惠券
下面一名音視頻技術面試官在面試中常用的一些開場基礎面試題,包含音視頻基礎概念、編解碼、傳輸協議、性能優化等方面。
1、I 幀、P 幀和 B 幀的概念及區別?
這三種幀的主要區別在于它們的壓縮方式和相互依賴關系:
-
I 幀(關鍵幀)
- 完整編碼的獨立幀
- 不依賴其他幀,可獨立解碼
- 壓縮率最低,但支持隨機訪問
-
P 幀(預測幀)
- 僅包含與前一幀的差異信息
- 依賴前面的 I 幀或 P 幀
- 壓縮率高于 I 幀
-
B 幀(雙向預測幀)
- 參考前后兩幀進行編碼
- 壓縮率最高
- 需要更多的解碼資源
2、視頻編碼中的碼率控制技術有哪些?
碼率控制是調節視頻編碼輸出碼率的技術:
-
CBR(固定碼率)
- 保持穩定的碼率輸出
- 適合直播等場景
-
VBR(可變碼率)
- 根據畫面復雜度動態調整碼率
- 畫質更好
-
ABR(平均碼率)
- 在一段時間內保持平均碼率
- 兼顧畫質和帶寬
-
CQP(固定質量)
- 保持固定的量化參數
- 碼率會隨畫面變化
3、音頻采樣參數有哪些?
音頻采樣的關鍵參數:
-
采樣率
- 每秒采樣次數
- 常見值:
- 8kHz(電話)
- 44.1kHz(CD音質)
- 48kHz(專業音頻)
-
位深度
- 每個采樣點的數據位數
- 常見值:16bit、24bit、32bit
- 一般手機通話使用 8kHz/16bit
- 音樂播放使用 44.1kHz/16bit
4、RTMP 和 HLS 協議各有什么特點?如何選擇?
-
RTMP
- 基于 TCP
- 延遲低(1-3秒)
- 實時性好,適合直播
- 穿透防火墻能力較弱
-
HLS
- 基于 HTTP
- 兼容性好
- 延遲較高(>5秒)
- 自適應碼率
- 支持點播和直播
選擇建議:對延遲要求高的場景選擇 RTMP,需要跨平臺兼容性好的場景選擇 HLS。
5、WebRTC 中的 ICE、STUN、TURN 各有什么作用?
- ICE(交互式連接建立):收集并嘗試各種可能的網絡連接路徑
- STUN:幫助位于 NAT 后的設備獲取公網 IP 地址和端口
- TURN:當點對點連接失敗時,提供中繼服務器進行數據轉發
6、AAC 編碼的 Profile 有什么區別?
-
AAC-LC
- 最基本的 Profile
- 編碼效率和音質適中
-
AAC-HE(AAC+)
- 在 AAC-LC 基礎上增加 SBR 技術
- 更適合低碼率
-
AAC-HE v2
- 在 AAC-HE 基礎上增加 PS 技術
- 進一步降低碼率
-
AAC-LD
- 低延遲版本
- 適合實時通信
7、視頻播放內存優化有哪些方向?
主要優化方向:
- 使用硬件解碼替代軟件解碼
- 合理設置解碼緩沖區大小
- 及時釋放不需要的解碼幀
- 使用紋理復用機制
- 控制預加載的數據量
- 適當降低分辨率和幀率
8、H.264 和 H.265 有哪些區別?
主要區別:
- H.265 比 H.264 有更高的壓縮率(同畫質下碼率可降低 50%)
- H.265 支持更大的編碼單元和更靈活的分區
- H.265 的計算復雜度更高
- H.265 的專利費用較高
選擇建議:
- 對帶寬敏感,設備性能足夠時選擇 H.265
- 需要廣泛兼容性或設備性能受限時選擇 H.264
9、你對音視頻同步有哪些理解?
時間戳概念:
- PTS(顯示時間戳):標識幀應該在什么時候顯示
- DTS(解碼時間戳):標識幀應該在什么時候解碼
音視頻同步方法:
- 以音頻為基準進行同步
- 通過比較音視頻 PTS 調整視頻顯示時間
- 設置同步閾值,超出范圍時進行追趕或等待
10、弱網環境下的音視頻卡頓要如何優化?
主要處理策略:
- 自適應碼率:根據網絡狀況動態調整碼率
- 丟幀策略:網絡擁塞時優先丟棄 B 幀和 P 幀
- 緩沖區管理:動態調整緩沖區大小
- FEC(前向糾錯):增加冗余數據用于恢復丟包
- NACK(丟包重傳):檢測到丟包時請求重傳
- 音頻優先: 確保音頻流暢、保證基本的通信體驗