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

目录

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

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

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

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

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

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


🎯 一句话理解

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

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

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

想象你有两个时钟:

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

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

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

🎬 举个视频的例子

🎵 音频流的例子

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

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

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

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

✅ 总结公式

相关推荐
不想写代码的星星6 小时前
std::move 根本不移动,就像老婆饼里没有老婆
c++
redaijufeng6 小时前
C++雾中风景7:闭包
c++·算法·风景
小欣加油7 小时前
leetcode287寻找重复数
数据结构·c++·算法·leetcode
思麟呀7 小时前
C++11 核心特性(三):强类型枚举、static_assert 与 std::tuple
开发语言·c++
一拳一个呆瓜7 小时前
【STL】C++程序的启动与终止
c++·stl
凡人叶枫8 小时前
Effective C++ 条款07:为多态基类声明 virtual 析构函数
linux·c语言·开发语言·c++
凡人叶枫8 小时前
Effective C++ 条款10:令 operator= 返回一个 reference to *this
java·linux·服务器·开发语言·c++·effective c++
王老师青少年编程8 小时前
2026年全国青少年信息素养大赛算法应用主题赛(C++赛项-复赛模拟卷6:文末附答案)
c++·答案·模拟卷·复赛·2026年·青少年信息素养大赛·算法应用主题赛
视觉小萌新8 小时前
C++利用libmicrohttpd制作交互网页端——C1
java·c++·交互
fpcc9 小时前
C++编程实践—C++实现类似Qt的信号槽机制
c++·qt