jjzjj

ffmpeg深入理解H264中的时间戳( DTS和PTS)

文章目录一、视频的播放过程?二、I、P、B帧的区别三、DTS、PTS的概念四、PTS和DTS的时间基PST和DTS的单位是什么?五、FFMPEG的AVRationaltime_base时间值形式转换转码过程中的时间基转换案例一、视频的播放过程?视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大,这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。由于压缩处理的方式不同,视频

理解ffmpeg中的时间戳,pts,dts,time_base

PTS:PresentationTimeStamp。PTS主要用于度量解码后的视频帧什么时候被显示出来DTS:Decode TimeStamp。DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码也就是pts反映帧什么时候开始显示,dts反映数据流什么时候开始解码怎么理解这里的“什么时候”呢?如果有某一帧,假设它是第10秒开始显示。那么它的pts是多少呢。是10?还是10s?还是两者都不是。为了回答这个问题,先引入FFmpeg中时间基的概念,也就是time_base。它也是用来度量时间的。如果把1秒分为25等份,你可以理解就是一把尺,那么每一格表示的就是1/25秒。此时的ti

理解ffmpeg中的时间戳,pts,dts,time_base

PTS:PresentationTimeStamp。PTS主要用于度量解码后的视频帧什么时候被显示出来DTS:Decode TimeStamp。DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码也就是pts反映帧什么时候开始显示,dts反映数据流什么时候开始解码怎么理解这里的“什么时候”呢?如果有某一帧,假设它是第10秒开始显示。那么它的pts是多少呢。是10?还是10s?还是两者都不是。为了回答这个问题,先引入FFmpeg中时间基的概念,也就是time_base。它也是用来度量时间的。如果把1秒分为25等份,你可以理解就是一把尺,那么每一格表示的就是1/25秒。此时的ti