如果基于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下载