看到好多人对时间戳这个概念不明白啊;简单写一下我的理解
第一,时间戳是什么
时间戳就是一个能够表示一个事物发生时间的东西,她有个单位,比如秒,毫秒等
第二,timebase是个什么
timebase是个有点抽象的东西, 在这里不说抽象的概念,你就把它当成时间的单位;
例如25帧的视频,如果不存在timebase这个东西, 我们打时间戳应该是这样的,0-40-80-120-以此类推,40毫秒一帧图像
可是出现了timebase之后就不能这么处理了;
例如,同样25帧的视频, timebase设置为1/25, 那这个1/25是什么意思呢? 就是把1秒分成25份, 你的时间戳每增加1,就代表增加了1/25秒;
视频是25帧的, 也就是每帧之间的间隔恰好就是1/25秒, 那么,我们的时间戳就可以每次递增1了;
同理,timebase设置为1/50, 那么我们的时间戳就可以每次递增2了;
上面三句话非常重要,是时间戳的核心原理;
第三,如何去确定编码器的timebase
那怎么去确定timebase是多少合适呢? 2/25可以吗?3/456可以吗?
理论上来说都是可以的,但是有个精度问题;
例如,同样25帧的视频,我们设置timebase为2/25;
假设如果第一帧是时间: 0毫秒,
换算成1/25的时间戳:0*(2/25) = 0;
再还原成原始时间就是0