Unity3d(U3D) Windows/Android/IOS 播放rtmp/rtsp方案

  • 2019 年 10 月 4 日
  • 筆記

如果基於Unity3d完全重新開發一個播放器,代價大,周期長,不適合快速出產品,最好的方式就是集成現有Native平台上成熟穩定播放器.

集成Navtive播放器可行性分析:

Android: Unity3d可以調用Androidjava介面,這方面的例子很多,搜索能找到一大堆。

IOS: Unity3d 可以調用C介面, c又可以調用object-c,那麼C#--call-->C---call---object-c. 這類例子也非常多。

Windows: Unity3d調用C#就不用說了,天生支援,C#調用c dll, 可以使用P/INVOKE技術,或者把C介面封裝成com組件也可以。

綜上Unity3d和3個平台交互是沒問題的.

這三個平台已經有成熟穩定低延時的rtmp/rtsp播放器SDK了,只要這些現有的播放SDK能吐影像數據, 然後讓Unity3d繪製即可。

實現步驟:

1.Native播放器SDK支援吐RGB/YUV420/NV12等其中的一種未壓縮的影像格式。

2.Unity3D創建相應的RGB/YUV420等Shader.

3.Unity3D從各個平台獲取影像數據來填充紋理即可。

經嘗試,完全可行, 延遲非常低(毫秒級).

Tags: