sponsored links

記一次因為丟幀導致影片播放破圖問題的排查

問題背景:

最近開發了一個HLS服務,主要是滿足使用者在瀏覽器上播放直播和點播影片的需求,特別像小程式或者微信這種,只有有連結就能檢視影片,也不用裝APP,還是方便不少。在開發過程中排查了一次破圖問題,感覺比較典型,分享下排查思路,其實這種問題排查思路在前文講過,這篇就是對這篇文章中提出思路的實踐。

問題現象:

HLS服務上線後,用VLC或者瀏覽器播放影片時,總是在首屏出現區域性破圖或者馬賽克現象,雖然後面偶爾也會出現一下,但是機率遠遠沒有首屏這麼高。首屏出現不僅僅影響了首屏速度,影響體驗也不好,使用者剛開啟連結就看到破圖,也有點說不過去。

當時時間比較緊張,就是將一個切片丟掉,然後從第二個開始播放。雖然破圖綠屏問題消失了,但是首屏速度影響非常大,所以還是要徹底解決,不能使用這個臨時規避方案。

分析思路:

為了讓大家看清排查過程,畫個簡單示意圖,說明下碼流的傳輸過程:

記一次因為丟幀導致影片播放破圖問題的排查

編輯切換為居中

新增圖片註釋,不超過 140 字(可選)

注:

1. 裝置側主要是就是推流端,各種攝像頭IPC、國標平臺、NVR等能產生碼流的軟硬體裝置和伺服器,碼流格式的RTP+PS+H.264俗稱國標流;

2. 公有云就是開發平臺上的各種流媒體伺服器,其中GB接入伺服器透過標準協議對接軟硬體裝置,將國標流轉成我們公司私有流,流媒體伺服器做私有流分發,HLS服務支援客戶端瀏覽器HLS協議拉流,同時將私有Raw流轉成TS流;

3. 使用者側凡是支援HLS協議的瀏覽器或者小程式都可以使用正確的URL來進行拉流觀看影片。

既然碼流在使用者側的瀏覽器播放存在破圖問題,那麼透過上面示意圖我們將裝置上來的碼流各個傳輸階段寫成碼流檔案進行分析,如果在哪一步出現問題,則將問題定位在具體的碼流處理模組中,再結合程式碼分析出碼流到底在哪一步出現了問題。

排查步驟:

下面我在各個模組增加了寫檔案除錯功能,將碼流每個過程中生成的檔案寫下來,用分析工具進行播放和分析。我們攝像機裝置端配置的幀率是25,I幀間隔是50,那就意味著2s一個GOP。實際TS切片時,也是以GOP為單元進行切片,一個TS檔案大小在兩個GOP左右,既然首屏的第一個TS檔案出現大機率破圖問題,那就先分析前兩個GOP的幀情況:

記一次因為丟幀導致影片播放破圖問題的排查

​相關影片推薦

音影片開發系列-音影片入門核心知識精講|影片為什麼會破圖|音訊為什麼容易有雜音|音影片進階需要掌握什麼專案_嗶哩嗶哩_bilibili

音影片面試-流媒體伺服器開發原理分析-rtmp-hls-http-flv|流媒體伺服器架構分析,推流-轉發-拉流模組開發,如何進階掌握流媒體伺服器_嗶哩嗶哩_bilibili

學習地址:【免費】FFmpeg/WebRTC/RTMP/NDK/Android音影片流媒體高階開發-學習影片教程-騰訊課堂

需要更多ffmpeg/webrtc..音影片流媒體開發學習資料加群812855908領取

記一次因為丟幀導致影片播放破圖問題的排查

​步驟1:

既然HLS服務返回給客戶端播放的影片出現了破圖和綠屏,那先分析生成的第一個TS檔案碼流是否正常:

記一次因為丟幀導致影片播放破圖問題的排查

​發現逐幀播放時,從第5幀開始出現破圖,同時發現TS裡面的PTS時間從13500增加到36000,實際每個增加正常情況是3600左右,基本初步判斷有影片幀丟掉導致,因為P幀的播放可能要參考前面的I幀和P幀,假設參考幀丟掉,後面P幀播放就會出現破圖,同時再用StreamEye工具分析這個TS的確如此:

記一次因為丟幀導致影片播放破圖問題的排查

​工具分析發現每個GOP裡面只有43幀,和裝置端配置的50幀一個GOP缺少7幀,下面就繼續在分析GOP裡面為50時出現在那個模組,這樣將問題縮小化;

步驟2:

PS流是國標接入伺服器收到碼流後,除去RTP頭後些下來的檔案,用專業軟體逐幀播放和Elecard StreamEye分析:

記一次因為丟幀導致影片播放破圖問題的排查

​透過分析發現前兩個GOP檔案播放都是正常的,那說明裝置送上來的國標流是沒有啥大問題的

