目前使用版本仅支持rtsp、rtmp等接入上级平台,提供实时预览功能,其他功能需要二次开发。 试用下载地址:GB28181ProxyGateWay
技术背景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播放或推流,对接更容易,因为基本不涉及到页面交互,感兴趣的开发者可以尝试看。
组件分享之后端组件——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 -停止给定流的转码而不删除它
大牛直播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
本篇blog,我们主要讲的是如何把RTSP的流,转GB28181投递到国标平台。 技术实现由于我们已经有非常成熟的RTSP直播播放模块和RTSP转RTMP推送模块,实际上,RTSP转GB28181这块,和转RTMP原理类似,把拉流过来的RTSP音视频数据,回调上来,然后通过推送接口, 超时时间int rtsp_timeout = 10;libPlayer.SmartPlayerSetRTSPTimeout(player_handle_, rtsp_timeout);//设置RTSP 拉流参数,比如缓冲时间,下载速度实时回调间隔,RTSP超时时间、RTSP-TCP/UDP模式切换等。 转GB28181到国标平台侧,涉及到两个模块,RTSP拉流和GB28181设备接入,如果需要本地录像留存数据,还需要有功能齐全的录像模块。
视频监控RTSP转HLS解决方案 介绍 视频监控RTSP转RTMP转HLS解决方案 由于公司业务,需要实现基于WEB访问监控摄像头实时流的预览,经过各种百度,补充了不少相关知识,了解到了很多大神的实现方法 nginx.conf来配置自己的web代理nginx 解压nginx-rtmp-server.zip,这是作为rtmp流服务器用的nginx版本,可自行修改conf/nginx.conf配置 导入monitor-rtsp-hls 至eclipse,右键Main.java运行即可,生产环境可打成jar包来运行也可导出为war包部署tomcat运行 说明: 本服务负责将各个监控设备的实时视频rtsp协议流,转换为rtmp协议流,推送给 http://127.0.0.1:8083/$1; } 3.本服务的ProcessController的index接收到请求,从getPara(0)获取到设备编码,然后根据设备编码从配置文件中找到设备的rtsp
简介 ---- 通过简单的配置,将传统监控行业里面的网络摄像机IPCamera、NVR、DVR等具有RTSP、Onvif协议输出的设备接入到FreeNVR,FreeNVR能够将这些设备的音视频数据进行转换和输出 功能 ---- 通过RTSP协议接入摄像机、NVR 全平台(Web/Android/iOS/微信/移动H5)观看,支持RTMP、HLS、HTTP-FLV、WS-FLV、RTSP协议 支持CDN接入,每路通道可单独配置第三方
技术选型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推送到服务器,可以用第三方库或者工具实现,总体设计架构如下:图片一个好的转发模块,首先要低延迟! 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发;3. 转推RTMP实时静音:只需要在传audio数据的地方,加个判断即可;8. 拉流速度反馈:通过RTSP播放端的实时码率反馈event,拿到实时带宽占用即可;9. SDK技术方案以大牛直播SDK的Windows平台RTSP转RTMP推送C++的demo为例:1. Windows平台上的RTSP转RTMP推送需要一些技术准备和规划,以及对相关协议和工具的理解和使用经验,做个基础的demo,用FFmpeg就可以,但是如果产品话,需要考虑的点实在太多了。
RTSP流到WebBrowser基于Pion的webtc不使用ffmpeg或gstreamer)。 "http_port": ":8083" }, "streams": { "demo1": { "on_demand" : false "url": "rtsp rtplive/470011e600ef003a004ee33696235daa" }, "demo2": { "on_demand" : true "url": "rtsp //admin:admin123@10.128.18.224/mpeg4" }, "demo3": { "on_demand" : false "url": "rtsp
技术背景 前几年我们发布了C++版的多路RTMP/RTSP转RTMP转发官方定制版。 视频转发支持H.264、H.265(需要RTMP服务器或CDN支持扩展H.265),音频支持配置PCMA/PCMU转AAC后转发,并支持只转发/录制视频或音频,RTSP拉流端支持鉴权和TCP/UDP模式设置和 转rtmp程序的时候,比较关注的功能。 , IntPtr.Zero, pull_stream_audio_data_call_back_); int is_transcode_aac = 1; //PCMA/PCMU/Speex格式转AAC 转RTMP推送定制版,目前发布的C#版本,只是做了基础的封装,方便开发者二次定制处理,如果有更复杂的界面和逻辑需求,基于此版本继续开发就好。
转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP数据流到RTMP服务器的转发,同时也可以转发到轻量级RTSP服务和GB28181平台;3. 数据转AAC后转发:考虑到好多监控设备出来的音频可能是PCMA/PCMU的,如需要更通用的音频格式,可以转AAC后,在通过RTMP推送;7. 转推实时静音:只需要在传audio数据的地方,加个判断即可;8. 拉流速度反馈:通过RTSP播放端的实时码率反馈event,拿到实时带宽占用即可;9. ;return;}btnRTMPPusher.setText("停止推送");}});转推轻量级RTSP服务//启动/停止RTSP服务class ButtonRtspServiceListener implements Android平台拉取RTSP流后,有了数据源,开发者可以在一个推送实例中,转推到不同的业务场景,实现高效率低延迟的数据转发。
背景 在事先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”来进行设置:默认没有音频,有需要,勾选上并保存配置即可;
技术实现以大牛直播SDK的多路RTSP转RTMP推送模块为例,首先拉取RTSP流,把未解码的H.264/H.265、AAC/PCMA/PCMU数据回调上来,然后通过调用推送模块的编码后数据接口,同步转发出去 多路RTMP/RTSP转RTMP推送模块功能支持:支持拉取rtmp流;支持拉取rtsp流;Windows支持本地flv文件转发(支持制定文件位置转发,或转发过程中seek);支持本地预览;支持转发过程中 ,拉取的流数据,可以流入到内网RTSP网关模块,对外微型RTSP媒体流服务(RTSP url),便于内网访问;音频:AAC,并支持拉流后的音频(PCMU/PCMA,Speex等)转AAC后再转发;视频: H.264、H.265,支持h265转发(rtsp/rtmp h265转rtmp h265推送);上述实现,2016年我们已经非常成熟,本次要谈的,是开发者实际场景用到的一个技术需求,如何实现视频用RTSP 转RTMP推送的demo界面,可以看到,这个demo,不是单纯的RTSP转RTMP推送的,还可以实现RTSP流获取后,回调上来解码后的数据,然后添加动态水印或其他处理后,把video数据二次编码推送出去
# -*- coding: utf-8 -*- """ A demo python code that .. 1) Connects to an IP cam with RTSP 2) Draws RTP ***************************************** ip="192.168.1.74" # IP address of your cam port=1616 adr="rtsp **************************************************************************** dest="DESCRIBE "+adr+" RTSP \r\nCSeq: 2\r\nUser-Agent: python\r\nAccept: application/sdp\r\n\r\n" setu="SETUP "+adr+"/trackID=1 RTSP .com/ https://github.com/odie5533/Python-RTSP
RTSP对流媒体提供诸如暂停、快进等控制,而它本身并不传输数据。RTSP的作用相当于流媒体服务器的远程控制。 2、RTSP与HTTP的区别与联系 联系:两者都用纯文本来发送消息,且RTSP协议语法也和HTTP类似。RTSP一开始这样设计,也是为了能够兼容使用以前写的HTTP协议分析代码。 区别:rstp有状态,不同的是RTSP的命令需要知道现在处于一个什么状态,也就是说RTSP的命令总是按照顺序来发送的,某个命令总在另外一个命令之前发送。RTSP不管处于什么状态都不会断掉连接。 RTSP版本 状态码 解释 CR LF 消息头 CR LF CR LF 消息体 CR LF 其中RTSP版本一般是RTSP/1.0,状态码是一个数值,200表示成功,解释是与状态码对应的文本解释,详细请见 交互流程 C表示rtsp客户端, S表示rtsp服务端。
上一篇我们简单介绍了rtsp协议,本篇我们来看一下rtsp的消息结构! RTSP消息分为两大类,一类是请求消息(request),一类是回应消息(ressponse)! 说明: 请求消息由方法+URI+RTSP版本开头,之后跟一条或多条消息! URI:表示接收方的地址,如rtsp://192.168.1.201:554 CR:表示回车 LF:表示换行 RTSP使用消息类型和消息体来表示不同类型的消息。 最后一条消息要使用两个CR LF。 我们通过wireshark的抓包来实际看一个RTSP的请求消息: ? 如图中所示,该RTSP请求消息的方法为OPTIONS,请求的目标地址为rtsp://192.17.1.63:554,RTSP的版本为1.0; 接下来包含两种类型的消息,第一种为CSeq表示序列号,本次请求的序列号为
RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。 HTTP与RTSP相比,HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。 因为与HTTP1.1的运作方式相似,所以代理服务器〈Proxy〉的快取功能〈Cache〉也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟 在旧版的chrome上可以通过vlc插件来播放rtsp视频,但是更新到新版的chrome之后要想播放这个rtsp的视频就变得比较麻烦。 服务启动之后通过以下命令,将rtsp转化为rtmp提交到nginx即可: ffmpeg -re -rtsp_transport tcp -i “rtsp://117.134.33.226:9090/dss