,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全景实时播放,需要有非常高的延迟要求和性能要求,特别是全景数据源,分辨率和码率都非常高,对解码效率和解码后的数据拷贝投递,提了更高的要求。
传统监控方案常受限于摄像头接入数量不足、编解码效率低、推流延迟高三大痛点,难以覆盖社区、园区等复杂场景的全点位监控,更无法满足应急事件 “毫秒级响应” 的需求。 ,端到端推流延迟控制在 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视频推流技术以其低延迟、跨平台支持、稳定性强和良好的交互能力等特点,在实时音视频传输领域具有广泛的应用前景。
如果需要浏览器场景下有更好的兼容性,对于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"); //设置是否启用低延迟模式
录像模块(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 正是这样一个系统级的解决方案 —— 它不仅解决了多源采集、多协议推流、多终端播放等工程难题,更在高可靠性、低延迟控制、平台适配度等方面展现出强大的实用价值。
对于一个流媒体集群系统,也就是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一样。
因此,低延迟优化不是单纯追求一个漂亮数字,而是让直播更像“正在发生”的现场。要做好私域直播开发,需要从协议选型、推流链路、服务端处理、播放器策略和终端体验几个层面一起考虑。 常见协议中,RTMP 多用于推流,生态成熟,稳定性较好;HLS 兼容性强,适合网页和移动端播放,但因为切片机制,延迟通常偏高;HTTP-FLV 延迟相对较低,适合部分网页直播场景;WebRTC 更适合实时互动 三、推流与服务端:别让链路越走越慢一次直播从摄像头采集到观众看到画面,中间会经过编码、推流、接收、转码、分发、拉流等多个环节。每多一次处理,都可能增加延迟。 低延迟不是让播放器一直紧绷,而是让它在速度和稳定之间保持弹性。用户点开能快速进入,观看中少转圈,互动时不掉队,这就是好体验。五、监控调优:让问题能被看见私域直播上线后,低延迟优化仍然要持续进行。 总结:低延迟是为了让互动更自然私域直播开发中的低延迟优化,不能只靠某一个协议或某一个播放器参数完成。它需要从场景判断开始,再结合协议选型、推流链路、服务端处理、播放策略和数据监控逐步打磨。
技术实现实际上,大牛直播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_ ? ,实现低延迟的播放,意义很大,比如平衡操控场景下,可以远程操控挖掘机等危险设备,提高工作效率、改善工作环境、降低安全风险、节约人力成本。
用户反馈说华为手机(安卓)小程序推流时声音持续卡顿,始终不会恢复且稳定复现,但是 iOS 小程序推流时声音却是正常的。二、疑惑经过一系列常规处理后,问题依然存在。 后来进一步验证发现,不仅是华为手机,所有的安卓手机小程序推流声音都有问题。按照一般的思路,既然 iOS 设备的小程序没有问题,理论上安卓设备的小程序也不应该有问题,那么很可能是后续链路出现了问题。 首先是 RTMP 服务,因为小程序推流是 rtmp 协议的,用来接收小程序上行的媒体流。 反观安卓设备小程序推流的情况,concealedSample/s 数据始终在 2.5k/s 左右,影响了声音的正常播放。 方案1既然是安卓小程序推的音频流有问题,首先想到的就是在源头上解决问题,但是了解小程序直播业务开发的小伙伴一定都知道小程序的底层 SDK 是腾讯提供的,特别是音视频能力,很多接口都没有暴露出来。
/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 推流。