PTS追本溯源

PTS起源于MPEG-2标准,用于视频同步和音画同步,其参考时钟为90kHz。FFmpeg中,PTS存储在AVPacket结构体中,单位为time_base表示的时间间隔。本文深入探讨PTS的来源、作用及其在FFmpeg中的处理。
摘要由CSDN通过智能技术生成

我们常在技术文章中看到“h264中的pts”这种描述,实际上H.264或H.265的定义中并没有包含PTS、DTS,因此裸流数据中也没有PTS、DTS值,那么PTS是从哪里来的?为什么在PTS与时间的转换转换中总会出现一个90000?由于PTS和DTS的定义类似,所以下面就以PTS为例,追根溯源介绍一下

PTS来源

PTS——Present timestamp,显示时间戳,定义在MEPG制定的“影音压缩及传输”标准中,也就是我们常说的MPEG-1、MPEG-2等。具体可以参考MPEG-2标准文档的第一部分ISO/IEC13818-1
实际上在MPEG-2标准文档的第一部分还没有涉及到编码,因此PTS也就跟h264没有直接关系,“h264中的pts”这种描述是不严谨的
那么PTS是怎么定义的呢?这里要深挖一下上古时期的技术,还记得直播/点播协议HLS中使用的TS分片么,TS格式全称是MPEG2-TS,就是在MPEG-2标准文档中定义的封装格式,MPEG-2于1994年发布

MPEG-2通常用来为广播信号提供视频和音频编码,包括卫星电视、有线电视等。MPEG-2经过少量修改后,也成为DVD产品的核心技术。
那个时候的直播还是数字电视为主,因此使用条件也有所不同
MPEG-2是一种多媒体传输、复用技术,在数字电视广播中可提供数百个节目频道。复用的含义是,可以同时传输多层节目。MPEG-2标准中,有两种不同的码流输出到信道,一种是节目码流(PS: Program Stream ,节目流),适用于没有传输误差的场景;一种是传送流(TS : Transport Stream ,传输流),适用于有信道噪声的传输场景。
节目码流是用于稳定可靠的媒体,如光盘(如DVD / CD),而传输流是用于不太稳定的传输,例如地面或卫星广播。此外,传输流可以传输多个节目。它们两者之间之间不具有层级关系。在逻辑上,其中它们都是都是PES(Packetized Elementary Stream,包基本流)包组成的,所以可以很方便地实现相互转换。
说句题外话,由于TS太古老,所以苹果使用fMP4替换了TS
回到正题,在数字电视系统中,要求编码器和解码器保持同步,因此需要时钟同步。为了实现各种不同应用状态下的编码器,解码器之间的同步,在MPEG系统中引入了系统时钟(STC)、节目时钟基准(PCR)、显示时间标记(PTS)的概念(划重点)。
在数字音、视频编码器中,信号的抽样、处理都是以一个27MHz的参考时钟为基础来进行的。对一个显示单元(如一帧图像),打上用系统时钟对应的参考显示时间,叫显示时间标记,该信息随同码流一起传输。同时,时钟信息也被抽样加入到码流中一起传输。
以上就是PTS最早的定义。用途倒是与现在没有区别,都是用于视频同步、重排序(b帧)和音画同步(音视频交错到达)

参考时钟

了解了PTS的来源,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爽朗地狮子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值