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保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。 RTSP在体系结构上位于RTP和 RTCP之上。它使用TCP或RTP完成数据传输。 HTTP与RTSP相比。HTTP传送HTML。而RTP传送是多媒体数据。
在一些特殊应用场景中,可能希望把摄像头或者其他推流视频加入到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电话端主动呼叫会议室号码进入会议可以看到会议视频
有时需要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
在一些特殊应用场景中,可能希望把摄像头或者其他推流视频加入到FreeSWITCH中,我这里提供2个示例供大家借鉴 <action applicaiton=”playback” data=”vlc://rtsp q-header-list=&q-url-param-list=&q-signature=6704b2bfd8ef2cb6ba4c1bbb591974f8a6e0dbcd] originate vlc/rtsp q-url-param-list=&q-signature=be08508ecf14b4670143725bd363d81a4aa262e8] FreeSwitch1.6.18,ESL命令从会议室里呼叫Rtmp 电话端 进入会议 (命令格式如: bgapi expand originate ${rtmp_contact(default/1015@192.168.2.32)} &conference(3502 @video-mcu-stereo), rtmp电话端主动呼叫会议室号码进入会议可以看到会议视频。
大牛直播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模式设置和 image] 添加转发项配置信息 [image] 配置说明: 添加配置项:点击页面“添加”按钮: ² 序号:无需关注,系统自动生成; ² 名称:该路转发配置项的描述信息; ² 拉流地址(必须填):需要转发的RTSP 或RTMP地址; ² 推流RTMP地址:需要转推的RTMP地址; ² 推流播放地址:需要预览的播放地址; ² 音视频转发选项:可选择之转发音频或视频,亦或同时转发音视频; ² 录像参数配置:可选择录制音频或视频
近期的SRT、DASH、QUIC等都已经在实际中有所应用,但是这些协议里面应用最成熟,最广的协议还是RTSP/RTP/RTCP、HLS和RTMP协议。 同时这些协议背后解决的问题和设计思想大同小异,所以作为流媒体入门可以从这些协议入手,进行学习和实践。同时这些协议的资料丰富,实验环境也容易搭建。 近期给身边同学分享这块内容时,写了点PPT介绍了下这些协议最基础和最重要的部分,共享出来作为大家学习阅读参考,同时也算流媒体传输协议系列的第一篇文章,后面不定期会就里面内容详细分享。 rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov http://devimages.apple.com/iphone/samples/bipbop ://rtmp.open.ys7.com/openlive/f01018a141094b7fa138b9d0b856507b.hd rtmp://live.hkstv.hk.lxdns.com/live
RTMP通过建立TCP连接来传输音视频数据,具有低延迟和高效率的特点。 RTMP协议可以支持实时的音视频直播和点播,可以在实时传输过程中实现音视频的编码、解码、压缩和传输。 RTSP与RTMP区别 RTSP(Real-Time Streaming Protocol)和RTMP(Real-Time Messaging Protocol)是用于实时流媒体传输的两种协议。 它们有以下区别: 传输层协议:RTSP是基于UDP或者TCP的应用层协议,而RTMP是基于TCP的应用层协议。 RTSP使用TCP来进行控制信令的传输,而多媒体数据则使用RTP协议进行UDP传输;RTMP则将控制信令和多媒体数据都封装在同一个TCP应用层协议中,因此RTMP可以利用TCP特性进行丢包补偿,而RTSP 总结来说,RTSP协议更注重控制和信令传输,支持多种传输协议和编解码器,适用于更多的场景;RTMP协议更适用于实时音视频传输和互动,但受限于Flash的发展,其广泛应用正在逐渐减少。
RTSP协议转换RTMP直播协议 RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据, 要点分析 首先,程序的主要目的,是从多路RTSP输入源中提取AAC编码的音频和H.264编码视频数据,并生成RTMP数据包,然后组装RTMP推送协议,并发往RTMP服务器。 在发送的过程中,要求可以从RTSP数据源切换到具有相同h.264和aac编码的FLV文件中,并不影响RTMP直播。 因此,本程序的关键点有以下部分: RTSP直播流的读取 H.264和AAC编码数据的分析、处理 FLV文件数据的提取及与RTSP直接的切换和衔接 RTMP数据包封装 RTMP推送协议 有了关键点,就可以一项一项的去分析 第4和第5点,可以参照我之前的文章“RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播”的技术方法,来加以实现。
好多开发者,RTSP和onvif,总是搞不清楚区别和相互关系,本文针对此做个简单的技术普及,RTSP(Real-Time Streaming Protocol)和ONVIF(Open Network Video Interface Forum)在视频监控系统和技术标准方面各有其独特的作用和区别,同时它们之间也存在一定的联系。 以下是对RTSP和ONVIF的区别和联系的详细分析:rtsp和onvif区别定义和用途: RTSP:是一种用于在互联网上控制实时多媒体流传输的协议。 rtsp和onvif联系互补性: RTSP和ONVIF在视频监控系统中往往互补使用。ONVIF提供了设备间的互操作性标准,而RTSP则用于控制和管理这些设备上的实时多媒体流传输。 技术总结RTSP和ONVIF在视频监控系统中各有其独特的作用和价值,它们之间既存在区别又相互联系,共同推动着视频监控技术的不断发展和进步,以上抛砖引玉,感兴趣的开发者,可以单独跟我交流。
一、FFmpeg推流环境的区别首先注意RTSP推流地址以“rtsp://”开头,且RTSP地址的默认端口号为8554。而RTMP推流地址以“rtmp://”开头,且RTMP地址的默认端口号为1935。 其次注意FFmpeg从6.1开始对RTMP协议做了增强支持,主要是支持HEVC、VP9和AV1等编码格式通过RTMP协议进行推流,所以建议将编译环境的FFmpeg版本升级到6.1或者更高版本。 二、FFmpeg推流代码的适配FFmpeg推流代码对于RTSP地址和RTMP地址主要有下列两点适配区别:1、调用avformat_alloc_output_context2函数分配音视频文件封装实例的时候 ,第三个输入参数对于RTSP地址而言要填rtsp,对于RTMP地址而言要填flv。 int ret = 0;// 分配音视频文件的封装实例(注意rtmp协议的第三个参数填flv,rtsp协议的第三个参数填rtsp)if (strstr(dest_name, "rtmp") !
好多开发者疑惑,什么是内置RTSP网关,和轻量级RTSP服务又有什么区别和联系? 服务获取公网数据,无需部署单独的服务器,支持RTSP/RTMP H.265数据接入。 设计架构图如下: 二者区别和联系 内置轻量级RTSP服务模块和内置RTSP网关模块共同点: 内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。 数据源来自RTSP或RTMP网络流,拉流模块完成编码后的音视频数据回调,然后,汇聚到内置轻量级RTSP服务模块。
技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒介 拉流:通过RTSP|RTMP直播播放SDK的数据回调接口,拿到音视频数据; 2. 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP|RTMP数据流到RTMP服务器的转发; 3. 设置RTMP、RTSP拉流的URL; 2. 设置转推RTMP的URL; 3. 实时播放|录像过程中,实时静音、实施快照; 4. 实时播放; 5. 实时录像; 6. 注意:“开始推流”和“发布RTSP流”之前,一定要先“开始拉流”,拿到音视频数据。
技术背景在探讨Unity平台RTMP或RTSP直播流数据播放和录制之前,我们先简单回顾下RTSP或RTMP直播流数据在Unity平台的播放流程:通过Native RTSP或RTSP直播播放SDK回调RGB Unity3D环境下,我们之前已覆盖以下模块:Windows平台RTMP直播推送模块(采集Unity窗体、摄像头或屏幕); Windows平台RTMP|RTSP直播播放模块; Linux平台RTMP 直播推送模块(采集Unity窗体、Unity声音); Linux平台RTMP|RTSP直播播放模块; Android平台RTMP直播推送模块(采集Unity窗体、麦克风或Unity声音); Android 平台RTMP|RTSP直播播放模块; iOS平台RTMP|RTSP直播播放模块。 此外,录像和播放,共用一个player实例即可,播放和录像,设计需要考虑逻辑完全分离,比如可只播放或只录制,亦或播放的过程中随时录制,或者录像的过程中随时播放。
除了安卓自带摄像头的数据,还有车载RTSP摄像头,由于系统部署在安卓端,我们初步设计的方案,是走轻量级RTSP服务+内网RTSP网关模块+RTSP直播播放模块,不走RTMP,因为RTMP的话,需单独部署 好多开发者可能对轻量级RTSP服务和内置RTSP网关模块分不清楚。 ,除了H.264外,还支持RTSP/RTMP H.265数据接入。 内置轻量级RTSP服务模块和内置RTSP网关模块共同点:内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,数据汇聚到内置RTSP服务,对外提供可供拉流的 内置轻量级RTSP服务模块和内置RTSP网关模块不同点:数据来源不同1. 内置轻量级RTSP服务模块,数据源来自摄像头、屏幕、麦克风等编码前数据,或者本地编码后的对接数据;2.
好多开发者使用场景,除了实现基础的低延迟RTSP、RTMP播放外,还需要实现RTSP、RTMP流数据的本地录像功能。 本文以大牛直播SDK的Windows平台播放模块为例,介绍下如何实现RTSP、RTMP流录像。 功能设计 [拉流]支持拉取RTSP流录像; [拉流]支持拉取RTMP流录像; [逻辑分离]和播放、转发功能完全分离,支持随时录像; [参数设置]支持设置单个录像文件大小、录像路径等,并支持纯音频、纯视频 、音视频录制模式; [音频转码]支持音频(PCMU/PCMA,Speex等)转AAC后再录像; [265支持]支持RTSP/RTMP H.265录制到MP4文件; [事件回调]从开始录像,到录像结束均有 /rtmp/本地FLV文件(全路径)。
技术背景Unity平台下,RTSP、RTMP播放和RTMP推送,甚至包括轻量级RTSP服务这块都不再赘述,今天探讨的一位开发者提到的问题,如果在Unity下,实现RTSP播放的同时,随时转RTMP推送出去 RTSP转RTMP,在原生环境下老早已经有了,这里,其实就是把原生的挪到Unity即可,相关流程如下:图片技术实现本文以Windows平台为例,在RTSP播放模块的基础上,加个RTSP转RTMP推送模块 ].is_pulling_ = false;}拉流设置的时候,需要注意的是,如果是其他比如PCMA、PCMU的,考虑到通用性,可以转AAC后再回调数据上来,此外,拉流或播放的时候,判断是不是已经打开了RTSP 开始转推RTMP、停止转推:public bool StartPush(int sel, String url){ if (videoctrl[sel].is_pushing_) return 转RTMP推送,相对RTMP、RTSP播放或推流,对接更容易,因为基本不涉及到页面交互,感兴趣的开发者可以尝试看。
背景好多开发者,希望对WebRTC、RTSP、RTMP、SRT有个初步的了解,知道什么场景该做怎样的方案选择,本文就四者区别做个大概的介绍。 以大牛直播SDK的模块为例,Android平台分别为启动了轻量级RTSP服务,和RTMP推流,Windows分别播放RTSP和RTMP流,无论是RTMP还是RTSP的,延迟均在100-150ms。 如果需要进行流媒体播放控制:RTSP是合适的选择,因为它提供了丰富的控制功能。如果用于直播领域:RTMP因其广泛的CDN支持和简单的协议实现,仍然是主流选择。 写到这里,回答下好多开发者的疑惑,为什么WebRTC和SRT这么好,大牛直播SDK只做了跨平台的RTMP推送、RTMP播放、轻量级RTSP服务和GB28181设备接入? 是的,WebRTC和SRT也都有适用的场景,WebRTC已经非常成熟,SRT实际上我们之前也有做过,只是没有对外发布,以目前我们的经历,能把RTMP推送、RTMP播放、RTSP播放、RTSP转RTMP推送
不过呢,本篇我们暂时不讨论这个,咱们聊技术,说到直播,rtmp协议依然是主流!不过呢,音视频中,流媒体协议rtsp也占有很大份额!日常生活呢,我们也会遇到一些不同流媒体协议转换的问题! 本篇记录实现一个rtsp转rtmp直播流的程序!闲言少叙,接下来置入主题。 需求 有一个摄像头,比如海康的监控摄像头,可以通过rtsp流的方式访问其视频画面! 实现思路 我们的程序,称之为rtsp2rtmp,使用该程序实现拉取摄像头rtsp视频流,并将rtmp视频流转换为rtmp视频流,然后推送到直播服务器,直播服务器采用nginx+rtmp_module的方式实现 rtsp2rtmp,使用FFmpeg API来实现! 欢迎star,欢迎使用修改和提交!
,支持RTSP/RTMP H.265数据接入。 内置轻量级RTSP服务模块和内置RTSP网关模块共同点:内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,数据汇聚到内置RTSP服务,对外提供可供拉流的 内置轻量级RTSP服务模块和内置RTSP网关模块不同点:数据来源不同1. 内置轻量级RTSP服务模块,数据源来自摄像头、屏幕、麦克风等编码前数据,或者本地编码后的对接数据;2. 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。 技术设计本文以大牛直播SDK的转发demo基础设计为例,增加了内网RTSP网关模块,由于我们有非常稳定完善的RTSP、RTMP直播播放模块,内网RTSP网关模块,无非就是拉取到RTSP或RTMP流,把编码后的
技术实现 Unity平台下的RTMP推流、RTMP、RTSP播放前几年已经覆盖了Windows、Linux、Android、iOS平台。 RTMP的技术方案,我们之前有探讨过,这里先说轻量级RTSP服务,轻量级RTSP服务,我们的设计是,可以启动一个RTSP Service,然后发布多个RTSP流实例,这个在多实例的设计,非常有价值,简单来说 音视频原始数据采集到后,编码注入RTSP服务和RTMP推送模块。二者可以单独使用,也可同时使用。其中轻量级RTSP服务,可实时查看链接的RTSP会话数。 = "RTSP会话数:" + publisher_wrapper_.GetRtspSessionNumbers(); } } RTMP推送、停止推送: public void btn_start_rtmp_pusher_Click 服务和RTMP推送的区别在于,轻量级RTSP服务不需要单独部署流媒体服务器(类似于网络摄像头),在内网小并发场景下,使用起来非常方便,如果需要上公网,还是需要用RTMP推送,感兴趣的开发者可酌情参考。