专栏首页EasyNVR视频互联网直播/点播流媒体服务器RTMP协议分析及推流过程

视频互联网直播/点播流媒体服务器RTMP协议分析及推流过程

RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。我们视频直播点播流媒体服务器支持RTMP协议流的输出。

我们来看一下RTMP 握手(Handshake)过程:

1.握手开始于客户端发送C0、C1块。服务器收到C0或C1后发送S0和S1。 2.当客户端收齐S0和S1后,开始发送C2。当服务器收齐C0和C1后,开始发送S2。 3.当客户端和服务器分别收到S2和C2后,握手完成。

在实际工程应用中,一般是客户端先将C0, C1块同时发出,服务器在收到C1 之后同时将S0, S1, S2发给客户端。之后客户端向服务器端发送C2块,简单握手完成。

建立网络连接(NetConnection):

  1. 客户端发送命令消息中的“连接”(connect)到服务器,请求与一个服务应用实例建立连接。
  2. 服务器接收到连接命令消息后,发送确认窗口大小(Window Acknowledgement Size)协议消息到客户端,同时连接到连接命令中提到的应用程序。
  3. 服务器发送设置带宽协议消息到客户端。
  4. 客户端处理设置带宽协议消息后,发送确认窗口大小(Window Acknowledgement Size) 协议消息到服务器端。
  5. 服务端向客户端发送“流开始”(Stream Begin)。
  6. 服务器发送命令消息中的“结果”(_result),通知客户端连接的状态。

建立网络流(Create Stream):

  1. 客户端发送命令消息中的“创建流”(CreateStream)命令到服务器端。
  2. 服务器端接收到“创建流”命令后,发送命令消息中的“结果”(_result),通知客户端流的状态。

播放(Play):

  1. 客户端发送命令“播放”给服务器
  2. 接收到播放命令后,服务器发送设置块大小(ChunkSize)协议消息给客户端
  3. 服务器发送“stream begin”给客户端,告诉客户端流的id
  4. 播放命令成功的话,服务器发送命令消息中的“响应状态” NetStream.Play.Start & NetStream.Play.Reset,告知客户端“播放”命令执行成功
  5. 服务器发送客户端要播放的音频和视频数据

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 视频流媒体服务器可以切换分辨率吗?出现花屏现象怎么办?

    随着互联网基础设施建设的发展,4G/5G/NB-IoT各种网络技术的大规模商用,视频随时随地可看、可控的诉求越来越多,互联网思维、架构和技术引入进传统监控行业里...

    EasyNVR
  • 智能云组网在公网服务器固定IP中远程运维的实现案例

    目前,越来越多的企业对智能化办公需求强烈,越来越需要移动办公和资源共享。但要实现这些,需要较高的网络部署成本且运行维护复杂,普通企业和个人难以承担。

    EasyNVR
  • RTMP推流视频流媒体服务如何实现网络传输?

    RTMP是基于TCP协议的多媒体传输协议,因此RTMP服务器本质上是一个TCP服务器,它的逻辑结构基本上和普通的TCP服务器是类似的。我们视频直播点播流媒体服务...

    EasyNVR
  • iOS 架构设计之冗余性思考

    做客户端开发的同学都知道业务需求千变万化,你永远不知道他未来会变化成什么样子。而作为开发人员也绝对不喜欢需求变更。我们极不情愿跟着这纷繁复杂的变化屁股后面,而疲...

    serena
  • WebSocket客户端连接成功后,返回的socket里有用的字段

    handshake - host - WebSocket服务器的IP地址和端口 origin - 客户端web应用的url user-agent:客户端操...

    Jerry Wang
  • 《Redis设计与实现》读书笔记(十八) ——Redis客户端属性设计与原理

    《Redis设计与实现》读书笔记(十八) ——Redis客户端属性设计与原理 (原创内容,转载请注明来源,谢谢) 一、概述 redis服务器是...

    用户1327360
  • APP安全检测手册

    随着运营商新技术新业务的发展,运营商层面对安全的要求有所变化,渗透测试工作将会面临内容安全、计费安全、业务逻辑及APP等方面的挑战。随着运营商自主开发的移动AP...

    FB客服
  • 渗透测试 网站日志溯源技术与密码授权机制

    在众多渗透测试中客户想要了解攻击溯源查找问题,我们Sine安全在日常网站安全检测过程中了解知道黑客是如何攻击和上传木马并进行篡改,以及如何查找日志分析攻击者是通...

    网站安全专家
  • 渗透测试 网站日志溯源技术与密码授权机制

    在众多渗透测试中客户想要了解攻击溯源查找问题,我们Sine安全在日常网站安全检测过程中了解知道黑客是如何攻击和上传木马并进行篡改,以及如何查找日志分析攻击者是通...

    技术分享达人
  • 移动开发者的冬天真的来了

      前端的框架变化实在是太快了,当你还活在JQuery的年代,了解着bootstrap时候,有人已经在玩AngularJS了,而更有人已经开始玩React了,再...

    用户1289394

扫码关注云+社区

领取腾讯云代金券