dts,pts
Posted bbqz007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dts,pts相关的知识,希望对你有一定的参考价值。
解码过程中,dts由媒体流读入的包推动(解码包中的dts标记),dts在前进。pts是在dts前进到某处(截点)而进行动作的标记。
物理时间自然流逝,dts可以被控制同步与物理时间同一脚步节奏,也可以不。
一个节目的各条流(一般就一视频一音频,再加一字幕)共同参照dts。
流的各帧正确在物理世界呈现,pts必须参照物理时间与物理时间同步。
上图是mp4文件的解码,由于P,B要参考I,B需要正向参考P,所以某一帧被解码呈现的时候,已经被安排读入前前后后的几帧(这里的帧不专指主帧),所以pts会编排成dts之后。上图所示,pts:133的主帧安排在dts:0时加载,pts:333的B帧安排在dts:66时加载,pts:266的B帧安排在dts:133时加载。
又由于音频各帧独立,所以可以直接读入直接进行解码,pts和dts编排成一致。
上图在dts进行至133时(图中最右一个AVPacket编码帧),对pts=133的视频帧(图中最左一个AVPacket编码帧)解码。
解码出的帧dts打上当前的dts。在下面的AVFrame结构中,pkt_pts和pkt_dst是从AVPacket解码出来的时间截,而pts用于编码成AVPacket。
2020补充:
dts,理解成正在流逝的时钟时间。当然不是物理时钟时间。
pts,理解成计划任务时间,dts到点了就执行任务。
dts排序成一条时间轴,可以控制前进后退。
pts排序成一条队列,dts到达时触发执行。
以上是关于dts,pts的主要内容,如果未能解决你的问题,请参考以下文章