视频时间基 (time_base) 详解:时间的“刻度单位”

目录

[🎯 一句话理解](#🎯 一句话理解)

[🧩 举个生活例子:时钟的刻度](#🧩 举个生活例子:时钟的刻度)

[🎬 举个视频的例子](#🎬 举个视频的例子)

[🎵 音频流的例子](#🎵 音频流的例子)

[🧠 为什么不直接用"秒"?](#🧠 为什么不直接用“秒”?)

[✅ 总结公式](#✅ 总结公式)


🎯 一句话理解

时间基(time_base)是时间的**"刻度单位"**。

它告诉你:时间戳(PTS、DTS)中"1"的含义到底是多少秒。

🧩 举个生活例子:时钟的刻度

想象你有两个时钟:

时钟类型 刻度间隔 一格代表的时间
秒表 一格 = 1 秒 1 秒
高精度计时器 一格 = 1/1000 秒 0.001 秒

这两个时钟都能报时间,但"1 格"(即时间戳的单位)代表的实际时间长度是不同的。

FFmpeg 中的 time_base 就是告诉你:"一格"代表多少秒

🎬 举个视频的例子

🎵 音频流的例子

🧠 为什么不直接用"秒"?

因为在多媒体处理中,直接使用浮点数(秒)来表示时间会带来以下问题:

  1. 精度累积误差: 在长时间播放中,浮点运算的误差会不断累积,导致音视频不同步。

  2. 流的差异性: 视频帧可能以帧率 (如 30fps)为主,音频帧以采样率(如 48kHz)为主。

✅ 总结公式

相关推荐
东东最爱敲键盘1 天前
day9.C++多态之虚函数
开发语言·c++
Darkwanderor1 天前
Linux线程控制
linux·c语言·c++
Darkwanderor1 天前
多线程的互斥问题和互斥锁解决互斥问题
linux·c语言·c++
键盘会跳舞1 天前
C++:std::pair 源码级深度剖析 —— 关联容器的基石
开发语言·c++·pair·关联容器
(Charon)1 天前
【C++】手写线程安全队列:mutex + condition_variable 实现生产者消费者模型
c语言·开发语言·c++
·薯条大王1 天前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
hansang_IR2 天前
【题解】LC:倍增 / 区间并查集(Range Parallel Unionfind)
c++·算法·并查集
东东最爱敲键盘2 天前
day7.c++继承
c++
沫璃染墨2 天前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
吃着火锅x唱着歌2 天前
Effective C++ 学习笔记 条款40 明智而审慎地使用多重继承
c++·笔记·学习