首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏smy

    HTTP-FLV直播初探

    目前几种视频流的简单对比: 协议 httpflv rtmp hls dash 传输方式 http流 tcp流 http http 视频封装格式 flv flv tag Ts文件 Mp4 3gp webm 连续流 切片文件 切片文件 Html5播放 可通过html5解封包播放(flv.js) 不支持 可通过html5解封包播放(hls.js) 如果dash文件列表是mp4webm文件,可直接播放 RTMP HTTP FLV则是将RTMP封装在HTTP协议之上的,可以更好的穿透防火墙等。 Http_flv & RTMP 这两个协议实际上传输数据是一样的,数据都是flv文件的tag。 http_flv是一个无限大的http流的文件,相比rtmp就只能直播,而rtmp还可以推流和更多的操作。但是http有个好处,就是是以80http通信的,穿透性强,而且rtmp是非开放协议。 将测试:RTMP延迟1s左右,HTTPFLV延迟1-2s左右,可用于对延迟要求比较苛刻的场景,但要注意兼容性,文章最后会说明HTTPFLV兼容性。 ---- HTTP FLV直播Demo: <!

    8.5K80发布于 2018-04-03
  • 来自专栏RTSP/RTMP直播相关

    Android平台音视频推送选RTMP还是GB28181?

    好多开发者可能会疑惑,走RTMP怎么可能低延迟?网上看到的RTMP推拉流延迟,总归要2-3秒起,如果是自己实现框架,RTMP推拉流逻辑自己实现的话,延迟确实可以控制在毫秒级,这个已无需赘述。 随着无纸化会议、智慧教室、智能化硬件产品的普及,RTMP的技术方案发展一度非常好,有些无人机或智能机器人,都可以自带推送RTMP流数据,配合大牛直播SDK的RTMP低延迟播放器模块,可以实现毫秒级的技术体验 图片我们实现demo的时候,RTMP推送和GB28181都放到一起了,也就是说,可以同时使用RTMP推送和GB28181设备接入,也可以单独使用。 智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等场景等,目前选择GB28181的更多一些,如果主要是上云或者无纸化同屏、智慧教室等,还是 RTMP推送多一些。

    67240编辑于 2023-05-26
  • 来自专栏RTSP/RTMP直播相关

    同样数据源走RTMP播放延迟低还是RTSP低?

    ​背景在比较同一个数据源,是RTMP播放延迟低还是RTSP延迟低之前,我们先看看RTMP和RTSP的区别,我们知道,RTMP(Real-Time Messaging Protocol)和RTSP(Real 传输方式RTMPRTMP通常使用TCP连接来传输数据。RTMP的传输是单向的,信息主要从服务器端传输到客户端。 应用范围RTMPRTMP因其低延迟和高效传输的特点,广泛应用于需要高性能实时流媒体传输的场景,如直播、视频聊天等。 安全性RTMPRTMP提供了相对较低的安全性,因为它主要依赖于TCP协议进行传输,容易受到中间人攻击等安全威胁。然而,通过加密和认证等措施,可以在一定程度上提高RTMP传输的安全性。 其他特点RTMPRTMP还支持音视频同步传输、优先级设置等功能,以确保播放时的音视频同步性和在带宽受限时合理分配传输资源。

    1.5K10编辑于 2024-09-09
  • 来自专栏RTSP/RTMP直播相关

    面向内网无纸化会议智慧教室实时同屏,组播还是RTMP

    单播不再赘述,这里重点介绍下我们的组播技术方案: 组播解决的主要痛点是服务器部署和带宽占用问题,一般来说,内网电子教室/无纸化/实时同屏场景用RTMP推送+RTMP服务器,然后其他端从服务器拉取RTMP 但是,组播的劣势在于,高码率的无线网络环境体验很差,也就是说,如果是Windows或者Android平台推送,Android无线PAD播放,真正好用的,还是RTMP推拉流技术解决方案。 教师端:如教师有移动的PAD,可以直接推到RTMP服务器,然后共享出去; 4. 学生端:直接拉取RTMP流播放即可; 5. 教师和学生互动:学生端如需作为示范案例,屏幕数据共享给其他同学,只需请求同屏,数据反推到RTMP服务器,其他学生查看即可。 6. RTMP延迟大,这种说法,相对片面,好多是由于推拉流模块本身问题导致(如果服务器系NIGNX或SRS,基本可排除服务器转发导致的大时延,不要再赖服务器了),从我们官方和实际场景来看,RTMP整体技术方案

    2.1K30发布于 2020-05-26
  • 来自专栏RTSP/RTMP直播相关

    D3D还是GDI? Windows平台播放RTSP或RTMP渲染模式比较

    好多开发者纠结播放端绘制,是D3D还是GDI,先说结论,Windows平台播放渲染这块,支持D3D的前提下,优先D3D,如果检测到不支持D3D,数据回调上来,GDI模式绘制。

    1.5K00发布于 2020-06-20
  • 来自专栏用户1692782的专栏

    手撕Rtmp协议细节(3)——Rtmp Body

    上一篇讲了RTMP数据包中关于Header的数据组织格式,不过一个完整的RTMP数据包除了Header之外,紧跟着的是RTMP Body,这一篇就继续来说一下RTMP Body的数据组织结构了。 说到RTMP Body的数据包组织格式,就不得不提到AMF。 那么AMF和RTMP Body又有什么关系呢,不才,RTMP数据包的序列化就是按照AMF的格式进行的。 在数据类型后面紧跟着的就是对应类型数据的长度,每一种类型长度字段所占用的字节数可能也不尽相同,比如string类型后面紧跟的是后面字符串的长度,长度占用2个字节,在长度后面就是具体的数值,还是拿string 说了这么多,可能还是有点晕,还是直观的上一张图吧: ? 说完AMF,再回到我们的RTMP Body,RTMP Body就是按照AMF0规范,将数据包进行组织,然后再通过网络发送的。

    3.3K40发布于 2020-05-20
  • 来自专栏用户1692782的专栏

    手撕rtmp协议细节(2)——rtmp Header

    rtmp的协议的数据包,总的来讲分为两大部分,一部分是Rtmp Header,另一部分为Rtmp Body,这一篇我们来主要讲解一下Rtmp Header的组织形式。 3 high level(像connect, create_stream一类消息) 4 control stream 5 video 6 audio 8 control stream 还是看上面抓包的图片 知道了RTMP header的第一个字节的作用以后,接下来我们看下几种不同长度的RTMP Header。 12字节的RTMP Header ? 还是老规矩,借助抓包工具,我们时间分一个RTMP Header的包,还是拿前面举过的列子来分析吧,看下面的图: ? 下面来,详细说说这几个字段是干嘛的: 第一个时间戳,无需多言。 8字节的RTMP Header ? 还是直观点,上一个真实的抓包文件,来分析: ?

    4.4K40发布于 2020-05-20
  • 来自专栏RTSP/RTMP直播相关

    多路RTSP-RTMPRTMP定制版

    大牛直播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] 配置说明: 添加配置项:点击页面“添加”按钮: ² 序号:无需关注,系统自动生成; ² 名称:该路转发配置项的描述信息; ² 拉流地址(必须填):需要转发的RTSP或RTMP 地址; ² 推流RTMP地址:需要转推的RTMP地址; ² 推流播放地址:需要预览的播放地址; ² 音视频转发选项:可选择之转发音频或视频,亦或同时转发音视频; ² 录像参数配置:可选择录制音频或视频,

    3.2K30发布于 2019-09-11
  • 来自专栏全栈程序员必看

    rtmp协议详解_rtmp服务器

    前言 最近在学习rtmp协议,在看官方文档的时候总是懵懵懂懂,硬生生看了两天,现在基本上了解rtmp协议了,想用自己觉得比较清晰的方式来讲解rtmp协议,希望能够对向我一样的初学者有所帮助。 本文将通过以下四部分讲解rtmp协议。 1、消息 2、块 3、rtmp的消息类型 4、实例分析rtmp传输过程 一、消息 消息是rtmp的基本数据单元,服务端和客户端通过在网络上发送RTMP消息进行通讯。 消息格式 RTMP消息头和载荷两部分。 上面已经详解讲解了rtmp的数据格式了,下面来讲解具体的rtmp协议内容。 载荷 块的载荷就是消息的载荷内容。 总结一下:消息是rtmp的基本数据单元,块是用于将消息重新封装在网络上传输。

    3.5K12编辑于 2022-11-01
  • 来自专栏linux驱动个人学习

    RTMP协议

    RTMP消息块流和RTMP一起适用于多样性音视频应用程序,从一对一和一对 多向视频点播服务器直接广播到交互式会议应用程序。 RTMP协议是应用层协议,是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的。 在基于传输层协议的链接建立完成后,RTMP协议也要客户端和服务器通过“握手”来建立基于传输层链接之上的RTMP Connection链接。 2. 3. rtmp协议握手过程 要建立一个有效的rtmp连接,首先经过”握手”阶段,规则如下: 客户端被指定依次向服务器发送C0,C1,C2三个chunk,服务器向客户端发送S0,S1,S2三个chunk ,大小1字节 版本:8比特,C0:客户端需求的rtmp版本,S0:服务器选择的rtmp版本,如图: 4.2 握手第二阶段: 客户端发送C1包,C1包大小1536字节,格式如下图: time:包含了一个时间戳

    1.5K20编辑于 2022-05-10
  • 来自专栏性能优化

    RTMP协议

    RTMP 基础 RTMP 概念 与 HTTP(超文本传输协议)同样是一个基于 TCP 的 Real Time Messaging Protocol(实时消息传输协议)。 当然我们也可以借助一些实现了 RTMP 协议的开源库来完成这一过程。 RTMPDump RTMPDump 是一个用来处理 RTMP 流媒体的开源工具包。 变量 file(GLOB rtmp_source *.c) # 编译静态库 add_library(rtmp STATIC ${rtmp_source} ) 在 中导入这个 CMakeLists.txt #XXX需要链接rtmp库 target_link_libraries(XXX rtmp ...) RTMP 视频数据 RTMP 视频流格式与 FLV 很相似,通过查看 FLV 的格式文档,就能够知道 RTMP 视频数据应该怎么拼接。

    2.2K02发布于 2020-11-24
  • 来自专栏FreeSWITCH中文社区

    mod_rtmp

    基于Flash的实时多媒体通信是基于Adobe的RTMP协议进行的。FreeSWITCH中通过“mod_rtmp”实现了一个基于RTMP协议的Endpoint,可以支持用Flash实现的软电话。 在FreeSWITCH源代码目录中使用如下命令即可安装该模块: # make mod_rtmp-install 在FreeSWITCH控制台上使用“load mod_rtmp”命令加载该模块后, 它将监听RTMP协议默认的1935端口,并等待客户端连接,使用如下命令将可以显示它的该模块的有关状态: freeswitch> rtmp status default tcp:0.0.0.0 :1935 profile 上面的命令显示了有一个RTMP的Profile运行在1935端口上,它也是RTMP服务默认的端口。 当然,不管是新用户还是老用户,随时都可以输入m或1显示本账号的主菜单。

    2.3K20发布于 2020-12-21
  • 来自专栏媒矿工厂

    RTMP:快速深入

    本文来自SF Video Tech,来自Mux的工程师Nick Chadwick带来了一场演讲,帮助我们快速深入的了解RTMP协议。 若干年前,RTMP的延迟很低,已接近成为事实上的标准。 由于RTMP还没有消失,我们仍需花一些时间来了解它是如何工作的。 首先是RTMP的简史。 RTMP可以在一个TCP连接上,多路传输更大的消息,比如视频、消息以及非常短的数据请求如RPC。包级的多路复用允许RTMP在发送长消息的同时向另一端询问问题。 最后介绍了RTMP的消息流,包括文档和代码中规定的消息格式,控制消息,类似binary JSON的AMF消息,连接方式,创建流,发布等细节。 最后,他对RTMP协议的未来展开了设想。 虽然关于RTMP本身的一切仍然会是正确的,但是当下SRT、RIST和Zixi已经取代了很多RTMP工作流程。

    1.1K30发布于 2020-11-02
  • 来自专栏职场亮哥

    rtmp规范1.0

    RTMP(real time messaging protocol)协议 本文为Adobe rtmp规范1.0的中文介绍,其中内容大部分都是翻译自rtmp官方文档rtmp_specification_1.0 RTMP块流 本节介绍实时消息传送协议块流(RTMP块流)。 它为更高级别的多媒体流协议提供复用和打包服务。 RTMP消息格式 本部分主要介绍RTMP消息的格式,在网络实体之间使用较低级传输层(如RTMP块流)传输这些消息。 虽然RTMP旨在与RTMP块流一起使用,但它可以使用任何其他传输协议发送消息。 RTMP消息格式 服务器和客户端通过网络发送RTMP消息以相互通信。 消息可能包括音频,视频,数据或任何其他消息。 RTMP消息有两部分,头部和有效负载。 用户控制消息 RTMP使用消息类型ID 4 作为用户控制消息。 这些消息包含RTMP流层使用的信息。 带有ID 1,2,3,5和6的协议消息由RTMP块流协议使用。

    2K23发布于 2020-10-10
  • 来自专栏SRS开源服务器

    RTMP协议优化

    RTMP协议是基于TCP的协议,将应用层的消息分割成chunk用tcp发送,除了增大chunk到很大的数避免分片譬如60000,还可以优化发包方式,将很多小包组合到一起了一次发送给客户端,避免每个小包分开发送 先看一个没有优化的例子,一个知名的cdn的rtmp的序列,一共花了39个TCP包才开始传输数据包,前面都是磨磨唧唧的rtmp握手和交互: SRS对于RTMP已经做了优化,组合了一些小包,可以减少大约10

    91720编辑于 2022-03-18
  • 来自专栏SRS开源服务器

    复活RTMP:和OBS支持RTMP HEVC新标准

    How to Push HEVC via RTMP by OBS Written by Winlin, chundonglinlin OBS 29.1支持RTMP的HEVC,所以你现在可以用OBS和SRS 现在,RTMP支持HEVC出新标准了,详见Enhanced RTMP。这个标准定义了一个新的codec ID,用于HEVC,即fourCC hvc1, OBS和SRS都支持这个标准。 你可以给FFmpeg打补丁,支持RTMP的HEVC,参考FFmpeg HEVC SRS支持HEVC WebRTC,支持的是Safari浏览器,但SRS不支持RTMP转WebRTC,我们正在开发中了。 One More Thing 往事如烟,6年前给FFmpeg提过FFmpeg RTMP HEVC,但是当时FFmpeg社区说RTMP标准没有支持,所以FFmpeg也不支持。 其实后来给Adobe写过邮件,问过是否RTMP会更新的问题。Adobe回复说正在考虑更新RTMP标准。这一考虑就是6年过去了,不过终于也支持了。

    2.7K20编辑于 2023-04-16
  • 来自专栏RTSP/RTMP直播相关

    如何在RTMP推送端和RTMP播放端支持Enhanced RTMP H.265(HEVC)

    技术实现本文以大牛直播SDK的Windows平台RTMP直播推送和RTMP直播播放模块为例,考虑到老的扩展CodecID 12的场景依然使用,我们添加了个设置接口:RTMP推送端,对应文件为SmartPublisherSDK \nt_smart_publisher_sdk.h: /** disable enhanced RTMP, SDK默认是开启enhanced RTMP的* value: 1:disable, 1,那就是扩展头,Enhanced-Rtmp格式。 推流URL,实现Enhanced RTMP推送,播放端拉流播放,整体延迟如下:可以看到,尽管开启了Enhanced RTMP,整体延迟还在毫秒级。 技术总结鉴于目前RTMP扩展265这块,大多还是用的老的CodecID设置为12的模式,如果需要支持新的Enhanced RTMP,除了推送端和播放端外,RTMP服务端也需要做响应的调整,来适配这种情况

    1.1K10编辑于 2024-03-05
  • 来自专栏测试工程师成长之道

    实时视频RTMP

    实时视频rtmp 背景: 由于经常接触实时视频, 对实时视频略有了解. 实时视频是将视频流实时上传到服务器端进行解析, 由RTMP服务器处理. 安装RTMP 服务器 自己动手搭建一个rtmp, 本文在 Linux环境中搭建 去git上clone 一个下来https://github.com/arut/nginx-rtmp-module 解压后安装即可 /nginx-rtmp-module/test下配置文件nginx.conf, GitHub上就是这个结构, 我们这里不做改动. ? 作用是指定端口号和文件目录 ? 配置文件修改完成后推荐重启server nginx:nginx -s reload 检查RTMP是否生效 浏览器中输入:http://+服务器ip+端口+stat 浏览器中出现下图,则表示rtmp服务生效了 将地址放在VLC network中rtmp://10.10.10.10:8001/live/test 即可查看推流视频 ?

    3.5K52发布于 2019-07-30
  • 来自专栏RTSP/RTMP直播相关

    如何实现Android端获取RTSP或RTMP流转推RTMP

    技术背景 最近不少开发者找到我们,他们在做智能家居等传统行业时,希望实现在Android板件拉取本地的RTSP或RTMP流,然后对外推送RTMP出去,亦或内部启个轻量级RTSP服务,提供个对外对接的媒介 拉流:通过RTSP|RTMP直播播放SDK的数据回调接口,拿到音视频数据; 2. 转推:通过RTMP直播推送SDK的编码后数据输入接口,把回调上来的数据,传给RTMP直播推送模块,实现RTSP|RTMP数据流到RTMP服务器的转发; 3. 整体网络状态反馈:考虑到有些摄像头可能会临时或异常关闭,RTMP服务器亦是,可以通过推拉流的event回调状态,查看那整体网络情况,如此界定:是拉不到流,还是推不到RTMP服务器; 10. 设置RTMP、RTSP拉流的URL; 2. 设置转推RTMP的URL; 3. 实时播放|录像过程中,实时静音、实施快照; 4. 实时播放; 5. 实时录像; 6.

    3.6K10发布于 2021-04-06
  • 来自专栏网络直播系统

    国产化直播系统的搭建

    2) 系统支持标准rtmp、rtsp直播流输入,方便接入各类前端信号。3) 系统具备完善的用户和管理权限,管理资源资源的审核与发布。 4) 系统需支持http_ts,http_flv,HLS,rtmp协议输出。5) 系统可作为资源平台,支持MP4,mpeg,avi等常用视频格式上传。 系统内置流媒体服务,支持≥2000点并发,可接入rtmp、及rtsp视频流。输出rtmp、http_ts、http_flv、HLS视频流,支持H.265的编码视频流。ê27. 易扩展,AURASTONE可以轻易挂载各种外置NAS存储设备技术指标​直播输入协议RTMP/RTSP输出协议RTMP, HTTP-TS, HLS,HTTP-FLV直播转发支持rtmp流转推至其它平台多分辨率直播支持自定义超清 流媒体协议:RTMP RTSP/RTP HLS。12. 视频文件:MKV/WMV/MPG/MPEG/DAT/AVI/MOV/ISO/MP4/RM/3GP。13.

    2K20编辑于 2023-01-03
领券