[jitsi-users] A/V Sync


#1

Hi Guys,

I'm currently trying to improve issues with A/V sync on particular networks
with my Jitsi-Meet instance.

My clients only use NWJS (14.5).

I noticed that there now exists this LipSyncHack module that will trigger
Jitsi to join A/V into a single stream, which will cause Chrome to
synchronize the Audio and Video rather than play them independently.

I have enabled this, and am now seeing confirmation in my logs that these
streams are being merged for my endpoints:

Jicofo 2016-06-10 10:35:08.280 INFO: [45]
org.jitsi.jicofo.LipSyncHack.doMerge().168 Merging A/V streams from
best@conference.video.mybridge.com/2434c067 to
best@conference.video.mybridge.com/02b69d45

Jicofo 2016-06-10 10:35:08.281 INFO: [45]
org.jitsi.jicofo.LipSyncHack.doMerge().168 Merging A/V streams from
best@conference.video.mybridge.com/02b69d45 to
best@conference.video.mybridge.com/2434c06

It has improved the A/V sync issues from being able to lag 10+ Seconds
behind to now intermittently having ~2 second A/V sync issues that
intermittently recover.

Having written A/V sync code in the past, it seems odd that Chrome would
buffer this long of a duration of audio or video data, and not simply give
up, or adjust the play back rate for audio or video enough to get the two
streams back in sync.

I sort of wonder if JVB is buffering these packets. If this is the case
maybe there is a way I could flush remaining audio/video packets and just
deal with the loss and sync to the next iframe?

I am seeing a lot of NACKs in the network environment where this A/V sync
issue is occurring- but the Audio and Video streams seem in tact and
continue playback without interruption.

The only symptom seems to be this nagging audio and video getting out of
sync. It seems mostly that the video itself is the culprit, that audio is
pretty much real-time and video is slowly getting buffered somewhere in the
pipeline.

So my question is are there any other tricks/adjustments anyone could
suggest that I could work with to try to improve this situation?

I have total access to experimental Chrome flags, or anything due to using
a NWJS client.

Perhaps adjusting the maximum bitrate, or flags dealing with A/V jitter
buffering etc etc?