,SDK 加入了 断网自动重连、自适应缓冲、低拷贝通路、软硬编码协同机制 等特性,延迟进一步被压缩至毫秒级别; 进入当前阶段,RTMP 推流模块已与 轻量级 RTSP 服务、HTTP-FLV 推送、GB28181 在复杂工业与安防场景中,它往往承担“视频出口”的角色,是数据上行的稳定桥梁。4. 完备的事件与回调在系统级推流中,事件反馈是控制与可视化的核心。 尤其在跨设备、多线程、弱网环境下,仍能稳定维持 100–200 ms 的低延迟体验。4. 队列与缓冲策略在复杂网络环境中,推流的稳定性取决于队列的组织方式。 与轻量级 RTSP 服务 / 多路转推: 推流端可作为系统“源点”,由内置 RTSP 服务转发至内网或边缘节点,并可实现 RTSP、RTMP、HTTP-FLV 多协议互转,构建覆盖广、延迟低的实时分发网络 它以 自研框架、跨平台适配、模块化结构、低延迟管线、弱网自适应与可观测机制,在教育、安防、车载、应急、工业互联网、XR 等场景中长期稳定运行。在“可用”早已不稀缺的时代,真正稀缺的,是长期可用。
在本文之前,我们发布了Unity环境下的RTMP推流(Windows平台+Android平台)和RTMP|RTSP拉流(Windows平台+Android平台+iOS平台)低延迟的解决方案,今天做个整体汇总 Unity环境下RTMP推流 Unity环境下,不管是camera还是窗体数据也好,主要是高效率的拿到原始数据,采集端可用的数据格式是RGB的,拿到之后,通过高效率的数据传递,发给封装后的原生SDK,完成数据编码和 Unity和原生SDK之间通信,比如event回调等; 4. 屏幕数据如有水平或垂直翻转,需要有一定的矫正。 Unity环境下RTMP|RTSP播放器 Unity环境下RTMP或RTSP直播播放我们前几年就有发布,并已应用在好多传统行业领域,比如教育或工业仿真或一些低延迟的控制场景。 平台下低延迟播放RTMP或RTSP流 https://cloud.tencent.com/developer/article/1592731
在Unity3D平台上实现全景实时RTMP或RTSP流渲染,可以通过以下方式:获取全景视频数据源:首先,需要拉取RTMP或RTSP流数据,解码后,把RGB或YUV数据,回调到unity,从而获取到全景视频流数据 技术实现图片本文以大牛直播SDK的RTMP推送端作为数据采集,获取全景窗体数据后,编码打包推送到RTMP服务,或启动个轻量级RTSP服务,对外提供个RTSP的拉流URL。 1 : 0); //设置是否启用低延迟模式 //设置旋转角度(设置0, 90, 180, 270度有效,其他值无效) int rotate_degrees = 0; 或RTSP实时流,可以广泛用于各种需要提供真实场景或沉浸式体验的场景,为用户带来更加逼真的体验。 与此同时,Unity全景实时播放,需要有非常高的延迟要求和性能要求,特别是全景数据源,分辨率和码率都非常高,对解码效率和解码后的数据拷贝投递,提了更高的要求。
如果需要浏览器场景下有更好的兼容性,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流,或者直接播放 hls流(如果可以忍受几秒甚至十几秒延迟的话)。 本文基于大牛直播SDK https://github.com/daniulive/SmarterStreaming 现有RTSP、RTMP播放接口的基础上,二次封装,扩展了ocx控件,用于IE浏览器下的低延迟 ULONG NT_SetLowLatencyMode(LONG mode); 设置是否低延迟模式播放; 13. OpenPlayer(); } var obj = document.getElementById("SmartPlayerActiveX"); //设置是否启用低延迟模式
传统监控方案常受限于摄像头接入数量不足、编解码效率低、推流延迟高三大痛点,难以覆盖社区、园区等复杂场景的全点位监控,更无法满足应急事件 “毫秒级响应” 的需求。 ,端到端推流延迟控制在 120~150ms,为各类大场景智能安防 360° 环视需求提供高性价比硬件底座。 应急级低延迟推流:异常事件(如闯入、越界、设备故障)的响应速度直接决定安防效果,端到端延迟需严格控制在 200ms 以内,120~150ms 为最佳区间;3. RTSP 低延迟推流,端到端延迟低至 120ms通过 “采集 - 编码 - 传输 - 解码” 全链路优化,开发板实现极低的推流延迟:视频采集后经 RGA 预处理 + VPU 硬件编码,此阶段延迟仅 80 商场与公共场所安防· 集中处理店铺门口、走廊、消防通道的视频流,支持多画面 2×2/3×4 拼接显示;· 结合 AI 算法实现客流统计、人员拥堵识别,既保障安全,也为运营决策提供数据支持。
1、RTMP视频推流技术具有低延迟的特点RTMP基于TCP协议,在应用层和传输层之间提供了一个可靠的传输通道,从而保证了音视频数据的可靠传输。 同时,RTMP协议通过优化数据传输机制,减少了数据丢失的风险,从而实现了低延迟的音视频传输。这使得RTMP视频推流技术特别适用于对实时性要求较高的场景,如直播互动、远程会议等。 4、视频汇聚EasyCVR安防综合监控平台特点视频汇聚管理:智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中,将前端监控设备统一集中接入与汇聚管理;多协议接入:支持国标GB/T28181协议、 ,视频画面1、4、9、16个可选,支持自定义视频轮播;流媒体分发:能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、ws-fmp4、http-fmp4等视频流 综上所述,RTMP视频推流技术以其低延迟、跨平台支持、稳定性强和良好的交互能力等特点,在实时音视频传输领域具有广泛的应用前景。
录像模块(Record Stack) 推送端录像 SDK 推流过程中同步本地录像,支持 MP4 封装格式,适配证据存储、合规留档等场景。 播放端录像 SDK 支持实时录像、支持封装音视频混流。 下列为基于实际项目场景整理的典型链路组合,便于开发者按需参考部署: 场景一:RTSP 监控画面低延迟播放(安卓 / Windows)适用场景:工业视频监控、智能机器人远程操控、安防可视化管理等 链路组合 :RTSP 视频源 → [RTSP 播放器 SDK] → 安卓 / Windows 播放界面推荐模块配置: 播放端使用 RTSP Player SDK(开启低延迟模式 + 硬解支持) 开启 YUV/RGB 案例4:无人机图传 & 中控平台联动 场景描述:无人机终端需要将视频流低延迟推送回地面控制中心,控制中心进行实时分发、预览和录像。 推荐组合: 推送端:RTMP 推送模块 + SEI 扩展数据注入 地面接收端:RTMP 播放模块 + 播放端录像模块 分发中继端:RTMP 录制 + 前端播放 部署环境:无人机安卓终端 + 控制中心
有用户反馈,现场的设备是运动相机,不支持国标和其他协议接入LiteCVR平台,只能通过rtmp_push推送到LiteCVR平台。 LiteCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发 RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。 LiteCVR平台机制上并不支持rtmp_push协议的级联,但是依然有办法可以实现用户的需求。 因为现场只有这种协议,所以,我们将rtmp_push协议分发出来的RTSP流再接入到LiteCVR平台,转换了一道变成了RTSP接入,再次级联就能成功获取到视频通道了。
技术探讨自2017年我们发布跨平台的低延迟Unity下的RTSP|RTMP直播播放器后,Unity下的直播体验有了质的提升,特别是RTMP,从大家认知里面的几秒钟,直接缩减到100-300ms,满足了绝大多数场景下低延迟的技术诉求 今天就Unity下的RTSP|RTMP的低延迟播放,从以下几个维度,抛砖引玉,做个探讨: 选择合适的播放插件 Unity下的RTSP|RTMP低延迟播放,业内想到最多的是大牛直播SDK的SmartPlayer 低延迟模式:如果插件或 SDK 提供了低延迟模式的选项,一定要开启该模式。不过,有些情况下开启低延迟模式可能会牺牲一定的视频质量或稳定性,需要进行权衡。 优化网络环境网络带宽:确保网络带宽足够大,以支持 RTMP 或 RTSP 流的实时传输。如果是在本地网络环境下,可以使用有线网络连接,避免使用无线网络,以减少网络波动和延迟。 2560*1440分辨率的RTSP流,资源占用如下:总结Windows平台如果对延迟和资源占有等,要求非常高,可以选择合适的低延迟RTSP或RTMP播放插件、优化播放参数设置、优化网络环境、优化代码和渲染流程
随着VR类、游戏类场景的快速发展,开发者对Unity3d低延迟的直播需求量越来越大,前两年,大牛直播SDK发布了Windows平台、Android平台和iOS平台的Unity3d RTMP和RTSP的播放 strs[1]; string param1 = strs[2]; string param2 = strs[3]; string param3 = strs[4] ; string param4 = strs[5]; Debug.Log("[onNTSmartEvent] code: 0x" + Convert.ToString url.StartsWith("rtmp://") && ! 1 : 0); //设置是否启用低延迟模式 NT_U3D_SetMute(player_handle_, is_mute_ ?
众所周知,在安防监控领域中,远程视频监控技术的应用非常广泛。在工地监控中,它可以帮助监管部门和工程项目管理者及时掌握现场施工情况,发现是否存在违规、危险行为,保障工人安全和现场施工质量。 有用户反馈,现场设备使用RTMP协议接入到视频监控汇聚LiteCVR平台,HLS和webrtc格式的视频流都能正常播放,FLV视频流却播放不了,请求我们协助排查和解决。 技术人员立即对现场情况进行排查,通过使用OBS工具推流进行播放,发现OBS推流所有协议都能正常播放。使用海康设备进行推流测试,FLV视频流无法加载。经过分析得知,原来是静音帧导致设备断流所致。 解决上述问题,可在配置文件中修改相关参数,具体配置如下:配置完成后保存并重启,此时设备使用RTMP推流协议进行推流,LiteCVR视频汇聚平台上的FLV视频流已经能正常播放了。
目前几种视频流的简单对比: 协议 httpflv rtmp hls dash 传输方式 http流 tcp流 http http 视频封装格式 flv flv tag Ts文件 Mp4 3gp webm 延时 低 低 高 高 数据分段 连续流 连续流 切片文件 切片文件 Html5播放 可通过html5解封包播放(flv.js) 不支持 可通过html5解封包播放(hls.js) 如果dash文件列表是 http_flv是一个无限大的http流的文件,相比rtmp就只能直播,而rtmp还可以推流和更多的操作。但是http有个好处,就是是以80http通信的,穿透性强,而且rtmp是非开放协议。 将测试:RTMP延迟1s左右,HTTPFLV延迟1-2s左右,可用于对延迟要求比较苛刻的场景,但要注意兼容性,文章最后会说明HTTPFLV兼容性。 ---- HTTP FLV直播Demo: <! 目前在我们平台,ios客户端音视频均同步,安卓客户端音视频不同步,需要设置flvjs的config.fixAudioTimestampGap = false才会音视频同步。
技术背景我们在对接RTSP、RTMP推拉流播放的时候,开发者提到这样的技术诉求,他们在用于安检等场景的时候,采集分辨率甚至需要4K+,帧率需要达到50帧以上,码率也非常高,这就对推流和播放模块,提出了更高的要求 以播放端为例,如果需要播放50帧以上高帧率高码率高分辨率的RTSP或RTMP流,以下是一些关键的步骤和考虑因素:1. 确保你的网络环境能够提供足够的带宽来支持50帧的视频流。延迟:低延迟是直播和实时视频传输的重要要求。4. 播放器配置软硬解码设置:根据设备性能,选择软解或硬解码。 播放器,如果需要低延迟的播放50帧以上的高帧率码率的数据,需要有好的解码性能、做好音视频的同步处理,确保播放器的每个环节可控。 才可以达到高稳定、低延迟的播放体验,感兴趣的开发者,可以单独跟我沟通讨论。
4)视频画面卡顿不流畅,观看效果不好。 5)如果使用基于udp的私有协议,无法被CDN网络支持;如果使用基于RTMP的标准协议,无法获得理想的低延迟。 推流是能否做到低延迟的关键。智能终端所在的环境十分的复杂,要适应这些复杂的环境,要做很多工作。 安卓是谷歌的开源智能终端操作系统,正因为是开源的,所以各个厂商可以做各种大尺度的裁剪和修改。特别是在中国国内市场,安卓机型十分繁多,而且架构设计,硬件质量良莠不齐;安卓操作系统也做了很多的裁剪和修改。 我这里举的安卓智能手机的例子,其实也适用于采用了安卓操作系统的其它智能终端,比如说无人机或者智能电视。 技术上的指标包括但是不限于:1)低延迟;2)流畅性;3)回声消除;4)噪音抑制;5)跨平台;6)全终端兼容;7)海量用户并发;8)无感知扩容能力。
感知侧(机载端) 多模态相机(光学、红外、多光谱、变焦云台等) 视频编码模块(H.264/H.265) 可选大牛直播SDK RTMP推流端或GB28181设备接入端(超低延迟编码与上传) ✅ 2. 2️⃣ 推流稳定性 × 延迟控制:保障关键场景下的任务可靠性 编码灵活切换:支持软编码与硬编码动态,适配不同平台性能特征与功耗预算。 低延迟上传、断点重连 多协议适配模块内置 RTMP / RTSP / GB28181 协议封装器快速接入公安指挥系统、可视化平台或私有云平台 播放 SDK支持跨平台实时播放(Android/iOS/Windows 推送或GB28181接入至国标平台用于视频中继、统一转发、云端转推等复合链路场景 ✅ 所有模块具备良好的跨平台接口封装与嵌入式兼容性,可部署于安卓无人机终端、嵌入式飞控模块或地面/云端平台。 大牛直播SDK 正是这样一个系统级的解决方案 —— 它不仅解决了多源采集、多协议推流、多终端播放等工程难题,更在高可靠性、低延迟控制、平台适配度等方面展现出强大的实用价值。
首先是直播视频采集端,由主播通过摄像头手机等采集设备,采集视音频流,编码后采用RTMP协议1推流到直播流服务器。 而在移动端如果对实时性要求不高,那么采用hls比较好,因为ios包括3.0以上的安卓都原生支持hls协议。 由于目前户外直播和移动互联网很火,所以我们就选择实现在安卓设备上通过摄像头采集视频流(其实是因为我是写安卓的= =)。 播放器 我们在试验的过程中,使用多种播放器和库在全平台实现了rtmp和hls的播放。在网页端使用了videojs,在安卓端使用vitamio。 另外RTMP流的延迟只有3s,比较适合一些实时性和互动性较高的直播。
对于一个流媒体集群系统,也就是cdn系统,能否支持以下业务: 客户送入一个rtmp实时流,譬如秀场,游戏,会议,广电等等。 集群的源站输出hls,适配移动端,包括苹果和安卓。 播放器播放边缘的rtmp或http flv实时流,延迟都在3至5秒内。 能输出http mp3流,适配某些安卓机型,不支持纯音频hls。 支持多源站,也就是客户可以给不同的源站送同一个rtmp流。 能分发hls和rtmp,以及http flv。 对于单源站,集群能支持上层rtmp热备,防止上层节点故障。 对于多源站,集群能支持rtmp,http flv还有hls热备。 对于上行推流加速,推流时卡顿时,能测量推流客户端到边缘节点的带宽,选择合适的节点。 输出的hls切片支持p2p功能,能对接第三方p2p,节约成本。 有各种回调,支持对接第三方的直播流转码,收录系统。 http flv流,在编码器没有推流时,播放器能连接到边缘,而不是404。 http flv流的延迟和热备要求,和rtmp一样。
/jump) 多播能力强 在安防摄像机、NVR、IPC 中几乎是绝对主流 延迟极低:80–150ms 4.2 RTMP:工具链最强的推流协议Republish 到 CDN 的事实标准。 本地录制(MP4/FLV双格式) RTSP/GB28181 → RTMP 转推到 CDN Unity3D RTMP 推流/播放一体化集成 应用行业: 客服/企业直播 移动 App 内嵌直播 录屏推流工具 (4)智慧医疗 手术室实时影像 远程教学可视化 医疗设备端的视频预览 医工系统的 Web 页面监控流 FLV 的优势是延迟低、成本低、设备兼容度高。 理由 4:RTMP 在推流链路的生态地位无人能替代RTMP 是推流行业的“根基”: OBS 全生态 调试工具全靠 RTMP CDN 全量支持 成熟稳定 实现简单 开发成本低 调试透明 而 WHIP /WHEP: 浏览器推流很好 但专业场景完全无法撼动 RTMP 例如: 演播室推流 专业级推流器 多机位云切换 这些场景只会使用 RTMP,不会使用 WHIP 推流。
它通过持久连接、低开销的分片机制,广泛应用于直播推流。 技术原理:RTMP 基于 TCP 协议,通过数据包分片的方式进行音视频流的传输。 广泛支持:几乎所有推流工具(如 OBS、硬件编码器)和流媒体服务(如 YouTube、Twitch)都支持 RTMP。 低开销:分片机制减少了头部开销,使得流的传输更加高效。 通过 RTSP 拉流模块,SDK 能够高效地接入安防视频流并进行实时转发和播放,为监控系统提供更加稳定、低延迟的视频回传和管理能力。 RTMP:高效推流,稳定分发RTMP(Real-Time Messaging Protocol)作为行业中最广泛应用的推流协议,一直以来都是直播推流的首选协议。 低延迟:经过大牛直播SDK的优化,延迟已降至几乎实时,适合低延迟直播推流。
技术实现实际上,大牛直播SDK在2018年就发布了Unity的RTSP|RTMP的播放模块,平台陆续覆盖了Windows、Android、iOS和Linux,Unity下播放RTSP|RTMP流,原理很简单 ,底层原生模块,把RTSP|RTMP流拉过来,做解析解码回调YUV或RGB数据到上层,Unity环境下,做绘制即可。 说来容易,难点在于,如果需要更好的解码效率、资源占用和低延迟,需要确保每个环节都做到极致,总体延迟可以达到200-400ms。 1 : 0); //设置是否启用低延迟模式NT_U3D_SetMute(player_handle_, is_mute_ ? ,实现低延迟的播放,意义很大,比如平衡操控场景下,可以远程操控挖掘机等危险设备,提高工作效率、改善工作环境、降低安全风险、节约人力成本。