news 2026/5/14 20:22:38

B帧导致PTS DTS不一致的原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
B帧导致PTS DTS不一致的原理

1. 核心概念

  • DTS(Decoding Time Stamp):解码时间戳,决定「什么时候解码这一帧」,严格遵循解码顺序
  • PTS(Presentation Time Stamp):显示时间戳,决定「什么时候显示这一帧」,严格遵循用户观看的显示顺序
  • B 帧(双向预测帧):一种压缩效率更高的视频帧,它的解码必须同时参考前面的 I/P 帧 + 后面的 P/I 帧(双向参考),这是和 I 帧(关键帧,无需参考)、P 帧(前向参考,只参考前面的帧)最核心的区别。

2. 例子(B 帧导致的顺序错位)

假设一段视频的显示顺序(用户最终看到的顺序)是:I 帧(帧 1)→ B 帧(帧 2)→ P 帧(帧 3)。

无 B 帧的情况(对比)

如果没有 B 帧,显示顺序是 I1→P2→P3,解码时也能按这个顺序来(P2 只参考 I1,P3 只参考 P2),所以解码顺序 = 显示顺序,DTS 和 PTS 数值完全一致(比如 I1 的 DTS=1、PTS=1;P2 的 DTS=2、PTS=2)。

有 B 帧的情况(核心)

B 帧 2 需要同时参考 I1(前)和 P3(后)才能解码,因此解码顺序必须调整—— 先解码 I1,再解码 P3(先拿到后面的参考帧),最后解码 B2。也就是:

  • 解码顺序:I1 → P3 → B2(DTS 按这个顺序分配)
  • 显示顺序:I1 → B2 → P3(PTS 按这个顺序分配)

此时各帧的时间戳对应关系:

帧类型解码顺序DTS 值显示顺序PTS 值DTS vs PTS
I11111一致
P32233不一致
B23322不一致

很明显,因为 B 帧的存在,解码顺序和显示顺序被迫错位,而 DTS 绑定解码顺序、PTS 绑定显示顺序,最终导致两者数值不一致。

3. 本质原因总结

B 帧的双向参考特性是根源:为了解码 B 帧,必须先解码它的「后向参考帧」(比如上面的 P3),这打破了解码顺序和显示顺序的一致性,而 DTS/PTS 分别对应这两个不同的顺序,因此必然出现数值差异。

总结

  1. B 帧的双向预测特性是核心:解码 B 帧需要同时参考前后帧,必须调整解码顺序,这是 DTS/PTS 不一致的根本原因。
  2. DTS 对应解码顺序,PTS 对应显示顺序,B 帧导致这两个顺序错位,时间戳自然不一致。
  3. 无 B 帧时,解码顺序 = 显示顺序,因此 DTS 和 PTS 数值完全一致。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 20:19:45

老旧CentOS7服务器JVM加载Jar缓慢排查:竟与NTP服务器有关

老旧CentOS7服务器JVM加载Jar缓慢排查:竟与NTP服务器有关 近期维护一批老旧CentOS 7服务器时,遇到一个十分诡异的JVM故障——使用Java 8加载Jar包时速度异常缓慢,往往要等待数分钟甚至超时,而相同服务器切换到Java 17后&#xff0…

作者头像 李华
网站建设 2026/5/12 7:04:40

Tiez 贴汁 高效的剪贴工具

官方网站 https://tiez.name666.top/zh/ Tiez 贴汁 一贴即合,原汁原味。 不仅是高效的剪贴工具,更是您工作流中值得信赖的“铁汁”。

作者头像 李华
网站建设 2026/5/14 3:10:05

Git-RSCLIP企业级应用:国土调查外业核查前的自动化地物预判

Git-RSCLIP企业级应用:国土调查外业核查前的自动化地物预判 1. 为什么外业核查前需要“预判”? 你有没有遇到过这样的情况:一支国土调查队伍带着设备奔赴几十公里外的田间地头,结果发现——拍回来的照片里,本该是“设…

作者头像 李华
网站建设 2026/5/14 2:50:34

三天,用 AI 写了一个浏览器:真正强大的,还是程序员!

前段时间,Cursor宣布用AI写了一个浏览器FastRender,被全网嘲笑了。这个项目号称使用成百上千个并行 AI 智能体,连续跑了一周,生成了一个Web 浏览器,代码量超过 300 万行。但是很多程序员clone以后,却发现跑…

作者头像 李华
网站建设 2026/5/14 21:21:36

C++之【深入理解Vector】三部曲之二

前言:我们已经理解了vector的初始化和迭代器初始化,那么接下来要继续深入理解vector,它是如何扩容的,空间及数据个数是如何存储的。 vector空间增长问题 容量空间接口说明size获取数据个数capacity获取容量大小empty判断是否为空…

作者头像 李华
网站建设 2026/5/14 21:22:29

港科校友|李铭鸿,李泓曦:一脉相承

以信任和爱作为家庭的基石,校友李铭鸿Thomas和儿子李泓曦Conan先后踏上科大的教育之路,体现了大学一直培养的探索精神与独特个性。Conan全心投入本科学习,而父母灌输给他的自由、幸福和相互尊重的价值观继续引导着他,展示了科大一…

作者头像 李华