當前位置:編程學習大全網 - 源碼下載 - Flutter TextTrue ios 視頻渲染 YUV420 轉換 BGRA

Flutter TextTrue ios 視頻渲染 YUV420 轉換 BGRA

網易雲信播放器 Flutter 封裝

事情是這樣的 我們公司的業務是有 視頻播放這壹塊業務 而且 是基於網易雲信的 視頻服務的 做的開發 。公司的App開發框架是使用 Flutter , 那麽問題來了 Flutter 怎麽 實現視頻播放嘞 , 官方給出的解決方案 是 ### video_player 這個庫的 實現 是 原生端做視頻解碼 然後通過 Texture 的方式 映射到 Flutter 中 但是解碼器 IOS 使用的是 官方的 AVPlayer (蘋果官方提供的播放器 啥都好 就是不支持流媒體播放 ) Android 解碼器則是 exoplayer 很好很nice

但是

網易雲信的視頻 是加密的 只有自己的 播放器sdk 在能解碼播放 android 和 ios 都支持流媒體 so 只能自己封裝

Android 使用 SurfaceTexture 銜接 視頻流 正常 但是 ios emmm 網易雲信 播放器 返回 的 編碼格式 是 NELP_YUV420 就是 YUV420 直接映射到 Flutter 黑屏 但是有聲音

因為Skia 引擎底層只支持了 BGRA 格式的視頻數據 所以 和黑屏了

首先我們吧 YUV420 轉換成 CVPixelBufferRef 方法如下

該方法依賴 libyuv 請自行導入

然後是 pixelBuffer To SampleBuffer

最後吧 SmapleBuffer 轉換 BGRA

方法如何使用

  • 上一篇:彜語的作者是誰?
  • 下一篇:WWE歷史上誰獲得的冠軍次數最多?誰的人氣最高?
  • copyright 2024編程學習大全網