您的位置:首页 > 其它

说清楚什么是 PCR,PTS,DTS

2018-01-09 14:33 267 查看
时间戳是容器层的基础概念,很多人还搞不清楚 PCR,PTS,DTS 到底什么关系,对于刚入门的朋友来说,确认让人感到迷惑。

搞清楚三者的区别,本质上就一句话:PCR 是时钟,PTS,DTS 是时刻。是不是已经顿悟了?

这三个的全称为:

PCR: 系统参考时钟

PTS: 显示时间

DTS: 解码时间

PCR 是 TS 流中才有的概念。设想在定义规范的时候,假如只需要支持纯视频,那就不需要使用时间戳了,解码器只要按固定帧率播放就可以。当需要把音视频数据合并在一起,控制av同步就是一个问题。时间戳机制被引入用以解决av同步问题。

假设a,b两人约定某个时刻去做某事,则需要一个前提,他们两人的手表必须是同步的,比如都是使用北京时间对时的,如果他们的表不准 ,比北京时间差了几个小时,就会有人迟到,要做的事情被耽误。pcr就是北京时间,编码器将自己的系统时钟采样,以pcr形式放入ts,解码器使用pcr同步自己的系统时钟,保证编码器和解码器的时钟同步。

dts,收到的数据何时解码,现在的解码器已经基本不关心他,收到数据立即解码。只使用pts

pts控制画面何时显示,音频何时播放。

三者之间的大小关系:

1

2

3

PCR
<
DTS
<
PTS

假设现在中午12点,正常情况下,画面总是在未来某个时刻显示,所以pts总是大于方式的系统时间,如果pts要求为上午9点显示,解码器就认为这个画面迟到了。如果要求晚上7点显示,就会造成解码器缓冲溢出。解码器不知到这些画面如何播放,丢弃缓冲或其它异常处理,用户看到的效果都会不流畅,因为本该显示的画面耽搁了太久。所以pts与pcr总是会有合理的间隔值。时间戳的正确性直接决定播出效果。

一些不规范pc播放器并不关心pcr,使用视频或音频pts作为参考时间,对于pcr有错的ts,他们是可以正常播的。机顶盒也可以采用相同机制,绝大部分机顶盒都是以pcr作为参考时间的。

没有相关文章.

(转载请注明作者和出处 easyice.cn ,请勿用于任何商业用途)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: