支持Windows/Android/iOS安防視頻流媒體播放器EasyPlayerPro播放rtmp源畫面顯示異常問題排解方案

需求分析

通常對於一個播放器,應該支持以下幾種顯示模式:api

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

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

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

EasyPlayerPro播放rtmp源畫面顯示異常

發現問題

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

3.jpg

分析問題

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

4.jpg

解決問題

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

5.jpg

相關文章
相關標籤/搜索