前言 项目中遇见一些小厂家摄像机不支持GB28181对接上级平台,或者相机已经接入上级平台了,那么还想再接入其他平台,另外有些视频平台不支持国标级联上级平台,那么这时就需要本服务GB28181ProxyGateway 功能 基于GB28181,同时支持2011、2016版协议。目前使用版本仅支持rtsp、rtmp等接入上级平台,提供实时预览功能,其他功能需要二次开发。
或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。 本篇blog,我们主要讲的是如何把RTSP的流,转GB28181投递到国标平台。 技术实现由于我们已经有非常成熟的RTSP直播播放模块和RTSP转RTMP推送模块,实际上,RTSP转GB28181这块,和转RTMP原理类似,把拉流过来的RTSP音视频数据,回调上来,然后通过推送接口, 这块介绍过,再说数据源的问题,由于本次是拉取RTSP流转推GB28181平台,拉取RTSP流的时候,设置音视频数据回调。 转GB28181到国标平台侧,涉及到两个模块,RTSP拉流和GB28181设备接入,如果需要本地录像留存数据,还需要有功能齐全的录像模块。
背景 在事先Android平台RTSP、RTMP转GB28181网关之前,我们已经实现了Android平台GB28181的接入,可实现Android平台采集到的音视频数据,编码后,打包按需发到GB28181 简单来说,Android平台RTSP、RTMP转GB28181网关平台,是GB28181设备接入模块的一个扩展,由拉流端、GB28181接入端两个模块组成。 轻量级RTSP服务模块、RTSP|RTMP转GB28181网关模块和内置RTSP网关模块的区别和联系: 内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者 RTSP|RTMP转GB28181网关模块,实现的是音视频数据的转发,类似于RTSP|RTMP转RTMP推送模块,把本地数据源,对接到GB28181服务平台或RTMP服务平台。 数据源来自RTSP或RTMP网络流,拉流模块完成编码后的音视频数据回调,然后,汇聚到内置轻量级RTSP服务模块。RTSP|RTMP转GB28181网关模块,和内置RTSP网关模块数据源接入一样。
1、需求背景目前不是所有的直播推流设备都支持GB28181的国标注册,有的只能输出直播流,有的只能支持RTSP的推流。 那么,项目中如何把 rtsp推流或直播流转成GB/T281812、开启RTSP2.1、基础配置配置RTSP端口3、获取RTSP推流地址3.1、RTSP推流地址格式示例:rtsp://192.168.2.135 :1554/stream_3通道6:rtsp://192.168.2.135:1554/stream_64、配置设备推流将上面生成的rtsp推流地址,配置到无人机 或是 推流的设备上面5、配置拉转RTSPLiveNVR 后台管理页面-》通道配置-》编辑 通道配置,可以配置拉转的直播流地址5.1、直播流地址格式拉流地址格式 rtsp://127.0.0.1:1554/stream_通道号127.0.0.1 是服务器本地IP 6、配置级联到GB28181国标平台具体参见:LiveNVR支持RTSP/RTMP/HLS/HTTP-FLV流转换成GB28181输出级联接入到国标平台
转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发,同时也可以转发到轻量级RTSP服务和GB28181平台;3. 数据转AAC后转发:考虑到好多监控设备出来的音频可能是PCMA/PCMU的,如需要更通用的音频格式,可以转AAC后,在通过RTMP推送;7. 转推实时静音:只需要在传audio数据的地方,加个判断即可;8. 拉流速度反馈:通过RTSP播放端的实时码率反馈event,拿到实时带宽占用即可;9. ;return;}btnStartStopRecorder.setText("停止录像");}}});转推GB28181平台class ButtonGB28181AgentListener implements Android平台拉取RTSP流后,有了数据源,开发者可以在一个推送实例中,转推到不同的业务场景,实现高效率低延迟的数据转发。
例如,一个城市的公安监控系统可以通过 GB28181 标准将不同区域、不同厂家的监控设备连接起来,实现统一的监控和管理。 开发模块大牛直播SDK推出的Android平台GB28181接入SDK(SmartGBD),可实现不具备国标音视频能力的 Android终端,通过平台注册接入到现有的GB/T28181—2016服务,可用于如执法记录仪 、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景,可能是业内为数不多功能齐全性能优异的商业级水准GB28181接入SDK。 或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。 五、开发模块RTMP的技术方案,大牛直播SDK于2015年发布了RTMP推流和RTMP播放模块,甚至还有RTSP转RTMP推送的,以Windows为例,我们实现的功能如下:RTMP直播推送模块音频编码:
1、背景说明需要将传统的安防监控摄像头的RTSP流,转换成GB28181级联到国标平台。需要将视频文件流,转换成GB28181级联到国标平台。 需要将无人机的RTMP推流,转换成GB28181级联到国标平台。需要将设备的RTSP推流,转换成GB28181级联到国标平台。类似这般,许多非国标流转国标流的需求的时候,我们该如何解决呢? LiveNVR 可接入传统监控行业里面的高清网络摄像机的RTSP直播流,及 RTMP、HTTP-FLV、M3U8等其它直播流, 实现互联网直播分发;可分发多种格式流,支持GB28181注册级联到第三方国标平台 、IPC等设备RTMP推流转码分发WEB视频播放也可以GB28181输出5.2、 RTSP推流转GB28181LiveNVR 可接收RTSP推流RTSPServer可以转GB28181输出5.3、视频文件转 GB28181LiveNVR拉转视频流媒体服务如何配置本地视频文件转无插件直播流输出GB28181输出
SDP的字段非常多,在不同场景下约束不同,下面看下在RTSP、国标SIP协议、WebRTC中的具体示例。 示例分析: RTSP中的SDP: RTSP即Real Transport Stream Protocol实时流媒体传输协议,一般和RTP、RTCP搭配使用,该协议用来进行媒体的控制和会话的建立,比如开始 这里只探讨下RTSP协议的创建媒体会话时,用SDP交互会话信息时的情况,顺便给大家一个测试地址,然后用VLC播放视频抓包就可以学习RTSP、RTP协议,RTSP协议默认端口554,测试地址: rtsp: 97,帧宽和高分别为240*160 a=framerate:24.0 解释:最大帧率速度为24帧/s a=control:trackID=2 解释:通过媒体流1来发送视频; ---- 基于SIP协议国标GB28181 同时在GB28181协议中,由于各个厂家对有些字段理解不规范,导致有歧义经常会出现连接摄像头失败,拉流失败等问题,需要在实践中解决和兼容。
RTSP → GB28181 转发模块 兼容国标协议,支持 SIP 注册、设备接入、音视频回传,适用于边缘设备转接公安/政务平台。 ✅ 附加能力:边转边录、转发状态回调。 (RTMP / 国标 SIP Server)推荐模块配置: 多路拉流同时转发,支持 RTMP 和 GB28181 双向通道配置 同步边转边录,便于后续回放与存证 支持设备端配置 UI/控制接口 场景四 Server SDKAndroid / Linux / Windows–RTSP硬编 / 软编–是(推送端录像)支持 ONVIF / VLC 客户端访问可集成到设备端作为服务RTSP → RTMP 转推 或嵌入式设备仅支持 RTSP 输出,需快速转推至公网 CDN(如阿里云、腾讯云、私有 SRS 等)供前端 Web/小程序播放。 推荐组合: RTSP 播放模块(解码 RTSP 视频流) RTSP → RTMP 转发模块(编码并转推) 本地录像模块(边转边录) 部署环境:Linux/Android 边缘设备,arm64 架构
场景差异好多开发者纠结,到底使用GB28181还是RTSP,这里简单的谈下二者使用场景区别,GB28181和RTSP(Real-Time Streaming Protocol)是用于视频监控和流媒体传输的两种不同的协议 GB28181可实现监控视频的实时传输、回放、点播和存储等功能,适用于大规模的视频监控系统,如城市安防、企事业单位、交通监控等场景。相比之下,RTSP是一种用于流媒体传输控制的应用层协议。 技术实现下面探讨下,大牛直播SDK在GB28181和RTSP主要实现的功能模块。 先说Android平台GB28181设备接入模块,我们实现的功能如下:Android平台GB28181设备接入模块 [视频格式]H.264/H.265(Android H.265硬编码); [音频格式] H.265流录制,支持PCMA/PCMU转AAC后录制,支持设置只录制音频或视频)。
(4) 与其他模块的协同 RTSP ↔ RTMP 转发:实现 RTSP 拉流 → 解码 → RTMP 推送,用于摄像头到云端中继; RTMP ↔ GB28181 桥接:将 RTMP 输出转封装为 PS (2) 媒体封装与流桥接 RTSP/RTMP→PS 转封装模块 从现有流(RTSP 拉流或 RTMP 推流)中提取音视频帧,重新封装为 PS 包; 自动插入 PSM/PES Header 与系统时钟(SCR (4) 模块协同与场景化应用 与 RTSP 模块 协作:从摄像头拉流 → 转 PS → RTP 推送 → 注册平台; 与 RTMP 模块 协作:RTMP 推流 → 转 GB 通道 → 平台实时播放; 设计初衷:从多协议到单体系在多数实时视频系统中,RTSP、RTMP 与 GB28181 往往各自独立存在。RTSP 用于设备采集与控制、RTMP 用于推流分发、GB28181 则服务于政企平台接入。 服务节点内网分发、实时转推Input: RTSP → Core → Output: RTSP/RTMP协议网关(RTSP↔RTMP↔GB28181)协议桥接与中继RTSP/RTMP/GB28181 +
技术背景Unity平台下,RTSP、RTMP播放和RTMP推送,甚至包括轻量级RTSP服务这块都不再赘述,今天探讨的一位开发者提到的问题,如果在Unity下,实现RTSP播放的同时,随时转RTMP推送出去 RTSP转RTMP,在原生环境下老早已经有了,这里,其实就是把原生的挪到Unity即可,相关流程如下:图片技术实现本文以Windows平台为例,在RTSP播放模块的基础上,加个RTSP转RTMP推送模块 后再回调数据上来,此外,拉流或播放的时候,判断是不是已经打开了RTSP URL,确保同一路流在一个实例内,不要开两个实例,占用额外的资源。 开始转推RTMP、停止转推:public bool StartPush(int sel, String url){ if (videoctrl[sel].is_pushing_) return 转RTMP推送,相对RTMP、RTSP播放或推流,对接更容易,因为基本不涉及到页面交互,感兴趣的开发者可以尝试看。
RTMP + HEVC/H.265,在同等码率下更高画质或更低带宽; 轻量转发/小型服务:端侧或边缘即可完成发流/转封装/转发,减少对集中式流媒体的依赖; GB28181 对接:适配政企安防汇聚、 /边缘的低延迟回传与本地监看; RTMP:公网侧旁路观看/教学/异地协作(Enhanced RTMP + HEVC); 轻量级RTSP服务/RTSPtoRTMP Relay:端侧或边缘转封装/转发, 协议选型矩阵(RTSP / RTMP / GB28181)场景网络目标推荐说明远程操控/巡检(专网)局域网/专线极低延迟、稳态RTSP 播放UDP 优先,必要时 TCP;现场监看/边缘推理常用跨区域分发 RTSP 服务端侧即可发流/转封装/转发,贴近边缘后处理/AI 采样混合在线+回溯RTSP/RTMP + 录像片段抽取、快照、异步推理大牛直播SDK播放器功能附录:如不单独说明,系Windows、Linux 以 大牛直播SDK(SmartMediaKit) 为基座,通过 RTSP 低延迟/轻量服务/RTMP 公网分发(Enhanced RTMP + HEVC)/GB28181 对接/录制与回溯 等模块化能力
组件分享之后端组件——rtsp转HLS使用的服务rtsp-stream 背景 近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件 组件基本信息 组件:rtsp-stream 开源协议:MIT License 使用说明:https://github.com/Roverr/rtsp-stream/blob/master/docs/ api/README.md 内容 本次分享的组件是rtsp转HLS使用的服务rtsp-stream rtsp-stream 是一种易于使用、开箱即用的解决方案,可以集成到现有系统中,解决无法在浏览器中本地播放原始 rtsp 流的问题。 该组件库提供了四个核心接口 /start -开始对给定的原始rtsp流进行转码 /stream/{id} -用于获取HLS视频块的静态文件 /list -列出可用的流 /stop -停止给定流的转码而不删除它
三种低延迟播放协议,配合可调节的缓冲策略与丢帧机制,实现毫秒级响应; 中转与协议转换类:包括轻量级 RTSP 服务 SDK、多路 RTSP 转 RTMP 推送 SDK、GB28181 设备接入 SDK 中转与协议转换层 对应模块:轻量级 RTSP 服务 SDK、多路 RTSP 转 RTMP 推送 SDK、GB28181 设备接入 SDK 职责:在不同网络环境、协议栈和业务平台之间进行高效的流转与转换 编码与传输策略协同编码结构(如 GOP、B 帧、关键帧间隔)决定了首屏和恢复速度,传输策略(如 RTSP、RTMP、HTTP-FLV、GB28181)决定了网络波动下的稳定性。 组合方案: 推流:RTMP Push SDK(可配合 SRT 网关) 中转:多路 RTSP 转 RTMP 推送 SDK 播放:HTTP-FLV Playback SDK(Android/Unity3D 组合方案: 推流:RTSP Push → GB28181 设备接入 SDK 播放:平台分发(或客户端集成 RTSP Playback SDK) 附加:SEI Extended Data SDK 携带
大牛直播SDK(Github)多路RTMP/RTSP转RTMP转发软件,系原有转发SDK基础上,官方推出的Windows平台定制版。 如监控类摄像机、NVR等,通过厂商说明或Onvif工具,获取拉流的RTSP地址,图形化配置,完成拉流转发等操作,轻松实现标准RTMP服务器(或CDN)对接。 视频转发支持H.264、H.265(需要RTMP服务器或CDN支持扩展H.265),音频支持配置PCMA/PCMU转AAC后转发,并支持只转发/录制视频或音频,RTSP拉流端支持鉴权和TCP/UDP模式设置和 或RTMP地址; ² 推流RTMP地址:需要转推的RTMP地址; ² 推流播放地址:需要预览的播放地址; ² 音视频转发选项:可选择之转发音频或视频,亦或同时转发音视频; ² 录像参数配置:可选择录制音频或视频 开机后自动启动(可配置开机自动启动配置名); [image] 录像全局配置: ² 支持设置录像存储目录; ² 支持设定单个录像文件大小; ² 支持设置文件是否增加日期、时间; ² 支持设置是否音频自动转AAC
不过呢,音视频中,流媒体协议rtsp也占有很大份额!日常生活呢,我们也会遇到一些不同流媒体协议转换的问题!本篇记录实现一个rtsp转rtmp直播流的程序!闲言少叙,接下来置入主题。 需求 有一个摄像头,比如海康的监控摄像头,可以通过rtsp流的方式访问其视频画面!需要将其画面转换为rtmp协议,并实现直播! 实现思路 我们的程序,称之为rtsp2rtmp,使用该程序实现拉取摄像头rtsp视频流,并将rtmp视频流转换为rtmp视频流,然后推送到直播服务器,直播服务器采用nginx+rtmp_module的方式实现 rtsp2rtmp,使用FFmpeg API来实现! m_nRet < 0) { break; } av_packet_unref(&pkt); github传送门 https://github.com/mlfcjob/Rtsp2Rtmp.git
在这一转型中,“空中数据”已不再是后处理的素材,而是成为驱动业务流程实时决策的关键信息源。 协议多样性支持:原生支持 RTMP、RTSP、GB28181主流音视频协议,兼容公网平台、公安网指挥系统与工业私有协议平台。 转RTMP或GB28181支持将前端RTSP流数据转RTMP推送或GB28181接入至国标平台用于视频中继、统一转发、云端转推等复合链路场景 ✅ 所有模块具备良好的跨平台接口封装与嵌入式兼容性,可部署于安卓无人机终端 转RTMP或GB28181模块] ↓ ↑[录像模块] ← [播放 SDK]️ 1. /RTMP 双协议上传 + 本地录像 + AI 视频接口回调 应用特征总结能力维度优势体现⚙ 多场景适应覆盖电力、农业、公安、城市、应急等领域 多协议融合支持 RTMP/RTSP/GB28181协议混合部署
教育:通过GB28181协议,用户可以进行远程视频会议和教学,为学生提供更为灵活的学习方式。医疗:GB28181可以用于医疗领域的视频监控,提高医疗安全和管理效率。 技术实现本文以Android平台GB28181设备接入模块为例,谈谈具体实现,还有如何对外输出RTSP流。 或RTMP流并接入至GB28181平台(比如其他IPC的RTSP流,可通过Android平台GB28181接入到国标平台)。 Android平台GB28181设备接入模块,除了上述的功能点外,我们遇到的诉求有,如何同时对外输出RTSP,供如内网平台预览播放? 这里就提到了轻量级RTSP服务,音视频数据源过来后,编码分别注入GB28181模块和轻量级RTSP服务模块,如果需要做到对外输出RTSP流,只需要启动RTSP服务,然后发布RTSP流即可,具体的操作如下
平台各具特点,可支持多类型的设备、多协议接入,包括国标GB28181协议、RTMP/RTSP/Onvif协议、海康EHOME、海康SDK、大华SDK等,在视频流分发上,能支持全终端、全平台的视频流输出, 包括RTSP、RTMP、FLV、HLS、WebRTC等格式。 有用户反馈,EasyRTMPLive拉转推硬件设备在访问19600端口时,返回404的错误,于是请求我们协助。 解决方法如下:1)使用加密机搜索工具,搜索到指定的硬件设备ip地址;2)根据ip地址+端口访问拉转推服务的Web页面;3)若ip+端口无法访问到Web页面,可以在后缀添加/index.html访问拉转推服务 ;4)成功访问EasyRTMPLive拉转推设备的Web页面,并且正常推流使用。