rtmp 时间戳与音视频同步

一 rtmp协议中的时间戳字段。

 chunk type:0 时间戳为绝对时间

 chunk type:1 时间戳为相对时间

音视频的时间戳是分开统计的。

参见nginx-rtmp源码

音视频的上下文是分开的,rtmp协议都是从绝对时间开始,相对时间结束。

处理完一个音频/视频数据包后,时间戳增加相对时间戳值

二 rtmp音视频数据的播放与同步

       rtmp播放器是严格按照时间戳进行播放音视频数据的,虽然rtmp音视频数据的时间戳是分开统计的,但是音视频的时间戳的差值应该是恒定值。

每播放完一帧音频/视频帧,播放器休眠delta时间戳时长。

三 rtmp音视频不同步问题排查

      1 在播放端抓包,查看音视频的时间戳差值是否恒定。

      2 服务端加日志,输出音视频的时间戳信息

      3 抓推送端的数据包,查看音视频时间戳差值是否恒定

注意:音视频不同步问题,一般出在推送端,遇到的大多数case是推送端在应用层拿到音频数据之后,进行了音频转码,导致的音频转发总是滞后。

四 后续再讲一些类似aac语音解码播放,或者转码为其它格式,敬请期待。



       

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值