步驟3:

PS流後面就是國標接入伺服器轉化成我們內部的私有流,分析同樣也是正常的,因為這塊已經把H264檔案提取出來了,分析後發現都是可以正常播放的。

步驟4:

既然國標接入伺服器收流和轉封裝私有流都正常,但是HLS拉流切片出來的第一個TS切片缺少了幾幀,那麼問題肯定出現在國標接入伺服器以上到HLSTS拉流伺服器之間。

步驟5:

透過流媒體分發伺服器同學定位,說自己收到國標接入伺服器的第一個GOP就是43幀,而且幾乎必現,後面透過回溯國標接入閘道器向流媒體分發伺服器推流這塊的程式碼發現內部在推流過程中做了是否有音訊的判斷,其中這塊判斷邏輯影響了前幾幀影片的傳送,最終調整這塊處理邏輯問題得到解決。

結論:

這種因為網路或者音影片資料本身導致的破圖、綠屏問題,排查起來基本思路就是分階段排查,摸清碼流的傳輸路徑,在關鍵地方寫檔案或者打日誌,透過專業音影片分析工具,把問題定位到模組內部或者模組之間的邊界上。模組內部一般分析程式碼對碼流的具體處理,模組之間透過抓包把問題因為傳輸導致的原因排除掉,透過以上定位問題思路就能分析出影片播放的各種疑難雜症。

分類: 科技
時間: 2022-02-26

相關文章

優酷回應《迪迦奧特曼》下架原因;特斯拉CEO馬斯克重回全球首富

優酷回應《迪迦奧特曼》下架原因;特斯拉CEO馬斯克重回全球首富
[孟晚舟回國後在機場發表回家感言]據央視新聞客戶端2021年09月25日21:49報道:平安到家!孟晚舟乘坐的中國政府包機抵達深圳寶安國際機場.中國駐加拿大大使叢培武陪同孟晚舟回國.孟晚舟在深圳機場哽 ...

“雙減”政策下,職業教育走向何方?——訪環球青藤CEO伊貴業

“雙減”政策下,職業教育走向何方?——訪環球青藤CEO伊貴業
環球青藤CEO伊貴業 7月下旬,<關於進一步減輕義務教育階段學生作業負擔和校外培訓負擔的意見>(以下簡稱"雙減政策")正式釋出,成為業界熱點.一個政策,改變的不僅僅是我 ...

特斯拉CEO馬斯克:中國汽車製造商具備全球競爭力
2021世界新能源汽車大會繼續在海南進行.特斯拉公司CEO埃隆·馬斯克在演講中透露,特斯拉正在研發處於第一階段的訓練晶片,並基於視覺和神經網路繼續研發輔助駕駛技術.對於中國汽車製造商,馬斯克不吝讚美之 ...

揭露特斯拉CEO馬斯克2006年的秘密計劃
如你所知,特斯拉公司最初的產品是一款高效能電動跑車,叫做Tesla Roadster.但是,有些讀者或許不知道,我們的長遠計劃是生產不同型號的汽車,包括價格親民的家庭用車.這是因為特斯拉公司的首要目的 ...

馬斯克:資料安全是智慧聯網汽車成功的關鍵,將繼續加大在中國的投資

馬斯克:資料安全是智慧聯網汽車成功的關鍵,將繼續加大在中國的投資
9月26日,2021年世界網際網路大會烏鎮峰會隆重舉行.特斯拉CEO伊隆·馬斯克受邀"亮相"峰會開幕儀式,並發表影片演講. 紅星資本局瞭解到,馬斯克在會上主要談到了特斯拉資料技術及 ...

特斯拉&quot;脈衝鐳射雨刷器&quot;,用於鐳射代替橡膠刃

特斯拉&quot;脈衝鐳射雨刷器&quot;,用於鐳射代替橡膠刃
隨著2019年特斯拉"網路卡車"的公開,作為專利申請的所謂"脈衝鐳射雨刷器"最近完成了美國專利局的最終批准. 當地時間11日,特斯拉已經從美國專利局完成了對脈衝 ...

海外 | 豐田/特斯拉等12家車企敦促美國放棄不公平電動車補貼

海外 | 豐田/特斯拉等12家車企敦促美國放棄不公平電動車補貼
文:懂車帝原創 宋愛菊 [懂車帝原創 行業] 特斯拉創始人伊隆·馬斯克在9月28日公開吐槽稱,美國的電動車政策似乎被工會控制了.當然,想給馬斯克這番言辭點讚的還有豐田.大眾等11家車企. 為何特斯拉會 ...

首創混合響應柔性壓力感測器,為人把脈,將為機器人打造人類觸覺

