DTS与PTS:

先盗一张网图,解释DTS和PTS。

DTS和PTS是解码端或者说播放器的概念,DTS是解码的顺序,PTS是显示的顺序。H264中,如果码流中不包含B帧,码流中所有帧的PTS=DTS。如果有B帧,因为B帧会双向参考,导致播放顺序在B帧后面的帧需要先解码出来,PTS!=DTS。

当然上述不是本文的重点。

DTS、PTS是保存在nalu单元里面的吗?怎么解析出来?

首先nalu是没有DTS,PTS这两个语义的。

DTS:slice_header里面的frame_num等同于DTS。frame_num标识了nalu在码流中的存储顺序,也就是nalu送入解码器的顺序,等于elecard中 Number in stream概念,frame_num意义是当前帧在一个gop里距离I帧的间隔,从0开始,I帧的frame_num=0。

PTS:播放顺序。等同于POC。POC=picture order count,等于elecard中 Number in display概念。但是每帧的POC值并不是能直接从nalu中解析出来的,要根据slice_header里面的pic_order_cnt_type(有0、1、2 三种值)确定POC的计算方式。具体POC的计算方式看参考文章。这张图解释了frame_num和POC。

参考:

POC计算_Dillon2015的博客-CSDN博客

H264---帧间编码---帧间预测编码(2):解码、显示顺序与图像管理_SXM19940913sxm的博客-CSDN博客

H.264的DTS、PTS、frame_num、poc相关推荐

  1. H.264视频的RTP有效负载格式 (RFC-3984)

    RFC文档链接 本备忘录的状态 略 摘要 本备忘录描述了ITU-T建议的H.264视频编解码器和技术上相同的ISO/IEC国际标准14496-10视频编解码器的RTP有效载荷格式.RTP有效载荷格式允 ...

  2. H.264中POC类型之探讨

    有 B 图像的场合.POC 表示的是图像显示顺序.由于POC对于参考序列的初始化,重排序及标记关系重大,所以做了如下的分析,以下讨论情况是针对帧编码. pic_order_cnt_type=0的时候: ...

  3. 【数据压缩】H.264文件解析和码流分析

    一.实验课要求 选择一个.mp4或者.264文件. 在码流分析仪软件中打开该文件,从几个层次进行分析: 分析SPS和PPS里都包含哪些主要的信息,给出参数值.(例如分辨率.帧率.GOP结构等等) 以一 ...

  4. 编解码标准-H.264

    H.264是MPEG-4家族中的一员,即MPEG-4系列文档ISO-14496的第10部分,因此被称作MPEG-4 AVC,MPEG-4重点考虑灵活性和交互性,而H.264着重强调更高的编码压缩率和传 ...

  5. H.264笔记整理3

    H.264整理3 转自:http://www.hellotongtong.com/avcodecbase/avcodecbase-h264-learning120.html 需求 在移动端做音视频开发 ...

  6. 十一、H.264的Slice Header解析

    GitHub代码地址:点击这里 H.264中的条带(Slice) 1. Slice的概念 我们已经知道,整个H.264的码流结构可以分为两层:网络抽象层NAL和视频编码层VCL.在NAL层,H.264 ...

  7. iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述

    本文档尝试用Video Toolbox进行H.265(HEVC)硬件编码,视频源为iPhone后置摄像头.去年做完硬解H.264,没做编码,技能上感觉有些缺失.正好刚才发现CMFormatDescri ...

  8. h.264语法结构分析

    NAL Unit Stream Network Abstraction Layer,简称NAL. h.264把原始的yuv文件编码成码流文件,生成的码流文件就是NAL单元流(NAL unit Stre ...

  9. 将h.264裸码流推送到RTMP服务器

    h.264裸码流的格式,参考"H.264-AVC-ISO_IEC_14496-10.pdf, page 211.",这个文档的下载地址:https://github.com/win ...

最新文章

  1. vue-devTools插件安装流程
  2. buHdoZer‘s Arch
  3. 【Visual Studio】如何在VS 2012中打印变量值到输出窗口
  4. PIC模拟从入门到熟练系列之组会PPT20210906《Note of PIC》
  5. 为什么谐振时电抗为0_220KV/110KVCVT互感器串联谐振试验装置技术方案
  6. 请求的站点不可用或找不到_80%的500强用企业微信,企业越来越找不到拒绝用它的理由...
  7. 1个价值80亿美元的iPod
  8. 自定义滚动条,可解决火狐滚动条默认样式修改不了问题
  9. ocp最新题库之052新题带答案整理-36题
  10. 用 ReactJs 创建Mac版的 keep
  11. zjoi2018day1 游记
  12. 57. Attribute specified 属性
  13. 命令端口C++检测本地网络端口占用
  14. H248协议附加业务--遇忙前转流程
  15. java mongodb 使用场景_MongoDB 数据库引用
  16. python 多个excel合并成多个sheet以及多个excel合并成一个sheet
  17. Flask 上传自定义头像_1 使用Flask Uploads
  18. JS ShadowDOM组件修改样式,添加事件
  19. QData QPair的组合使用例子一
  20. 在计算机中移动硬盘一般用作什么,移动硬盘是什么

热门文章

  1. Minicom使用方法
  2. C语言:八进制转二进制(可负数可小数)
  3. 一个简易的弹球小游戏
  4. 7号电单车java怎么样_7号电单车“方便”变不方便,定点还车坑坏网友!
  5. python测试代码怎么写_python测量代码运行时间方法
  6. python烟花效果的代码实例|CSDN创作打卡
  7. 计算机图形学课程设计
  8. 利用搜狗api解析ip地址
  9. drools动态添加和删除规则(即动态修改KieBase)
  10. Django MTV模式