1、 本章节介绍:
本章节主要介绍FFMPEG的时间概念,包括时间基、时间戳、时间转换、时间比较等知识点。这些知识点对于我们了解推流至关重要,因为音视频合成本质上是各种时间转换的过程。
2、 FFMPEG 时间基、 时间戳的讲解:
2.1. 时间基(time_base):时间基也称之为时间基准,它代表的是每个刻度是多少秒。比方说:视频帧率是30FPS,那它的时间刻度是{1,30}。相当于1s内划分出30个等分,也就是每隔1/30秒后显示一帧视频数据。具体的如下图所示:
image.png
在FFMPEG中时间基准都是用AVRational结构体来表示:
image.png
num:它是numerator的缩小,代表的是分子 den:它是denominator的缩小,代表的是分母
在视频时间基都是以帧率为单位,比方说50帧。FFMPEG就以AVRational video_timebase = {1, 50}来表示。
在音频时间基都是以采样率为单位,比方说音频采样率是48000HZ。FFMPEG就以AVRational audio_timebase = {1, 48000}来表示。
对于封装格式来说:flv 封装格式的 time_base 为{1,1000},ts 封装格式的 time_base 为{1,90000}