Bootstrap

FFmpeg基础: 视频裁剪

基本概念

在对视频进行裁剪之前,我们先讲几个基本概念。
第一个概念是PTS(Presentation Time Stamp) 显示时间戳,用来定位帧的显示时间。
第二个概念是DTS(Decode Time Stamp)解码时间戳,用来定位帧的解码时间。
第三个概念是时间基time_base,用来度量时间。
如果把1秒分为30份,那么每一份就代表着1/30秒,此时的时间基time_base={1,30}。时间基和实际时间有着一个比例对应关系。

pts和dts的值是时间基对应的值而不是秒,只有将pts、dts和time_base组合到一起使用才能得到具体的时间。

不同的封装格式以及不同的数据状态下的时间基time_base都有可能不同,在进行时间转换的时候,一定要将刻度值搭配对应的时间基time_base使用。某一帧时间的计算公式如下所示:

//av_q2d(st->time_base) 就是时间基的单位
timestamp() = pts 
;