Janus转发丢包导致音视频不同步原因分析

音视频不同步:PC和手机互相拉流,过个把小时后,手机拉PC端不同步,PC拉手机端同步,手机退出重进后音视频恢复同步,另外一个手机拉PC也是同步的,初步分析PC发送是正常的,可能是Janus的下行发送在遇到丢包卡顿后时间戳计算有问题,该同步函数在rtp.c文件里,本文记录解读过程。

原型:

void janus_rtp_header_update(janus_rtp_header *header, janus_rtp_switching_context *context, gboolean video, int step)

参数:

janus_rtp_header *header  :  RTP包

janus_rtp_switching_context *context: 订阅者信息

gboolean video:是否视频包

int step : 未使用

 

context->v_last_ssrc: 记录订阅者订阅的ssrc,如果该值和推流者不一样,说明是新开始,初始化v_base_seq,v_base_ts等值

context->v_base_ts_prev: 订阅者的起始ts

context->v_base_ts:记录该订阅者是从推流者的开始拉的第一个包的时间戳

context->v_base_seq_prev:

context->v_base_seq: 记录该订阅者是从推流者的第几个seq开始拉流的,比如推流这发了1000个包了,订阅者才开始拉流,则该值为1000

context->v_last_time: 上一包发送时间,函数末尾context->v_last_time = janus_get_monotonic_time();获得

context->v_last_ts:

context->v_new_ssrc:

context->v_seq_reset:

context->

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值