EasyPusher手機直播圖像旋轉90度後畫面重複的問題

最初在做EasyPusher手機直播的時候遇到過一個問題:手機豎屏推送直播畫面到EasyDarwin然後通過播放器播放視頻畫面就會逆時針旋轉90度,如圖:

原始畫面

手機橫屏的時候不會旋轉,這個問題思路其實很簡單,在推送給服務器之前把圖片數據旋轉90度之後就可以了,然後就做了一次順時針旋轉的,結果畫面變成如下樣子:

這裏寫圖片描述

很明顯圖片順時針旋轉了90度,但是還不如不旋轉!我就想當然的以爲旋轉的算法出錯了,然後開始尋求谷歌度娘,然並卵,然後就自己開始瞭解學習YUV420SP、YUV420P,並且自己寫旋轉算法,結果還是這樣。其實着就有個結論了,旋轉算法沒問題!那是哪兒除了問題了呢?一次聊天提到寬和高是不是有問題,一語點醒夢中人。我在編碼的時候使用MediaCodec,編碼的時候設置寬爲640高480:

mediaFormat = MediaFormat.createVideoFormat("video/avc", width,height);11

而旋轉90度之後寬和高就顛倒了啊,再這樣編碼肯定有問題,於是在將編碼器的寬和高顛倒:

mediaFormat = MediaFormat.createVideoFormat("video/avc", height, width);11

這次果然出現奇蹟了,畫面終於正常了:

這裏寫圖片描述

其實就是簡單的顛倒一下width和height的位置,這個問題困擾了好幾天,終於解決了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章