音视频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来决定送入解码器的先后顺序。

相关推荐
EasyCVR4 小时前
EasyRTC嵌入式视频通话SDK的跨平台适配,构建web浏览器、Linux、ARM、安卓等终端的低延迟音视频通信
android·arm开发·网络协议·tcp/ip·音视频·webrtc
StudyWinter9 小时前
FFmpeg-chapter7和chapter8-使用 FFmpeg 解码视频(原理篇和实站篇)
ffmpeg·音视频
余~~1853816280010 小时前
碰一碰发视频系统之写卡功能开发了,支持OEM
线性代数·矩阵·音视频
q5673152310 小时前
用Go的resty库批量下载公开网站视频
开发语言·golang·音视频
JAVA叶知秋14 小时前
完美解决uni-app打开页面无法自动播放视频的问题
前端·uni-app·音视频
挣扎与觉醒中的技术人17 小时前
OpenCV视频解码全流程详解
人工智能·深度学习·opencv·计算机视觉·ffmpeg·音视频
EasyCVR1 天前
EasyRTC嵌入式音视频通话SDK:基于ICE与STUN/TURN的实时音视频通信解决方案
人工智能·音视频·webrtc·实时音视频·h.265
九丶黎1 天前
爬虫案例七Python协程爬取视频
爬虫·python·音视频
羑悻的小杀马特1 天前
通义万相 2.1 + 蓝耘算力,AI 视频生成的梦幻组合
人工智能·音视频·ai大模型·蓝耘
悟纤1 天前
Luno Api - AI音乐开发「人声伴奏分离 – 自定义音频」「Luno Api系列|AI音乐API」第7篇
人工智能·音视频·suno api·luno api·ai music·luno