文档章节

RTMP规范简单分析

雷霄骅
 雷霄骅
发布于 2014/08/16 13:47
字数 709
阅读 102
收藏 1

3 月,跳不动了?>>>

RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。

1 消息

消息是RTMP协议中基本的数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中一共规定了十多种消息类型,分别发挥着不同的作用。例如,Message Type ID在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的消息,用户一般情况下无需操作其中的数据。Message Type ID为8,9的消息分别用于传输音频和视频数据。Message Type ID为15-20的消息用于发送AMF编码的命令,负责用户与服务器之间的交互,比如播放,暂停等等。消息首部(Message Header)有四部分组成:标志消息类型的Message Type ID,标志消息长度的Payload Length,标识时间戳的Timestamp,标识消息所属媒体流的Stream ID。消息的报文结构如图3所示。

消息

2 消息块

在网络上传输数据时,消息需要被拆分成较小的数据块,才适合在相应的网络环境上传输。RTMP协议中规定,消息在网络上传输时被拆分成消息块(Chunk)。消息块首部(Chunk Header)有三部分组成:用于标识本块的Chunk Basic Header,用于标识本块负载所属消息的Chunk Message Header,以及当时间戳溢出时才出现的Extended Timestamp。消息块的报文结构如图4所示。

 

消息

3 消息分块

在消息被分割成几个消息块的过程中,消息负载部分(Message Body)被分割成大小固定的数据块(默认是128字节,最后一个数据块可以小于该固定长度),并在其首部加上消息块首部(Chunk Header),就组成了相应的消息块。消息分块过程如图5所示,一个大小为307字节的消息被分割成128字节的消息块(除了最后一个)。

RTMP分块

RTMP传输媒体数据的过程中,发送端首先把媒体数据封装成消息,然后把消息分割成消息块,最后将分割后的消息块通过TCP协议发送出去。接收端在通过TCP协议收到数据后,首先把消息块重新组合成消息,然后通过对消息进行解封装处理就可以恢复出媒体数据。


RTMP协议规范(中文翻译):http://download.csdn.net/detail/leixiaohua1020/6563059

本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/11694129

雷霄骅

雷霄骅

粉丝 215
博文 419
码字总数 2129
作品 4
朝阳
程序员
私信 提问
加载中

评论(0)

[总结]RTMP流媒体技术零基础学习方法

本文主要总结一些我在学习RTMP流媒体技术过程中积累的经验。也为后来学习RTMP流媒体技术的人们一个参考。本文力图从简到难,循序渐进的介绍RTMP流媒体技术的方方面面,先从应用说起,逐步深化...

leixiaohua1020
2013/11/18
0
0
[总结]视音频编解码技术零基础学习方法

一直想把视音频编解码技术做一个简单的总结,可是苦于时间不充裕,一直没能完成。今天有着很大的空闲,终于可以总结一个有关视音频技术的入门教程,可以方便更多的人学习从零开始学习视音频技...

leixiaohua1020
2014/06/16
0
0
EasyNVR互联网监控直播分发出RTMP、HLS、HTTP-FLV视频流说明介绍

背景需求 需求比视频流协议更重要,你想要什么,什么可以满足你的需求,这个很大程度上是需求在前,选择使用什么视频流是比较靠后的。 目前Easy系列互联网直播服务将全线支持HLS、RTMP、HTP...

xiejiashu
2019/01/29
0
0
Nginx-rtmp 直播媒体实时流实现

0. 前言   这段时间在搭建一个IPCamera项目服务器。视频点对点通话,客户端会查看设备端的音视频实时流。为了省流量,是通过P2P进行穿透。但是由于NAT设备的原因和IPV4的枯竭。有些设备是无...

无脑仔的小明
2018/08/05
0
0
各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient

之前的一篇博客《网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient》,我们介绍了RTSP流的检测和分析工具EasyRTSPClient,可以说已经是深入了我的...

xiejiashu
2017/12/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

学习之法

少年听雨歌楼上,红烛昏罗帐。 壮年听雨客舟中,江阔云低 断雁叫西风。 而今听雨僧庐下,鬓已星星也。 悲欢离合总无情,一任阶前 点滴到天明。 学者,动心忍性,曾益其所不能。 学习之道,各...

mr_liang0
5分钟前
10
0
让PHP来一次性能测试,内部框架VS Laravel框架?

公司的服务器上安装了两个php版本,版本一:php5.6.30,版本二:php7.2.25 现在我们使用命令行模式分别测试性能 版本一测试结果: 版本二测试结果: 此结果单纯只反映出php版本cpu性能差异,下...

明德君
10分钟前
3
0
异构计算系列(二):机器学习领域涌现的异构加速技术

作者 | 易小萌、郭人通 策划 | 钰莹 “异构计算”(Heterogeneous computing),是指在系统中使用不同体系结构的处理器的联合计算方式。在 AI 领域,常见的处理器包括:CPU(X86,Arm,RISC-...

ZILLIZ
25分钟前
11
0
高度塌陷最终解决方案

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>高度塌陷最终解决方案</title> <style> .box1{ border:solid tomato 10px; } .box2{ width: 200px; height: 200px;......

布鲁斯里
26分钟前
13
0
对于电商来讲应用交付厂商哪家好?F5怎么样?

     “双十一”,每年成交量都很大,在短短2分05秒,可能突破100亿元。这对电商平台一年一度的高并发流量承载能力是考验,因为电商平台可能会遇到诸多问题,如:7×24小时在线、移动用户...

梅丽莎好
27分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部