如果基于Unity3d完全重新開發一個播放器,代價大,周期長,不适合快速出産品,最好的方式就是內建現有Native平台上成熟穩定播放器.
內建Navtive播放器可行性分析:
安卓: Unity3d可以調用安卓java接口,這方面的例子很多,搜尋能找到一大堆。
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從各個平台擷取圖像資料來填充紋理即可。
經嘗試,完全可行, 延遲非常低(毫秒級),以下是部分資料:
windows/android/iOS播放器SDK(V2)Unity3D調用說明 大牛直播SDK基于unity3d平台的rtmp/rtsp直播播放端SDK視訊示範 Unity3D-Windows播放端APP下載下傳 Unity3D-Android播放端APK下載下傳