首創混合響應柔性壓力感測器,為人把脈,將為機器人打造人類觸覺
現任德克薩斯大學奧斯汀分校(UT-Austin)天普基金會特聘終身教授的魯南姝認為,人類科技的發展趨勢一定是機器越來越像人,人越來越像機器."人工智慧時代,人機融合具有必然性,否則將與時代脫 ...

馬斯克:特斯拉已在中國建立資料中心,所有資料都會儲存在中國
來源:中國青年網 在2021年世界網際網路大會上,特斯拉公司執行長伊隆・馬斯克透過影片連線表示,特斯拉已在中國建立資料中心,所有資料都會儲存在中國,只有少量訂單資料在獲得批准後才會出境.

2021 世界網際網路大會烏鎮峰會今日開幕 你會看到什麼?

2021 世界網際網路大會烏鎮峰會今日開幕 你會看到什麼?
2021 年世界網際網路大會烏鎮峰會今日將在浙江烏鎮開幕,會期 3 天.這也是自 2014 年以來,烏鎮迎來的第 8 個世界網際網路大會. 本屆峰會由國家網際網路資訊辦公室和浙江省人民政府共同舉辦,主 ...

大眾CEO竟是&quot;特吹&quot;?迪斯:很欣賞馬斯克,目標2025年超越特斯拉

大眾CEO竟是&quot;特吹&quot;?迪斯:很欣賞馬斯克,目標2025年超越特斯拉
日前,在2021德國慕尼黑國際車展上,大眾汽車集團CEO赫伯特·迪斯(Herbert Diess)在接受採訪時,談到了大眾汽車在電動化領域的目標以及其最大對手特斯拉和公司CEO埃隆·馬斯克 (Elon ...

馬斯克:特斯拉將與全球監管機構合作確保汽車資料安全
在2021年世界新能源汽車大會上,特斯拉CEO馬斯克發表影片演講時表示,特斯拉將與全球的監管機構合作,確保汽車資料的安全.馬斯克表示:"隨著自動駕駛資料的快速增長,汽車的資料安全正在吸引更多 ...

馬斯克:特斯拉總部將從加州遷至德克薩斯州奧斯汀
澎湃財訊 在當地時間10月7日舉辦的特斯拉年度股東大會上,特斯拉CEO埃隆·馬斯克宣佈,特斯拉總部將正式從加利福尼亞州遷至德克薩斯州的奧斯汀. 本次股東大會的舉辦地正是奧斯汀的德克薩斯州超級工廠.(澎 ...

馬斯克:特斯拉尚未考慮拆股
特斯拉舉行年度股東大會,特斯拉CEO馬斯克表示,特斯拉尚未考慮拆股,目前也不考慮分紅.(財聯社)

馬斯克:特斯拉決定推遲FSD Beta 10.2 釋出
彭博10月9日報道,特斯拉CEO馬斯克在推特上表示,特斯拉在最後一刻決定,公司將延後推出FSD Beta 10.2軟體更新. 馬斯克稱,該軟體可能會在週日或週一釋出.

馬斯克:大約1000名特斯拉車主的全自動輔助駕駛系統FSD Beta 10.2版本更新將延遲
特斯拉CEO埃隆·馬斯克表示,大約1000名車主的全自動輔助駕駛系統FSD Beta 10.2版本更新將延遲,可能在週日或週一推送更新.(新浪財經)

馬斯克:特斯拉下一代Roadster跑車可能會在2023年釋出
據國外媒體報道,在最近舉行的2021年年度股東大會上,特斯拉CEO埃隆·馬斯克表示,除非遇到任何意想不到的挑戰,否則特斯拉的下一代Roadster跑車可能會在2023年釋出.馬斯克還提到,這款跑車可能 ...

馬斯克:擔心特斯拉柏林工廠招不夠人
近日,特斯拉CEO埃隆·馬斯克表示,對其公司位於柏林郊外的新的"超級工廠"的人員配備表示擔憂.自特斯拉2019年宣佈柏林工廠專案以來,人們就一直在擔心該工廠的人員配備問題.此前,媒 ...

馬斯克:特斯拉柏林“超級工廠”計劃11月份或12月份開始生產Model Y
據報道,近日,特斯拉CEO馬斯克透露,柏林"超級工廠"計劃於11月或12月開始生產Model Y.這意味著,特斯拉需在未來幾周內獲得德國方面的生產許可.該工廠自2019年11月確定 ...

觀點 | 馬斯克:特斯拉的完全自動駕駛安全性比普通駕駛員高出10倍

觀點 | 馬斯克:特斯拉的完全自動駕駛安全性比普通駕駛員高出10倍
文:懂車帝原創 常思玥 [懂車帝原創 行業] 2021年,新能源汽車在全球範圍內開啟了高速的推廣模式,在這一大背景下,2021世界新能源汽車大會(WNEVC)於9月15日在海南海口召開.3天的活動包含 ...