简介 通过简单的配置,将传统监控行业里面的网络摄像机IPCamera、NVR、DVR等具有RTSP、Onvif协议输出的设备接入到FreeNVR,FreeNVR能够将这些设备的音视频数据进行转换和输出, 进行全平台、全终端直播分发(PC、Android、iOS、微信、H5),并且FreeNVR能将直播音视频据对接到第三方CDN网络,让传统安防音视频设备享受互联+。 功能 通过RTSP协议接入摄像机、NVR 全平台(Web/Android/iOS/微信/移动H5)观看,支持RTMP、HLS、HTTP-FLV、WS-FLV、RTSP协议 支持CDN接入,每路通道可单独配置第三方 CDN的RTMP、HLS 支持通过FreeNVS进行云端汇聚、流分发 支持简单用户管理 支持录像存储(mp4格式)、按时间录像检索播放(HTTP-MP4) 支持多屏展示 提供第三方RESTful接口 即将发布
大牛直播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
技术背景Unity平台下,RTSP、RTMP播放和RTMP推送,甚至包括轻量级RTSP服务这块都不再赘述,今天探讨的一位开发者提到的问题,如果在Unity下,实现RTSP播放的同时,随时转RTMP推送出去 RTSP转RTMP,在原生环境下老早已经有了,这里,其实就是把原生的挪到Unity即可,相关流程如下:图片技术实现本文以Windows平台为例,在RTSP播放模块的基础上,加个RTSP转RTMP推送模块 player_handle_); videoctrl[sel].player_handle_ = IntPtr.Zero; } videoctrl[sel].is_playing_ = false;}如果需要转RTMP 开始转推RTMP、停止转推:public bool StartPush(int sel, String url){ if (videoctrl[sel].is_pushing_) return 转RTMP推送,相对RTMP、RTSP播放或推流,对接更容易,因为基本不涉及到页面交互,感兴趣的开发者可以尝试看。
不过呢,本篇我们暂时不讨论这个,咱们聊技术,说到直播,rtmp协议依然是主流!不过呢,音视频中,流媒体协议rtsp也占有很大份额!日常生活呢,我们也会遇到一些不同流媒体协议转换的问题! 本篇记录实现一个rtsp转rtmp直播流的程序!闲言少叙,接下来置入主题。 需求 有一个摄像头,比如海康的监控摄像头,可以通过rtsp流的方式访问其视频画面! 实现思路 我们的程序,称之为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
转发模块(Relay Stack) RTSP → RTMP 转推模块 支持多路拉流转发,适配 CDN 或云服务;具备断线重连、URL 动态替换、并发控制能力。 下列为基于实际项目场景整理的典型链路组合,便于开发者按需参考部署: 场景一:RTSP 监控画面低延迟播放(安卓 / Windows)适用场景:工业视频监控、智能机器人远程操控、安防可视化管理等 链路组合 :RTSP 视频源 → [RTSP 播放器 SDK] → 安卓 / Windows 播放界面推荐模块配置: 播放端使用 RTSP Player SDK(开启低延迟模式 + 硬解支持) 开启 YUV/RGB 推荐组合: RTSP 播放模块(解码 RTSP 视频流) RTSP → RTMP 转发模块(编码并转推) 本地录像模块(边转边录) 部署环境:Linux/Android 边缘设备,arm64 架构 推荐组合: 推送端:RTMP 推送模块 + SEI 扩展数据注入 地面接收端:RTMP 播放模块 + 播放端录像模块 分发中继端:RTMP 录制 + 前端播放 部署环境:无人机安卓终端 + 控制中心
实现RTSP摄像头数据转RTMP推送到服务器,可以用第三方库或者工具实现,总体设计架构如下:图片一个好的转发模块,首先要低延迟! 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发;3. 转推RTMP实时静音:只需要在传audio数据的地方,加个判断即可;8. 拉流速度反馈:通过RTSP播放端的实时码率反馈event,拿到实时带宽占用即可;9. SDK技术方案以大牛直播SDK的Windows平台RTSP转RTMP推送C++的demo为例:1. 开始推流到RTMP服务器:推流的流程,如之前所述,调用RTMP推送模块,然后数据源传编码后的音视频数据即可,下图的demo源码,同时展示了,RTSP流获取到后,转推RTMP的时候,数据解密的处理:bool
技术选型RTSP转RTMP推送到流媒体服务器,说起来技术实现不难,简单来说,获取RTSP流后,拿到未经解码的H.264/H.265和audio数据,重新打包RTMP发送出去即可。 需要注意的是,大多RTSP转RTMP模块,需要长时间运行,所以,需要有好多错误处理和自动重连机制,确保转发模块的稳定性。 方案2:SmartRelaySDK大牛直播SDK发布的RTSP转RTMP推送模块(SmartRelaySDK)C#的界面如下:技术设计:1. 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发;3. 转推RTMP实时静音:只需要在传audio数据的地方,加个判断即可;8. 拉流速度反馈:通过RTSP播放端的实时码率反馈event,拿到实时带宽占用即可;9.
有时需要rtsp、rtmp测试地址时,网上搜出来的都是千篇一律的已停用的测试地址,因此在这里维护一个播放列表,随缘更新(发现新的地址可以在评论区留言) 【last update】2022 /07/01 [rtsp] 1、大熊兔 大熊兔最新地址可参考https://www.wowza.com/developer/rtsp-stream-test rtsp://184.72.239.149 (已停用) rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 (可用) 可自行使用live555搭建rtsp服务器 [rtmp] 1、湖南卫视 rtmp://58.200.131.2:1935/livetv/hunantv (已停用) 2、广西卫视 rtmp://58.200.131.2:1935/livetv/gxtv (已停用) 3、广东卫视 rtmp://58.200.131.2:1935/livetv/gdtv (已停用) 4、东方卫视 rtmp://58.200.131.2:1935/livetv/dftv
使用我推荐的这款软件,就可以轻松抓取直播源 支持类型: hello tv直播源抓取 urlhelper 直播源抓取 rtmp直播源抓取 抓取电视直播源m3u8的地址 操作方式: 首先,你需要下载安装一个软件
RTSP H.265到RTMP,首先需要扩展RTMP协议。目前,我国已有相应的推广标准,国内开发商基本上都是按照该协议进行推广的。协议层面的问题已经得到解决。 剩下的关键问题是实现RTMP H.265推送模块。 ? rtmp h265 server 支持,目前常用的nginx-rtmp 和 srs还不支持rtmp h265,需要做些修改。 对于nginx rtmp,由于nginx rtmp 模块代码较少,支持265 很方便,也是增加265类型,解析HEVCDecoderConfigurationRecord,对相应模块做处理即可。 下一个关键点就是解码,目前安卓部分手机已经支持h265硬解,或者用软解也可以。 怎样在视频直播点播平台里实现rtsp h265 转 rtmp?本文也为大家做了简单的介绍,我们的视频流媒体服务器EasyNVR目前也能够实现,感兴趣的朋友可以咨询我们。 ?
技术背景 前几年我们发布了C++版的多路RTMP/RTSP转RTMP转发官方定制版。 视频转发支持H.264、H.265(需要RTMP服务器或CDN支持扩展H.265),音频支持配置PCMA/PCMU转AAC后转发,并支持只转发/录制视频或音频,RTSP拉流端支持鉴权和TCP/UDP模式设置和 转rtmp程序的时候,比较关注的功能。 常规的参数配置,比如推拉流的rtsp rtmp url,如果需要自采集audio,设置采集的audio类型,比如rtsp自带audio、麦克风、扬声器或麦克风扬声器混音。 <? 转RTMP推送定制版,目前发布的C#版本,只是做了基础的封装,方便开发者二次定制处理,如果有更复杂的界面和逻辑需求,基于此版本继续开发就好。
HTTP将数据作为文件处理,所以HTTP不是流媒体协议,RTMP和RTSP是流媒体协议。 RTMP是Adobe的私有协议,未完全公开,RTSP和HTTP是共有协议。 RTMP一般传输flv,f4v格式流,RTSP传输ts,MP4格式流,HTTP没有特定的流。 RTSP一般需要2-3个通道,数据和命令通道分开,RTMP和HTTP在一个通道上传输命令和数据。 RTSP+RTP主要用于IPTV或低延迟场景,比如监控摄像头,传输数据使用的是UDP或TCP,在网络环境比较稳定的情况下,传输效率是比较高的; RTMP主要用于互联网音视频传输,它使用的是TCP传输, 因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。 HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。
简单来说,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网关模块数据源接入一样。 com.gb28181.ntsignalling.Device gb_device = new com.gb28181.ntsignalling.Device("34020000001380000001", "安卓测试设备
技术实现以大牛直播SDK的多路RTSP转RTMP推送模块为例,首先拉取RTSP流,把未解码的H.264/H.265、AAC/PCMA/PCMU数据回调上来,然后通过调用推送模块的编码后数据接口,同步转发出去 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发;3. 多路RTMP/RTSP转RTMP推送模块功能支持:支持拉取rtmp流;支持拉取rtsp流;Windows支持本地flv文件转发(支持制定文件位置转发,或转发过程中seek);支持本地预览;支持转发过程中 H.264、H.265,支持h265转发(rtsp/rtmp h265转rtmp h265推送);上述实现,2016年我们已经非常成熟,本次要谈的,是开发者实际场景用到的一个技术需求,如何实现视频用RTSP 转RTMP推送的demo界面,可以看到,这个demo,不是单纯的RTSP转RTMP推送的,还可以实现RTSP流获取后,回调上来解码后的数据,然后添加动态水印或其他处理后,把video数据二次编码推送出去
RTSP协议转换RTMP直播协议 RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据, 实时转换为RTMP直播协议,推送到NginxRtmp等RTMP服务器,可以在PC上实现flash观看RTSP直播源(比如IPCAM)的需求,也能通过Nginx的HLS协议转换,在手机上观看。 要点分析 首先,程序的主要目的,是从多路RTSP输入源中提取AAC编码的音频和H.264编码视频数据,并生成RTMP数据包,然后组装RTMP推送协议,并发往RTMP服务器。 在发送的过程中,要求可以从RTSP数据源切换到具有相同h.264和aac编码的FLV文件中,并不影响RTMP直播。 因此,本程序的关键点有以下部分: RTSP直播流的读取 H.264和AAC编码数据的分析、处理 FLV文件数据的提取及与RTSP直接的切换和衔接 RTMP数据包封装 RTMP推送协议 有了关键点,就可以一项一项的去分析
在数字化浪潮不断推进的当下,音视频已成为众多行业的“基础设施”:从安防监控、工业视觉,到远程操控、AI 分析、XR 虚拟互动,实时音视频技术不仅要求“能用”,更讲究“稳定、低延迟、可控、易集成”。 在众多音视频方案中,大牛直播SDK作为一款专注于低延迟播放与推流内核的技术型产品,近年来逐渐在政企、工业、安防、AI等垂直领域中崭露头角。 相比于通用播放器(如 VLC、FFplay)或高抽象平台(如云平台服务厂商),大牛在多个技术维度上保持了开放性与可调性:维度能力表现 播放能力支持 RTSP / RTMP / HTTP-FLV 等协议, 四、典型应用场景:深耕政企工业AI方向相较于主打“互动连麦”和“教育直播”的云厂商方案,大牛直播SDK更聚焦于“可控性高、稳定性强、边缘计算友好”的场景,在以下领域中应用广泛:场景技术价值 安防监控系统多路摄像头预览
SRS提供了丰富的接入方案将RTMP流接入SRS, 包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。 SRS还支持将接入的RTMP流进行各种变换,譬如将RTMP流转码、流截图、 转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、 转封装成HDS、转封装成DASH、录制成FLV/MP4。 ,包含有单点服务的开源流媒体服务器,和扩展后的流媒体云平台架构的开源框架,开辟了诸多的优质开源项目,能更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台,更快、更简单地实现最新的移动互联网(安卓 、iOS、H5、微信)流媒体直播与点播的需求,尤其是安防行业与互联网行业的衔接。 打通了视频监控协议栈与直播协议栈,对RTSP/RTMP支持都很完善。 11. 全面支持H265/H264/AAC/G711/OPUS。
在一些特殊应用场景中,可能希望把摄像头或者其他推流视频加入到FreeSWITCH中,我这里提供2个示例供大家借鉴 <action applicaiton=”playback” data=”vlc://rtsp ://xxxx/vod”> 安装 mod_vlc load mod_vlc (安装这个看前面文章介绍) image.png originate vlc/rtsp://192.168.1.100:8554 /vlc &conference(3000) image.png FreeSwitch1.6.18,ESL命令从会议室里呼叫Rtmp电话端 进入会议 (命令格式如: bgapi expand originate ${rtmp_contact(default/1015@192.168.2.32)} &conference(3502@video-mcu-stereo), rtmp电话端主动呼叫会议室号码进入会议可以看到会议视频
二、架构解析:从拉流到转推的全链路设计大牛直播SDK跨平台 RTSP/RTMP 转 RTMP 推送模块的核心设计理念,是将“拉流、处理、转推”三大环节彻底解耦,并通过模块化 API 提供给开发者,从而实现 以下是 大牛直播SDK 跨平台 RTSP/RTMP 转 RTMP 推送模块 与主流开源方案的技术对比:技术维度大牛直播SDK RTSP/RTMP → RTMP 推送模块FFmpeg / GStreamer 带宽优化跨平台多协议拉流转 RTMP,支持 H.265/H.264、音频 AAC 转码,低资源占用降低平台接入门槛,提高带宽利用率,适配多种终端安防平台 RTSP 转 RTMP将监控前端 RTSP 流快速接入互联网直播 目前大牛直播SDK的转发模块在保持低延迟与跨协议能力的同时,支持将 RTSP/RTMP 等流直接转封装为 GB28181 输出,方便对接已有的安防平台或上级视频管理系统。 未来定位在 AI × 视频的时代背景下,大牛直播SDK跨平台 RTSP/RTMP 转 RTMP 推送模块,将定位于 跨平台、低延迟、AI 就绪 的视频链路核心组件,成为连接 采集端 → 传输链路 → AI
除了安卓自带摄像头的数据,还有车载RTSP摄像头,由于系统部署在安卓端,我们初步设计的方案,是走轻量级RTSP服务+内网RTSP网关模块+RTSP直播播放模块,不走RTMP,因为RTMP的话,需单独部署 ,除了H.264外,还支持RTSP/RTMP H.265数据接入。 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。 数据源来自RTSP或RTMP网络流,拉流模块完成编码后的音视频数据回调,然后,汇聚到内置轻量级RTSP服务模块。 网关,是轻量级RTSP服务的扩展,配合RTSP播放器,延迟依然毫秒级,通过拉模式,实现了RTMP或RTSP流数据到轻量级RTSP服务的二次转发,优势非常明显。