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

  • 2019 年 10 月 4 日
  • 笔记

如果基于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从各个平台获取图像数据来填充纹理即可。

经尝试,完全可行, 延迟非常低(毫秒级).