Unity下实现跨平台的RTMP推流|轻量级RTSP服务|RTMP播放|RTSP播放低延迟解决方案

2018年,我们开始在原生RTSP|RTMP直播播放器的基础上,对接了Unity环境下的低延迟播放,毫秒级延迟,发布后,就得到了业内一致的认可。然后我们覆盖了Windows、Android、iOS、Linux的RTMP推送、轻量级RTSP服务和RTSP|RTMP播放。

目前看,Unity环境下,我们在行业内的延迟几乎是最低的(当然原生的RTSP|RTMP播放器也是),已经覆盖了以下模块:

  • Windows平台RTMP直播推送SDK(采集Unity窗体、摄像头或屏幕);
  • Windows平台轻量级RTSP服务SDK(采集Unity窗体、摄像头或屏幕);
  • Windows平台RTMP|RTSP直播播放SDK;
  • Linux平台RTMP直播推送SDK(采集Unity窗体、Unity声音);
  • Linux平台RTMP|RTSP直播播放SDK;
  • Android平台RTMP直播推送SDK(采集Unity窗体、摄像头、麦克风或Unity声音);
  • Android平台轻量级RTSP服务SDK(采集Unity窗体、摄像头、麦克风或Unity声音);
  • Android平台RTMP|RTSP直播播放SDK;
  • iOS平台RTMP|RTSP直播播放SDK。

1. Unity环境下RTMP推流、轻量级RTSP服务模块

Unity环境下,不管是camera还是窗体数据也好,主要是高效率的拿到原始数据,采集端可用的数据格式是RGB的,拿到之后,通过高效率的数据传递,发给封装后的原生SDK,完成数据编码和RTMP推送。

需要注意的地方有几点:

  1. 数据采集投递,确保高效率;

  2. 屏幕分辨率发生变化,可实时适配;

  3. Unity和原生SDK之间通信,比如event回调等;

  4. 屏幕数据如有水平或垂直翻转,需要有一定的矫正。

2. Unity环境下RTMP|RTSP播放器

Unity环境下RTMP或RTSP直播播放我们前几年就有发布,并已应用在好多传统行业领域,比如教育或工业仿真或一些低延迟的控制场景。

相关实现逻辑如下:

  1. Native RTSP或RTSP直播播放SDK回调RGB/YUV420/NV12等其中的一种未压缩的图像格式;

  2. Unity3D创建相应的RGB/YUV420等Shader;

3.Unity3D从各个平台获取图像数据来填充纹理即可;

需要注意的有几点:

  1. 多实例支持:播放端和推送不一样,比如智慧城市,播放端有多路场景,所以多实例支持是必备功能,多实例环境下,需要能有好的区分event状态回调等;

  2. 尽可能高效率的数据传递,确保资源占有最小化;

  3. 视频分辨率变化后,能自动适配;

  4. Unity和原生SDK之间通信,比如event回调等;

  5. 长时间运行稳定性。

相关博客

Windows平台Unity3d下如何同时播放多路RTSP或RTMP流

如何在Unity3d平台下低延迟播放RTMP或RTSP流

Windows平台实现Unity下窗体|摄像头|屏幕采集推送

Android平台实现Unity3D下RTMP推送

Unity3D平台实现全景实时RTMP|RTSP流渲染

Unity3D下Linux平台播放RTSP或RTMP流

Android平台实现VR头显Unity下音视频数据RTMP推送

Unity实现Camera和Audio数据的低延迟RTMP推送技术探讨

Android平台Unity下如何通过WebCamTexture采集摄像头数据并推送至RTMP服务器或轻量级RTSP服务

相关推荐
Industio_触觉智能7 分钟前
RK3576轻松搭建RTMP视频推流,基于FFmpeg+Nginx协同
nginx·ffmpeg·实时音视频·rtmp·瑞芯微·视频推流·rk3576
C MIKE1 小时前
unity资源下载
unity
Avalon7121 小时前
Unity中自定义协程的实现
游戏·unity·c#·游戏引擎
jtymyxmz2 小时前
《Unity shader》10.1.5 菲涅尔反射
unity·游戏引擎
老朱佩琪!3 小时前
Unity文字排版错位问题
经验分享·unity·游戏引擎
jtymyxmz3 小时前
《Unity Shader》9.4.3 使用帧调试器查看阴影绘制过程
unity·游戏引擎
jtymyxmz4 小时前
《Unity Shader》10.3.1 在Unity中实现简单的程序纹理
unity·游戏引擎
jtymyxmz4 小时前
《Unity Shader》11.2.1 序列帧动画
unity·游戏引擎
UX201713 小时前
Unity中的Color.HSVToRGB
unity·游戏引擎
TO_ZRG13 小时前
Unity PackageManager
unity·gitlab