当前位置: 首页 > news >正文

FFMPEG 与 mp4

1. FFmpeg 中的 start_timetime_base

  • start_time
    流的起始时间戳(单位:time_base),表示第一帧的呈现时间(Presentation Time)。通常用于同步多个流(如音频和视频)。

  • time_base
    时间基,是一个分数(例如 {1, 1000} 表示毫秒级),用于将时间戳转换为秒:

    时间(秒) = 时间戳 × time_base.num / time_base.den
    
1.1 MP4 文件中的对应概念

MP4 文件使用 ISO Base Media File Format (ISOBMFF) 结构,时间信息主要存储在以下 box 中:

1.2 time_base 的对应
  • mdhd box(Media Header Box)
    每个媒体轨道(Track)的 mdhd box 包含 timescale 字段,表示该轨道的时间刻度:

    • 含义:1 秒被分成多少个时间单位(例如 timescale=90000 表示 1/90000 秒为一个单位)。
    • 对应关系:FFmpeg 的 time_base 通常是 {1, timescale}

    示例
    若 MP4 轨道的 timescale=90000,则 FFmpeg 可能将 time_base 设为 {1, 90000}

1.3 start_time 的对应
  • tfdt box(Track Fragment Decode Time)
    存储每个片段(Fragment)的解码时间,相对于轨道开始时间。

  • ctts box(Composition Time to Sample)
    存储解码时间(DTS)到呈现时间(PTS)的偏移量,影响 start_time 的计算。

  • stts box(Decoding Time to Sample)
    定义样本的解码时间间隔,辅助计算绝对时间。

1.4. 转换关系示例

假设 MP4 文件:

  • 视频轨道 timescale=90000
  • 第一帧的 tfdt 值为 18000(表示 18000/90000 = 0.2 秒)

FFmpeg 读取时:

  • time_base = {1, 90000}
  • time_base = 1 / timescale
  • start_time = 18000(时间戳,单位为 time_base
  • 实际起始时间(秒) = 18000 × (1/90000) = 0.2
  • start_time(起始时间(秒)) = start_time × time_base

相关文章:

  • FunASR:语音识别与合成一体化,企业级开发实战详解
  • Turborepo + Vite + Next.js + Shadcn Monorepo 项目构建
  • MoonBit正式入驻GitCode!AI时代的编程语言新星,开启高性能开发新纪元
  • 【面试 · 五】CSS个别重点总结
  • 【内网渗透】——S4u2扩展协议提权以及KDC欺骗提权
  • Xcode报错:“Set `maskView` to `nil` before adding it as a subview of ZFMaskView
  • 嵌入式培训之数据结构学习(三)gdb调试
  • 深入解析京东 item_sku 接口:获取商品SKU信息的详细指南
  • libarchive.so.19丢失
  • 使用libUSB-win32的简单读写例程参考
  • 基于SpringBoot+Vue的房屋租赁管理系统源码包(完整版)开发实战
  • 现代垃圾收集器
  • 【springcloud学习(dalston.sr1)】Ribbon负载均衡(七)
  • svn status . 命令返回分析
  • npm 报错 gyp verb `which` failed Error: not found: python2 解决方案
  • 2025年Flutter项目管理技能要求
  • 怎么查看当前vue项目,要求的node.js版本
  • MobiPDF:安卓设备上的专业PDF阅读与编辑工具
  • <论文>(微软)避免推荐域外物品:基于LLM的受限生成式推荐
  • VTK|类似CloudCompare的比例尺实现2-vtk实现
  • 加拿大总理宣布新内阁名单
  • 上海首发经济“卷”到会展业,浦东签约三个年度“首展”
  • 大外交|中美联合声明拉升全球股市,专家:中美相向而行为世界提供确定性
  • 甘肃:今年6月前,由县级党委、政府制定农村彩礼倡导性标准
  • 美元指数上涨超1%重返101上方,创1个月新高
  • 27岁杨阳拟任苏木镇党委副职,系2020年内蒙古自治区选调生