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

音视频pts/dts

现在的视频流有两个非常重要的时间戳,pts和dts,其中pts是显示的时候用,dts在解码的时候用。

pts很好理解,按照pts的顺序以及duration不间断的display就可以了。

dts在解码的时候用,那么这句话怎么理解,解码器需要dts来确认解码顺序吗?
解码器解码顺序有两个:

  • 一个是放入解码器中的顺序
  • 另一个是解码器中解码的顺序

找个图来说明
在这里插入图片描述

如上图,我们经常看到,B帧是双向依赖帧,如上图所示,假设2号B帧解码的时候依赖4号P帧,那么请问:
这个依赖关系是谁告诉解码器的?

这是NAL包内部slice的bh数据来告诉解码器的。

所以解码器本身是不感知dts的,解码器解码时候需要的前后依赖关系也是在压缩数据内部保存的。

但是你把压缩数据送到解码器的时候要保证一个顺序,这个顺序是dts决定的。

也许你还不理解,什么是“把压缩数据送到解码器的时候要保证一个顺序”?,假设上面的压缩数据块就像扑克一样,洗牌后,你要排序,然后把它们放入到解码器,那么排序的规则是什么?这就是dts.

特别是网络包UDP的时候,压缩数据包来的前后顺序会乱序,这个时候就要根据dts来决定送入解码器的先后顺序。


http://www.kler.cn/a/403317.html

相关文章:

  • Springboot 读取 resource 目录下的Excel文件并下载
  • 详解Servlet的使用
  • Linux关于vim的笔记
  • 智慧社区管理系统平台提升物业运营效率与用户体验
  • C# 读取多条数据记录导出到 Word标签模板之图片输出改造
  • 使用go实现流式输出
  • Python设计模式详解之5 —— 原型模式
  • 浪潮服务器硬件与配置监控指标解读
  • 【GL003】TCP/IP 协议
  • 【原创】java+ssm+mysql房屋租赁管理系统设计与实现
  • spring-logback引用外部文件
  • 使用Spring异步任务
  • Python软体中使用 Flask 或 FastAPI 搭建简单 RESTful API 服务并实现限流功能
  • 【金融风控项目-05】:信贷业务审批流程介绍
  • VUE 基础,初始VUE
  • 短视频矩阵矩阵,矩阵号策略
  • 【大数据测试 Elasticsearch 的标准--超详细篇】
  • 低速接口项目之串口Uart开发(一)——串口UART
  • 物联网中基于MQTT协议的EMQX代理的实现与分析
  • MySQL 死锁
  • Linux移植IMX6ULL记录 一:编译源码并支持能顺利进入linux
  • 【Git】工作区、暂存区和版本库
  • 单元测试框架gtest学习(三)—— 事件机制
  • 解决 npm xxx was blocked, reason: xx bad guy, steal env and delete files
  • PW系列工控电脑复制机:效率与精度双重提升
  • 2.7 以太网的 MAC 层