解析一下rtmp协议比较难懂的地方】的更多相关文章

官方文档写的过于复杂,这里弄个简单的好入门的.chunk 分基础头,消息头,时间戳,数据部分基础头中第一个字节最高位的两个位是用来设置消息头的四种格式的,和基础头没关系,整个基础头有3个字段的长度存储,是可变的,根据流id变化,先看第一个字节,除去最高位的两个位,剩下6个位还有2个完整的字节,他是这样存储的3-63存在剩下的那6个位中,当第一个字节中的6个位存储的是0或者1或者2时有特殊含义,0代表第二个字节使用了,1代表第3个字节使用了,2代表协议控制或者是命令消息,这个时候第二个字节开启,计…
Adobe公司太坑人了,官方文档公布的信息根本就不全,如果只按照他上面的写的话,是没法用的.按照文档上面的流程,server和client连接之后首先要进行握手,握手成功之后进行一些交互,其实就是交互一些信息以确认大家都是用的同一个协议,交互成功之后就开始传数据了. 首先说下rtmp协议包的格式.握手之后,rtmp传输一个数据默认的长度是128bytes,这128bytes不包括包头的长度,只是数据的长度,文档上面没有说明,很憋了我一段时间,数据超过这个长度之后就要分块,超过128bytes的数…
一.背景 实时消息传输协议(Real-Time Messaging Protocol)是目前直播的主要协议,是Adobe公司为Flash播放器和服务器之间提供音视频数据传输服务而设计的应用层私有协议.RTMP协议是目前各大云厂商直线直播业务所公用的基本直播推拉流协议,随着国内直播行业的发展和5G时代的到来,对RTMP协议有基本的了解,也是我们程序员必须要掌握的基本技能. 本文主要阐述RTMP的基本思想和核心概念,并且辅之以livego的源码分析,和大家一起深入学习RTMP协议最核心的知识点. 二…
—— 2017-2-12 更新RTMP 协议整理了一下,包括rtmp 消息类型,rtmp 如何分块,rtmp分块例子. 用脑图整理了一下,使用Xmind 打开,URL: https://github.com/gezhaoyou/RtmpMindmap rtmp 消息类型 Paste_Image.png rtmp 消息分块 Paste_Image.png 总体介绍 前一段时间写过一篇文章: iOS直播视频数据采集.硬编码保存h264文件,比较详细的记录了在做iOS端进行视频数据采集和编码的过程,下…
Adobe公司的实时消息传输协议 摘要 此备忘录描述了 Adobe公司的实时消息传输协议(RTMP),此协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和互动内容). 目录 1.简介1.1.术语2.贡献者3.定义4.字节序,对齐,和时间格式5.RTMP块流5.1.消息格式5.2.握手5.2.1.握手序列5.2.2.C0和S0格式5.2.3.C1和S1格式5.2.4.C2和S2格式5.2.5.握手流程图5.3.组块5.3.1.块格式5.3.1.1.块的…
RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了. 区别: 1:HTTP: 即超文本传送协议(ftp即文件传输协议). HTTP:(Real Time Streaming Protocol),实时流传输协议. HTTP全称Routing Table Maintena…
Real Time Messaging Protocol(实时消息传送协议协议)概述   实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的私有协议.它有三种变种:   1)工作在TCP之上的明文协议,使用端口1935:   2)RTMPT封装在HTTP请求之中,可穿越防火墙:   3)RTMPS类似RTMPT,但使用的是HTTPS连接:   介绍:   RTMP协议是被Flash用于对象,视频,音频的传输.该协议建立在TCP协议或者轮询HT…
理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了. RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了. 区别: 1:HTTP: 即超文本传送协议(…
翻译:阿宝 更新:2016-09-11 来源:彩色世界(https://blog.hz601.org/2016/07/03/real-time-messaging-protocol/index.html) Adobe公司的实时消息传输协议 摘要 此备忘录描述了 Adobe公司的实时消息传输协议(RTMP),此协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和互动内容). 目录 1.简介 1.1.术语 2.贡献者 3.定义 4.字节序,对齐,和时间格式…
最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx目录. 然后进入该目录去下载搭建环境所需要的一些资源包. 此处在 /root/  目录下新建一个nginx目录即: /root/softsource/ 注意:依赖包和工具包需要下载,请在良好的网络环境下安装,否则在网速不好的情况下容易下漏掉,造成后面安装失败 ====================…
转载自:  http://blog.csdn.net/shangmingyang/article/details/50837852 RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题.随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来.正好最近在从事这方面的…
我写的小工具 rtmp_parse.exe 使用用法如先介绍下: -sps  [文件路径] 解析 sps 数据 文件当中的内容就是纯方本的hexstring: 如 42 E0 33 8D 68 05 00 5B A1 00 00 03 00 ---pps  [文件路径] 解析 pps 数据 文件格式同上-rtmp [文件路径] 解析并保存h264视频流数据(从wireshark抓出来的hexstring)下载地址: 链接:https://pan.baidu.com/s/1RhRKoNqTPHLj…
转自:http://chenzhenianqing.cn/articles/1009.html 写的很好,收藏如下,向作者致敬! 没事碰到了librtmp库,这个库是ffmpeg的依赖库,用来接收,发布RTMP协议格式的数据. 代码在这里:git clone git://git.ffmpeg.org/rtmpdump 先看一段通过librtmp.so库下载RTMP源发布的数据的例子,从rtmpdump中抽取出来.使用的大体流程如下: RTMP_Init主要就初始化了一下RTMP*rtmp变量的成…
RTMP协议研究 1协议研究概述 协议设计和分析一直都是在工作遇到,正好在这里总结一下,说到协议,在这个网络的时代,没有人可以离开它了.他存在我们生活中的任何角落,只不过我们平时,并没有注意到它的存在,可以这么说如果没有协议,我们生活和日常的工作生产都不能进行.如果仔细想想你生活中用到的所有东西,协议已经包含其中.那到底什么是协议呢?说的简单一点就是双方达成的共识,以便更好的交流,理论上协议是什么呢?如果学过<信号与系统>的人都知道有个简单的道理,就是信息在经过一个管道的符号集,到另一个符号集…
1. handshake 1.1 概述 rtmp 连接从握手开始.它包含三个固定大小的块.客户端发送的三个块命名为 C0,C1,C2:服务端发送的三个块命名为 S0,S1,S2. 握手序列: 客户端通过发送 C0 和 C1 消息来启动握手过程.客户端必须接收到 S1 消息,然后发送 C2 消息.客户端必须接收到 S2 消息,然后发送其他数据. 服务端必须接收到 C0 或者 C1 消息,然后发送 S0 和 S1 消息.服务端必须接收到 C2 消息,然后发送其他数据. 握手示意图 . +------…
nginx搭建http和rtmp协议的流媒体服务器 时间:2013-09-23 23:52来源:佚名 作者:本站 举报 点击:232次 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtmp协议:同时打开rtmp的hls功能资料:HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议.HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器.它也很容易使用内容分…
转自<RTMP协议详解(一) (二) (三) > Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器之间音频.视频和数据传输开发的私有协议. 具体使用RTMP的AS代码大概如下: var videoInstance:Video = your_video_instance; var nc:NetConnection = new NetConnection(); var connected:Boolean =…
http://www.cnblogs.com/haibindev/archive/2011/12/29/2305712.html C++实现RTMP协议发送H.264编码及AAC编码的音视频 RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等.RTMP协议…
C++实现RTMP协议发送H.264编码及AAC编码的音视频(转) RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等.RTMP协议可用于实现直播.点播应用,通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServe…
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等.RTMP协议可用于实现直播.点播应用,通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServer,可实现摄像头实时直播.不过,毕竟FMLE应用范围有限,想要把它嵌…
nginx的RTMP协议服务器 by ahuner 通过以下的配置,可以使nginx接收RTMP流,并在web上播放实时视频. 1.openssl安装 nginx需要http_ssl_module模块,需要openssl库. 下载opensll:http://www.openssl.org/ 最新稳定版本:openssl-1.0.1e 修改三个文件的代码,openssl-1.0.1e\test中的md2test.c.rc5test.c.jpaketest.c 将dummytest.c修改为#in…
用Netty解析Redis网络协议 根据Redis官方文档的介绍,学习了一下Redis网络通信协议.然后偶然在GitHub上发现了个用Netty实现的Redis服务器,很有趣,于是就动手实现了一下! 1.RESP协议 Redis的客户端与服务端采用一种叫做 RESP(REdis Serialization Protocol)的网络通信协议交换数据.RESP的设计权衡了实现简单.解析快速.人类可读这三个因素.Redis客户端通过RESP序列化整数.字符串.数据等数据类型,发送字符串数组表示参数的命…
一.概念与摘要 RTMP协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和互动内容).RTMP提供了一套全双工的可靠的多路复用消息服务,类似于TCP协议[RFC0793],用来在一对结点之间并行传输带时间戳的音频流,视频流,数据流.通常情况下,不同类型的消息会被分配不同的优先级,当网络传输能力受限时,优先级用来控制消息在网络底层的排队顺序. 二.RTMP块流 实时消息传递协议块流(RTMP块流).它作为一款高级多媒体流协议提供了流的多路复用和打包服务…
源: RTMP协议与RTSP协议比较 RTSP 与 RTMP 协议 RTSP Spec中文版(1-11) RTSP协议 流媒体之rtsp篇 H264视频传输.编解码----RTSP协议…
文章来源:http://www.cuplayer.com/player/PlayerCode/RTSP/2014/0706/1419.html FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播,我们使用的摄像头是海康的可以通过rtsp协议获取到摄像头的直播数据.所以可以通过 整理了一下要解决如下问题: 1.  摄像头的数据采集. 2.  如何将采集到的数据交给Red5处理. 3.  [FFmpeg]图文介绍windows下实现编译ffmpeg工程的详细步骤 解决方法: 1.  我们使用…
视频播放, 原本是想h5 自带视频播放,使用很简单,结果现实很骨感. <video controls="controls" preload="auto" height="500" width="700"> <!-- Firefox --> <source src="mv.ogg" type="video/ogg" /> <!-- Safari/C…
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写.该协议基于TCP,是一个协议族,常用在视频直播领域.RTMP协议的默认端口是1935. 学习一个协议最好的方法就是调试其通信过程,期间还可以使用wireshark抓包分析.本人在libRTMP的基础上添加了推流部分,并且使得整个过程变得可调试,学习其协议就变得简单多了.配置好的VS2010可调试的libRTMP工程:https://github.com/jiayayao/librtmp.该工程可以…
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等.RTMP协议可用于实现直播.点播应用,通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServer,可实现摄像头实时直播.不过,毕竟FMLE应用范围有限,想要把它嵌…
利用nginx搭建http和rtmp协议的流媒体服务器 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtmp协议:同时打开rtmp的hls功能资料:HTTPLive Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议.HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器.它也很容易使用内容分发网络来传输媒体流.使用ffmpeg来完成对flv.mp4.mp3等格式的转化(点播实…
iOS直播-播放基于RTMP协议的视频 流媒体协议介绍 1. 伪流媒体: 渐进式下载 : 边下边存, 文件会保存 使用http协议,也能够实现视频播放, 也能快进快退等, 体验上跟流媒体很像. 优酷, 土豆.这些网址就在使用这项技术. 特点:实现简单, 成本也低 2 流媒体: 边下边播, 不会保存文件,特点:流过就没有了.常用的协议有两个,分别为HLS (HTTP Live Streaming) 和 RTMP (Real Time Messaging Protocol) HLS (HTTP Li…