1. 前言
FFmpeg存在很多个时间单位,比如pts, dts, ffmpeg内部基准时间,常规时间
本文谈谈他们之间的转换
2. ffmpeg内部基准时间与常规时间
2.1 基准时间
ffmpeg 内部的时间基为AV_TIME_BASE, 其大小如下:
#define AV_TIME_BASE 1000000
即,ffmpeg内部时间单位为微秒 (μs)
AVStream duration :
AV_TIME_BASE_Q为AV_TIME_BASE的倒数
#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
ffmpeg内部基准时间与常规时间的转换:
timestamp(ffmpeg内部时间戳) = AV_TIME_BASE * time(秒)
time(秒) = AV_TIME_BASE_Q * timestamp(ffmpeg内部时间戳)<