AV时间戳dts,pts。从ffmpeg解码过程看过来。
2016-10-26 21:59
549 查看
解码过程中,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。
相关文章推荐
- ffmpeg中的时间 DTS、PTS、AV_TIME_BASE、AV_TIME_BASE_Q 介绍
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- ffmpeg之H264中的时间戳(DTS和PTS)
- TS流解码过程-ES-PES-PTS-DTS
- FFmpeg中的时间戳(DTS和PTS)
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- 【FFMPEG】I,P,B帧和PTS,DTS时间戳的关系
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- 只有i帧的pts,dts,如何求取中间的b帧和p帧的长度和解码时间
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- FFmpeg中的时间戳(DTS和PTS)
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- 【转】 TS流的解码过程-ES-PES-DTS-PTS-PCR
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- FFmpeg中的时间戳(DTS和PTS
- TS流的解码过程-ES-PES-DTS-PTS-PCR
- TS流的解码过程-ES-PES-DTS-PTS-PCR