要說在視訊直播軟體開發的過程中,什麼是技術人員最頭疼的?肯定有人會毫無疑問的回答:直播的卡頓和延時!沒錯,這兩位可以說是直播中的“老朋友”了。毫不誇張的說,每一個直播平台都遇到過這兩種問題。是以,今天我們就來聊一下裝置端存在的延時是怎麼個情況。

音視訊資料在裝置端産生的延時是可以進行細分的。裝置端的延時主要是與編解碼算法、音視訊資料量和硬體性能相關的,并且裝置端的延時可以達到30-200ms甚至更高。是以,音頻和視訊在采集端或者是播放端所産生延時的過程是基本一緻的,但原因不同。
1.音頻在裝置端的延時
(1)采集後的音頻會先經過聲霸卡進行信号轉換,聲霸卡的本身會産生延時。
(2)音頻進入前處理和編碼階段後,如果采取标準編碼,那麼最低算法的延時就需要2.5-60ms。
(3)音頻播放過程中出現延時,大多數與播放端的硬體性能相關。
(4)在前處理和後處理這些算法的過程中,都會帶來算法延時。
(5)如果在抗丢包進行中,增加重傳算法和前向糾錯算法的話,延時一般會在20-200ms左右。但是如果受到了jitter buffer影響,可能會更高。
2.視訊在裝置端的延時
(1)一般視訊在進行采集時都會遇到成像延時,主要是由CCD相關的硬體産生。目前市面上較好的CCD一秒可以達到50幀,延時約為20ms。
(2)用H.264舉例的話,主要包含I、B、P幀。如果是每秒30幀相連幀,并且不包括B幀。因為B幀的解碼,依賴于前後視訊幀會增加一定的延時,是以采集到的一幀資料可能就會直接進入編碼器。沒有B幀時,編碼的幀延時可以忽略不計。但如果有B幀,就會帶來算法延時。
(3)在渲染情況下,一般延時比較,但是也會受到音畫同步和系統性能的影響增大延時。
(4)與音頻相同的是,視訊也會遇到端網絡延時的狀況。
其實在裝置端,CPU和緩沖都會同時處理來自多個應用和外接裝置的請求。如果某個出現問題的裝置請求占用了CPU,那麼就會導緻音視訊的處理請求出現延時的情況。就拿音頻來說吧,如果出現上述情況,CPU可能會沒辦法及時填充音頻緩沖區,音頻也會出現卡頓。
由此可見,在視訊直播軟體開發的過程中裝置整體的性能,還是會給音視訊的采集、編解碼和播放造成一定影響進而産生延時的。是以,還需要在這方面多多注意。
本文聲明原創,轉載請注明出處。