轻量级RTSP服务SDK

设计背景

跨平台内网超低延迟直播的创新引擎

为满足安防视频监控、教育培训、工业生产、医疗健康、智能物联网等内网超低延迟需求,避免让用户配置单独的服务器,大牛直播SDK在推送端发布了跨平台(Windows|Linux(含x86_64|aarch64)|Android|iOS平台)的轻量级RTSP服务SDK:

功能传承,固本浚源,效能跃升

简单来说,之前推送端SDK支持的功能,内置轻量级RTSP服务SDK后,功能继续支持,并实现了从单一RTMP音视频数据推送到多元本地服务供给的关键跨越,全方位契合用户于内网场景下不断衍生的多样化诉求。

简化部署流程,便捷数据汇聚与共享

轻量级RTSP服务解决的核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,实现本地的音视频数据(如摄像头、麦克风),编码后,汇聚到内置RTSP服务,对外提供可供拉流的RTSP URL,轻量级RTSP服务,适用于内网环境下,对并发要求不高的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,我们支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数。

适用场景明确

内网环境优势:在内网环境中,网络相对稳定且安全性较高,轻量级 RTSP 服务能够充分发挥其优势。它可以在不需要复杂网络配置和高带宽的情况下,满足企业内部、校园内部等局域网内的音视频传输需求,如安防监控视频在内网中的查看、教育培训课程在内网中的直播等。

低并发需求适配:对于一些对并发连接数要求不高的场景,如智慧教室、智能物联网、安防监控等,轻量级 RTSP 服务能够提供稳定可靠的音视频传输。它不需要强大的服务器硬件支持,即可满足少量设备同时拉流的需求,避免了资源的浪费。

技术架构

平台覆盖和架构支持

支持平台 支持架构
Windows平台 x86 debug/release, x64 debug/release
Linux(含麒麟操作系统) x86_64、aarch64
Android平台 armeabi-v7a, arm64-v8a, x86, x86_64
iOS平台 arm64

功能说明

  •  [基础功能]支持Windows/Linux(含x86_64|aarch64)/Android/iOS平台RTMP直播SDK除推送RTMP外的所有常规功能,如音视频数据采集、软硬编码、码率等参数设置;
  •  [音频格式]AAC;
  •  [视频格式]H.264、H.265;
  •  [协议类型]RTSP;
  •  [传输模式]支持单播组播模式;
  •  [端口设置]支持RTSP端口设置;
  •  [鉴权设置]支持RTSP鉴权用户名、密码设置;
  •  [获取session连接数]支持获取当前RTSP服务会话连接数;
  •  [多服务支持]支持同时创建多个内置RTSP服务;
  •  [RTSP url回调]支持设置后的rtsp url通过event回调到上层。

技术优势

部署便捷性

  • 无需单独部署服务器:传统的 RTSP 或 RTMP 服务需要用户或开发者单独配置和部署服务器,涉及到复杂的服务器安装、配置和维护工作,而轻量级 RTSP 服务 SDK 内置了该服务,避免了这一繁琐过程,用户无需具备专业的服务器知识,即可快速实现本地音视频数据的编码和汇聚,生成可供拉流的 RTSP URL,大大降低了部署成本和技术门槛。

功能丰富性

  • 继承原有功能并拓展:在保留推送端 SDK 原有功能的基础上进行了优化和拓展,如继续支持对摄像头、麦克风等本地音视频数据的采集和编码,同时新增了轻量级 RTSP 服务功能,使其能够更好地满足用户在内网环境下的多样化需求。
  • 支持多种模式和功能:支持 RTSP 鉴权,可有效保障数据的安全性,防止非法用户访问;支持单播和组播模式,单播能实现一对一的精准推送,组播则可以一对多高效群发,用户可根据实际场景灵活选择。还支持同时创建多个 RTSP 服务,并能获取当前 RTSP 服务会话连接数,方便用户对服务进行管理和监控。

性能优化

  • 低延迟:针对内网环境进行了深度优化,在数据传输过程中能够有效减少延迟,确保音视频数据的实时性,特别适用于对实时性要求较高的内网无纸化和电子教室等场景,师生互动或信息共享几乎零时差,极大提升了用户体验。
  • 编码格式先进:支持 H.264/H.265 编码格式,这两种编码格式具有较高的压缩效率,能够在保证音视频质量的前提下,有效降低数据量,减少网络带宽占用,提高传输效率,使音视频在低带宽的内网环境中也能流畅传输。

资源占用与成本

  • 轻量级设计:资源占用少,对设备性能的影响较小,不会给运行设备带来过多负担,即使在内网中设备性能相对有限的情况下,也能稳定运行,不会因运行该服务而导致设备卡顿或资源耗尽。
  • 成本效益高:由于无需单独购买和配置服务器,以及其轻量级的特点降低了对硬件设备的要求,整体上降低了用户的硬件投资和运营成本,具有较高的性价比。

兼容性与稳定性

  • 广泛兼容:与多种操作系统和设备兼容,无论是常见的 Windows、Linux 系统,还是各种不同型号的 Android 和 iOS 设备,都能较好地适配,确保在不同设备上都能正常运行,提供稳定的 RTSP 服务。
  • 稳定可靠:经过大量的测试和实际应用验证,具有较高的稳定性和可靠性,能够在长时间运行过程中保持稳定的服务状态,减少因服务故障导致的直播中断或数据丢失等问题,保障业务的连续性。

对应Demo

  •  Windows测试程序:SmartPublisherDemo.exe;
  •  Windows C++工程:WIN-PublisherSDK-CPP-Demo;
  •  Windows C#工程:WIN-PublisherSDK-CSharp-Demo;
  •  Linux工程:rtspserverdemo;
  •  Android工程:SmartPublisherV2;
  •  iOS工程:SmartiOSPublisherV2。

技术对接文档(Android为例)

以Windows平台为例

1. 在选择好需要推送出去的音视频数据类型、调整好码率后(以采集Windows桌面为例,设置好采集帧率,看是否用硬编码,码率如果不想自己配置的话,可以点击按钮“获取视频码率默认值”,如需采集麦克风或扬声器,选择即可),点击“配置查看RTSP服务”:

2. 根据需求,可以启动一路或者多路服务,每路服务,并可配置用户名密码信息(可选)。启动服务后,点击“确定”退出设置页面;

3. 配置流名称(可自定义),默认是 stream1;

4. 发布RTSP流:

5. 发布后,播放地址列表里面,会显示当前发布的url,拷贝其中一个或多个,用大牛直播直播播放器SDK,分别播放即可;

6.服务器负载查看:再次点击“配置查看RTSP服务”,即可看到每个服务连接的会话数:

7. 如需停止服务,点击页面的“停止RTSP流”即可;

8. 如需启动RTSP服务的同时,还需要把数据推到其他RTMP服务,输入推送的RTMP url,点击“推送”即可。

视频展示

经测试,整体延迟在200-300毫秒区间,在高稳定低CPU占用的前提下,也可能是行业内功能支持最全面,延迟最低的商用级内置RTSP服务方案。

Android平台启动轻量级RTSP服务和推送RTMP,Windows平台分别拉取RTSP流和RTMP流播放,毫秒级延迟体验:

相关博客: