RTMP时间戳

基本介绍

  • RTMP中时间戳的单位为毫秒(ms)
  • 时间戳为相对于某个时间点的相对值
  • 时间戳的长度为32bit,不考虑回滚的话,最大可表示49天17小时2分钟47.296秒
  • Timestamp delta单位也是毫秒,为相对于前一个时间戳的一个无符号整数; 可能为24bit或32bit

Message时间戳

Timestamp:
Four-byte field that contains a timestamp of the message.
The 4 bytes are packed in the big-endian order.

  • RTMP Message的时间戳 4个字节
  • 大端存储

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:

免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

Chunk时间戳

Chunk Format

用wireshark转包分析发现,rtmp流的chunk视频流(或音频流)除第一个视频时间戳为绝对时间戳外,后续的时间戳均为timestamp delta,即当前时间戳与上一个时间戳的差值
比如帧率为25帧/秒的视频流,timestamp delta基本上都为40ms。

通常情况下,Chunk的时间戳(包括绝对时间戳和Timestamp delta)是3个字节。
但时间戳值超过0xFFFFFF时,启用Extended Timestamp(4个字节)来表示时间戳

通常情况下 -- 3字节

三字节的timestamp可能为绝对timestamp或timestamp delta。

timestamp delta (3 bytes):
For a type-1 or type-2 chunk, the difference between the previous chunk’s timestamp and the current chunk’s timestamp is sent here.
If the delta is greater than or equal to 16777215 (hexadecimal 0xFFFFFF), this field MUST be16777215, indicating the presence of the Extended Timestamp field to encode the full 32 bit delta. Otherwise, this field SHOULD be the actual delta.

timestamp delta的值超过16777215 (即16进制的0xFFFFFF)时,这时候这三个字节必须被置为: 0xFFFFFF,以此来标示Extended Timestamp(4字节)将会存在,由Extended Timestamp来表示时间戳。

时间戳超过0xFFFFFF时 -- 4字节

  • Extended Timestamp为4个字节。

  • 当Chunk Format中Message Header中的三字节时间戳的值为0xFFFFFF,即时间戳或timestamp delta超过16777215 (0xFFFFFF)时,Extended Timestamp才存在。

六、RTMP协议 时间戳相关推荐

  1. 流媒体-RTMP协议-rtmpdump-flv封装解析(一)

    流媒体-RTMP协议-rtmpdump-flv封装解析(一) 流媒体-RTMP协议-librtmp库学习(二) 流媒体-RTMP协议-librtmp库学习-c++多线程实现rtmp推流flv文件(三) ...

  2. (转)RTMP协议从入门到放弃

    转载自:  http://blog.csdn.net/shangmingyang/article/details/50837852 RTMP协议是Real Time Message Protocol( ...

  3. (转)rtmp协议简单解析以及用其发送h264的flv文件

    Adobe公司太坑人了,官方文档公布的信息根本就不全,如果只按照他上面的写的话,是没法用的.按照文档上面的流程,server和client连接之后首先要进行握手,握手成功之后进行一些交互,其实就是交互 ...

  4. 直播推流实现RTMP协议的一些注意事项

    018年8月4日第三次更新,详细介绍了RTMP协议与遇到的坑,另外纯Java重写了RTMP协议,做了个Android 推流项目,包含安卓相机采集,编码和RTMP推流,上传到github了. 项目地址: ...

  5. RTMP协议从入门到放弃

    RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing) ...

  6. RTMP协议中文翻译(首发)(转)

    Adobe公司的实时消息传输协议 摘要 此备忘录描述了 Adobe公司的实时消息传输协议(RTMP),此协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和 ...

  7. RTMP 协议包头参考

    为了方便查阅,把RTMP协议的包头记录下来,以便参考: RTMP协议在握手完成以后,服务器与客户端通过包(chunk)来进行信令交换. 包(thunk)格式如下 每个包有包头与数据组成.而包头自身是由 ...

  8. 前端播放rtmp协议的视频流文件

    前端播放rtmp协议的视频流文件 最近公司的项目中需要在大屏可视化的页面中的一个位置是视频监控的,需求大概是这样的: 大屏右下角布局中有六个div,每个可以实时播放监控视频 点击某个视频全屏放大, 自 ...

  9. rtmp协议在p2p流媒体系统中的应用(论文转载)

    ZHANG Chong, YANG Can,  YANG Ze-quan, HUANG Hui -ze (South China University of Technology, Guangzhou ...

最新文章

  1. C语言实现SHA-1
  2. 超详细!百度富媒体检索比对系统的关键技术
  3. Sentinel 1.8.0 年度版本发布,熔断降级重构升级!
  4. 送给520的产品经理
  5. c语言if判断文件_例8:C语言实现输入一个数,输出相应result
  6. java -jar debug_java – 如何在运行时调试jar?
  7. Linux比windows生态好,试装国产统一系统UOS:操作比Windows更简便,但生态依然是缺点,...
  8. 小程序 params_08. 小程序项目实战:设置首页轮播图(3)
  9. solidworks2016详细安装教程
  10. 冒泡排序及一个小小的优化
  11. [Android]bp侧gerrit提交不上去时,删除编译生成的二进制文件
  12. 子在川上曰:nginx的安装和配置、node服务器的配置、mongdb的安装、pm2进行项目动态管理
  13. 张家界和桂林的旅游纪实(避坑指南)
  14. java 合并图片:将多个图片竖向合并在一起
  15. 全国高考今日开启 报名人数再创历史新高 2022全国高考时间科目安排 优积科技-祝同学们高考顺利
  16. 当彗星划过天空,那好像梦幻一般的景色,真是无与伦比,美到极致,只能让人一味眺望着那无法言喻的美。
  17. optimizer.zero_grad(), loss.backward(), optimizer.step()的理解及使用
  18. ACM-ICPC北京赛区2018重现赛 A题
  19. Poco c ++ 库安装
  20. java返回空对象-空数组-空字符-null

热门文章

  1. 如何修改localhost为自己指定的域名
  2. 分布式FFMPEG转码集群
  3. selenium项目实战(三):实现网页验证码识别
  4. 直流-直流(DC-DC)变换电路_BUCKBOOST变换电路
  5. js中function和Function的区别
  6. 阿里云视频点播服务 aliyun-sdk-vod-upload 引入依赖
  7. pta 7-7 哪两个点之间的距离最近
  8. 将eclipse的背景色设置成眼睛保护色,保护眼睛从身边的小事做起。
  9. 【技术分享】如何实现功能完备性能优异的RTMP、RTSP播放器?
  10. 利用python实现将文本、摩尔斯电码与用滴答表示的摩尔斯电码三者相互转换