直播推流中 SDK 如何处理音视频数据的 pts 和 dts

   直播行业因为近期疫情的原因,进入了一波小风口,我们都知道 pts 和 dts 对于音视频来说是一个什么样的概念,视频如果没有时间戳,出来的是一张张图片,推流的时间戳要怎么处理比较好呢,本章主要梳理一下在直播推流场景中,针对底层封装数据内部的时间戳 pts 和 dts 的相关处理,以及部分需要注意的地方。

直播目前 pts 和 dts 个人已知的设置模式有以下几种:

  1.  从 0 开始计算:从 0 开始计算,即只要开始推流,pts 和 dts 均是从 0 开始,不管后续同一个流是否在推,均从当前 start 开始计时,每次 stop 时结束计时。

  2. 针对基础时间计算:类似针对当前推流对象的创建,记录一个 base time, 从当前 start 开始推流时,根据生成的 base time 生成对应的时间偏移量赋给 pts 和 dts。

  3. 取绝对时间的某些值计算:直接设置 pts 和 dts 一个固定时间的某些值,然后后续推流时取当前固定时间的偏移量,不过要考虑数值溢出的情况。

上述三种方法,在直播场景中,各家有各家的选择。不过一般如果有直播需求的,大部分都会有落存储,看回放的业务需求,上述三种方法对于回放的影响就比较大了,如果需要生成对应时间段中直播的回放,但是实际上是由两段直播合并而成的话,就会出现 dts 跳变的问题,导致播放回放时影响体验  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值