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從各個平台獲取影像數據來填充紋理即可。
經嘗試,完全可行, 延遲非常低(毫秒級).