Description:
We’re experiencing persistent audio-video synchronization issues when processing raw YUV video and PCM audio data from the Zoom Meeting SDK on Linux. Despite multiple approaches, we cannot achieve proper sync.
Setup:
- Linux Ubuntu 22.04, Zoom Meeting SDK
- Capturing raw YUV420 video via
onVideoRawDataReceived()
- Capturing raw PCM audio via
onMixedAudioRawDataReceived()
- Using FFmpeg for post-processing and composition
Issues:
- Variable video speed: Video starts at ~1.5x speed, then settles to 1x
- Audio-video drift: Constant lag between audio and video streams
- Timestamp inconsistencies: Raw data timestamps appear unreliable
Attempted Solutions:
- FFmpeg
setpts
andatempo
filters with various values - GStreamer automatic synchronization with
videomixer
- Multiple participant layouts (Stack Overflow style: 1 large + 3 small videos)
- Forced constant frame rates with
fps=30
filter - Used Zoom SDK’s
GetTimeStamp()
method
References:
- Tried solutions from: https://stackoverflow.com/questions/47959443/how-can-i-have-4-videos-as-1-using-gstreamer
- Syncing Send Video and Send Audio in meeting SDK - #7 by amanda-recallai
Question:
What’s the recommended approach for maintaining proper audio-video sync when processing raw data from multiple participants? Are there specific timing considerations or SDK methods we should use for frame-accurate synchronization?
“We would also like to know how we can start recording automatically without the host’s help, whether the host is from our organization or a different one.”
(Internal meeting or external meetings)
Any guidance would be greatly appreciated!