- DTS主要用于视频的解码, 英文全称是Decoding Time Stamp,
- PTS主要用于在解码阶段进行视频的同步和输出,全称是Presentation Time Stamp。
- 在没有B帧的情况下,DTS和PTS的输出顺序是一样的
- 因为B帧打乱了解码和显示的顺序,所以一旦存在B帧,PTS与DTS势必会不同,
- FFmpeg中使用AVpacket结构体来描述解码前或解码后的压缩数据,用AVFrame结构体来描述解码后或编码前的原始数据
- 对于视频来说 ,AVFrame就是视频的一帧图像,这帧图像什么时候显示给用户,取决于它的PTS。
- DTS是AVPacket里的一个成员,表示该压缩包应该在什么时候被解码,如果视频里各帧的编码是按输入顺序(显示顺序)依次进行的,那么解码和显示时间应该是一致的,但是事实上,在大多数编解码标准(如H.264或HEVC)中,
- 编码顺序和输入顺序并不一致,于是才会需要PTS和DTS这两种不同的时间戳。