如果rtmp推流地址:
rtmp://服务器地址:rtmp端口/路径/名称
对应的websocket地址:
ws://服务器地址:websocket端口/路径/名称.flv
举例:
live作为路径,s作为流名称,rtmp端口是1932那么rtmp地址如下:
rtmp://127.0.0.1:1932/live/s
对应的websocket的地址:
ws://127.0.0.1:8000/live/s.flv
因为这里8000是websocket的端口
我用的是wireshark捕获的rtmp,
rtmp推流流程:
这里面wireshark判断当前协议是否是rtmp的标志是这个包里是否有Real Timing Message Control
Frame的开头是个网络类型(4byte),通过工具捕获到他的值是2,也就是family:ip,正常的TCP/IP协议
Internet Protocal Version:
这里面包含了帧长度,(帧长度+4byte=包的长度),还包含了,seq,ack,Win数据长度
通过跟踪发现: client向服务器推流到server,包括audio Data,和video Data:
format为1的时候,format为3的时候
客户端(client) Server(server)
msg:client->server
client :seq 17 Server:seq:1
server->client: 第一次握手
client->server:再握手
Server->client:第三次握手
client->Server:rtmp所谓real timing message control来握手
c->s: Handshake C0+C1
s->c:rely(指的是seq,ack的正常服务器应答)
c->s: Handshake S0+S1+S2
s->c:rely
c->s:Handshake:C2
s->c:rely
c->s:set chunk size 4096
s->c:rely
c->s:connect('live')
s->c:rely
c->s:Window Acknowledgement Size:5百万
s->c:rely
c->s:set peer bandwidth:5百万
s->c:rely
c->c:set chunk size 60000
s->c:rely
c->s:rely (只不过是 seq,ack交互,没有实体)
s->c:rely
c->s:releaseStream('1')
s->c:rely
c->s:FCPublish('1')
s->c:rely
c->s:createStream('1')
s->c:rely
c->s:_result()
s->c:rely
c->s:publish('1')
s->c:rely
c->s:onStatus('NetStream.Publish.Start')
s->c:rely
c->s:setDataFrame()
video:avc1 audio:mp4a
s->c:rely
c->s:Audio Data
s->c:rely
c->s:Video Data
VideoData:用的是h264的keyframe
Audio Data:用的是aac的keyframe

rtmp流程解析的更多相关文章

  1. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  2. SSL/TLS算法流程解析

    SSL/TLS 早已不是陌生的词汇,然而其原理及细则却不是太容易记住.本文将试图通过一些简单图示呈现其流程原理,希望读者有所收获. 一.相关版本 Version Source Description ...

  3. TCP/IP协议三次握手与四次握手流程解析(转载及总结)

    原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式  TCP/IP协议的详 ...

  4. Django生命周期 URL ----> CBV 源码解析-------------- 及rest_framework APIView 源码流程解析

    一.一个请求来到Django 的生命周期   FBV 不讨论 CBV: 请求被代理转发到uwsgi: 开始Django的流程: 首先经过中间件process_request (session等) 然后 ...

  5. [MapReduce_3] MapReduce 程序运行流程解析

    0. 说明 Word Count 程序运行流程解析 &&  MapReduce 程序运行流程解析 1. Word Count 程序运行流程解析 2. MapReduce 程序运行流程图

  6. HBase - 数据写入流程解析

    本文由  网易云发布. 作者:范欣欣 本篇文章仅限内部分享,如需转载,请联系网易获取授权. 众所周知,HBase默认适用于写多读少的应用,正是依赖于它相当出色的写入性能:一个100台RS的集群可以轻松 ...

  7. EurekaClient自动装配及启动流程解析

    在上篇文章中,我们简单介绍了EurekaServer自动装配及启动流程解析,本篇文章则继续研究EurekaClient的相关代码 老规矩,先看spring.factories文件,其中引入了一个配置类 ...

  8. Mysql流程解析

    Mysql流程解析 流程图 流程图解析 客户端发送一条sql语句. 1.此时,mysql会检查sql语句,查看是否命中缓存,如果命中缓存,直接返回结果,不继续执行.没有命中则进入解析器. 2.解析器会 ...

  9. Session (简介、、相关方法、流程解析、登录验证)

    Session简介 Session的由来 Cookie虽然在一定程度上解决了"保持状态"的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能 ...

  10. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

随机推荐

  1. Android 13 - Media框架(26)- OMXNodeInstance(三)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 上一节我们了解了OMXNodeInstance中的端口定义,这一节我们一起来学习ACodec.OMXNode.OMX 组件使用的 buffer 到底 ...

  2. 基于FPGA的计算器设计---第一版

    欢迎各位朋友关注"郝旭帅电子设计团队",本篇为各位朋友介绍基于FPGA的计算器设计---第一版. 功能说明: 1. 计算器的显示屏幕为数码管. 2. 4x4矩阵键盘作为计算器的输入 ...

  3. Cmockery学习

    什么是cmockery? 是一个轻量级的C语言单元测试框架 什么是单元测试? 单元测试就是测试一个系统的最小实现单元,往往是函数 示例解析 #include <stdarg.h> #inc ...

  4. MQ的相关概念

    MQ的相关概念 什么是MQ ​ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下 ...

  5. element el-input 去掉边框

    element样式还是蛮好的,只是有时候我们需要做一些调整,比如,el-input 的边框,官网是这样子的 我们需要去掉这个边框 试了常用的:border: none:  以及:outline:non ...

  6. spring eureka服务注册配置,排查服务注册上来了,但是请求没有过来。检查是否服务注册配置错误

    spring eureka服务注册配置,排查服务注册上来了,但是请求没有过来.检查是否服务注册配置错误 解决方法: 去掉该配置eureka.instance.hostname = client微服务的 ...

  7. Puremvc

    Puremvc 框架unitypuremvc PureMVC健壮.易扩展.易维护 Many so-called Model-View-Controller frameworks today seem ...

  8. electron 安装遇到的各种奇怪问题解决

    在国内,electron经常遇到各种问题,导致无法安装 在安装electron官网的快速入门步骤,到npx electron-forge import的时候,遇到了各种问题 npm install - ...

  9. 高通平台UEFI有关介绍

    高通平台UEFI有关介绍 背景 我需要在高通平台上学习点亮LCD,目前通过同事在别的平台的配置代码,我已经将kernel部分的屏幕点亮了:剩余的工作量就在BP侧,也就是系统刚开机的那一段时间.在开发过 ...

  10. Docker Harbor的安装配置

    1.先安装docker-compose curl -L http://github.com/docker/compose/releases/download/1.21.2/docker-compose ...