ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7907|回复: 0

FLV rtmp 里存在B帧的情况下,time stamp 应该怎么玩

[复制链接]
发表于 2014-10-13 17:18:24 | 显示全部楼层 |阅读模式
FLV  rtmp 里存在B帧的情况下,time stamp 应该怎么玩 ?

先来引用stackoverflow的一篇文章:
CompositionTime Composition time offset
See ISO 14496-12, 8.15.3 for an explanation of composition times. The offset in an FLV file is always in milliseconds


provides the offset between decoding time and composition time. Since decoding time must be less than the composition time, the offsets are expressed as unsigned numbers such that CT(n) = DT(n) + CTTS(n) where CTTS(n) is the (uncompressed) table entry for sample n.

For MPEG-4 H.246 transcoders that deliver I-frame, P-frame, and B-frame NALUs inside an MPEG-2 transport, the resulting packetized elementary streams (PES) are timestamped with presentation time stamps (PTS) and decoder timestamps (DTS) in time units of 1/90000 of a second.
The NALUs come in DTS timestamp order in a repeating pattern like
I P B B B P B B B ...  
where the intended playback rendering is
I B B B P B B B P ...
(This transport strategy ensures that both frames that the B-frame bridges are in the decoder before the B-frame is processed.)
For FLV, the Timestamp (FLV spec p.69) tells when the frame should be fed to the decoder in milliseconds, which is
timestamp = DTS / 90.0
The CompositionTime (FLV spec p.72) tells the renderer when to perform ("compose") the video frame on the display device in milliseconds after it enters the decoder; thus it is
compositionTime = (PTS - DTS) / 90.0
(Because the PTS >= DTS, this delta is never negative.)

大概知道什么意思了没?再来帖 一张图,从flv的标准文档里扣的:

就是给它赋值 compostionTime即可。


代码是老衲写的,说明技术细节所用,不得转载。 也不准跟老衲索要代码,会假装不在线的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-5-2 08:22 , Processed in 0.089517 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表