一個實際音視頻開發問題!
前言:
大家好,今天給大家分享的內容是關於平時在做音頻編解碼會遇到的一些問題,比如說:
-
解碼播放的時候,播不出來
-
解碼播放的時候,畫面有條紋
-
編碼的時候,修改分辨率大小,沒有反應
這三個問題是最近和同行交流的時候,大家遇到的一些問題,有些朋友一開始,沒有思路去解決這種問題!
其實大家在做這塊的時候,注意把握整個音視頻的整體流程,比如說,編碼、音視頻處理、解碼,核心就是這三個點,出現了問題,就往這三個大的方向去考慮,到底哪塊出了問題,然後再去細節處理!,這樣的話,我們至少有一個解決問題的思路,對於這種顯示播放遇到的問題!
同時,對於官方的 mpp 源碼要去多研究,結合官方給的手冊!ok, 我這裏就簡單說這些,下面看具體的問題,希望大家以後遇到類似的問題,有自己的思路去解決問題.
一、解碼播放失敗:
問題點:
首先這裏給大家播放這個 h264 視頻文件失敗的現象:
通過 ffplay 播放,會有提示沒有 pps, 所以解碼播放失敗了,如果你用 vlc 播放的話,啥都沒有,這種時候,你就蒙圈了,不知道啥情況,這裏也可以用 Elecard_streamEye 這個軟件去分析 h264 的碼流結構,由於這個文件有問題,Elecard_streamEye 也是不支持打開的!
所以問題點就出現你的編碼端,這個時候,去修改編碼端,就可以解決問題了!
二、解碼播放出現條紋:
問題點:
經過分析 h264 的碼流結構,也沒有問題:
當時我給這位朋友提供的思路,是 stride(跨距: 這個的意思是圖像存儲時內存中每行像素所佔用的空間) 的問題,這裏大家可以去學習一下這個跨距,在我們平時各種芯片平臺寫編碼代碼的時候,要特別注意這個內存對齊問題!後面這個問題就是 stride 的問題:
三、編碼的時候,修改分辨率大小,沒有反應:
問題點:
這個問題就很明顯了,後面問題解決了,問題點出現在:
四、總結:
大家發現沒,我舉得三個問題,本質都是編碼端出得問題,所以,官方發的 mpp 代碼流程寫法,值得花時間研究和借鑑一下。
也歡迎大家後期有編解碼問題,可以多多相互探討交流,後期我也會分享更多關於這塊得實際問題給大家!
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/Gwr9l75HqPU9hWmI-rIJPA