支持Windows、Android、iOS平臺全功能安防視頻流媒播放器EasyPlayerPro播放rtmp源畫面顯示異常問題排解方案

需求分析

一般對於一個播放器,應該支持如下幾種顯示模式:

  • 等比例,最大化區域顯示,不裁剪
  • 等比例,最大區域顯示,裁剪
  • 拉伸顯示,鋪滿全屏

要實現這幾種顯示模式。其實只要對播放控件的佈局進行些許調整即可。那EasyPlayer是怎麼實現的呢?

EasyPlayerPro是一款全功能的流媒體播放器,支持RTSP、RTMP、HTTP、HLS、UDP、RTP等多種流媒體協議播放、支持本地文件播放,支持本地抓拍、本地錄像、視頻翻轉、多屏播放等多種功能特性,穩定、高效、可靠。

 

EasyPlayerPro播放rtmp源畫面顯示異常

發現問題

我們研發在對EasyPlayerPro進行測試的時候,突然想起來之前有用戶反饋過關於EasyPlayerPro的問題,稱EasyPlayerPro在播放一個rtmp源時,畫面顯示異常。今天我們就整理一下這個問題的解決方案,以便以後大家遇到類似的問題能夠有所參考。

 

分析問題

首先我們來複現一下這個錯誤。我們嘗試把播放器的顯示格式改爲D3D顯示,頁面正常,因此,我們初步推測此問題爲分辨率的問題。D3D顯示是固定的拷貝,而GDI顯示是由api DrawDibDraw實現,在源端將分辨率固定爲編碼分辨率,顯示效果如下:

 

解決問題

由分析發現的確是源端分辨率的問題,仔細查看發現,回調出來的分辨率是顯示分辨率(width,height),而非編碼分辨率(coded_width,coded_height)。我們把分辨率修改過來,就能夠正常顯示了。

 

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