PTS追本溯源

我们常在技术文章中看到“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的来源,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告:本课程项目仅供学习参考,请不要直接商用,概不负责任何法律责任。 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习使用FFmpeg开发视频监控项目,并动手操练。具体内容包括: 一、视频监控的架构和流程二、FFmpeg4.3+SDL2+Qt5开发环境的搭建三、FFmpeg的SDK编程回顾总结并操练四、SDL2.0的编程回顾总结并操练五、颜色空间转换RGB和YUV的原理与实战六、Qt5+FFmpeg本地摄像头采集预览实战七、代码封装:摄像头h264/5编码并存储八、Qt5+FFmpeg单路网络摄像头采集预览九、Qt5+FFmpeg单路网络摄像头采集预览录制会看十、onvif与GB/T-28181的简介  音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢?   因为没有学习音视频和流媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。 所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。   梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。  目前全身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。  
PTS LabVIEW 是一个用于测量和控制系统的开发平台和编程环境,由美国国家仪器公司(National Instruments)开发。其主要用于科学、工程、测试和测量领域中的各种应用。 PTS LabVIEW 具有图形化编程界面,使得用户能够以可视化的方式创建程序。相比于传统的文本编程语言,它更加直观和容易学习。用户可以通过拖拽和连接不同的图形化模块,构建出自己的程序逻辑。这样的设计允许非专业的编程人员也能够快速上手,并且加快了开发速度。 除了图形化编程界面外,PTS LabVIEW 还提供了大量的工具和函数库,用于各种测量和控制任务。用户可以使用这些工具和函数库,快速搭建起实验室的测量和控制系统,以及相应的用户界面。 PTS LabVIEW 的另一个优势是其强大的数据分析和可视化功能。用户可以用它来进行实时数据采集、数据处理和数据可视化等工作。这些功能使得用户能够更好地理解实验结果,并从中得到有用的信息。 PTS LabVIEW 还支持与其他编程语言和硬件设备的集成。用户可以通过它与其他软件进行通信,实现数据的交互和共享。同时,用户还可以使用不同的硬件接口卡或模块,与各种设备进行连接和控制。 总结来说,PTS LabVIEW 是一种功能强大且易于使用的科学测试和控制系统开发环境。它的图形化编程界面、丰富的工具和函数库、强大的数据分析和可视化功能,以及与其他软硬件设备的集成能力,使得它在科学、工程和实验室领域中得到广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爽朗地狮子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值