# Syncing audio and video streams

**URL:** <https://devforum.zoom.us/t/syncing-audio-and-video-streams/132822>\
**Category:** Realtime Media Streams\
**Created:** [May 15, 2025, 8:09pm UTC](https://devforum.zoom.us/t/syncing-audio-and-video-streams/132822 "2025-05-15T20:09:01Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![xgantan](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/xgantan/32/66215_2.png) [@xgantan](https://devforum.zoom.us/u/xgantan)\
**Post date:** [May 15, 2025, 8:09pm UTC](https://devforum.zoom.us/t/syncing-audio-and-video-streams/132822/1 "2025-05-15T20:09:01Z")

</div>

Currently, the audio data chunks and video data frames are received at separate callback in the JS code sample. Is there a way to receive a combined audio+video stream instead of separate ones? If not, which algorithm do you recommend we use to synchronize and merge the audio and video streams correctly into one stream?

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [May 20, 2025, 7:30am UTC](https://devforum.zoom.us/t/syncing-audio-and-video-streams/132822/2 "2025-05-20T07:30:34Z")

</div>

@xgantan I’ve written a sample app for this

[https://github.com/zoom/rtms-samples/tree/main/local\_recording/record\_audio\_and\_video\_to\_local\_storage\_advance\_js](https://github.com/zoom/rtms-samples/tree/main/local_recording/record_audio_and_video_to_local_storage_advance_js)

The high level idea is timestamp all the buffers received. Sometimes when users mute their audio or video, save “empty” frames into the audio or video track.

Do note that this sample doesn’t have the logic implemented for multiple user, it is just to showcase how it can be done.

---

<div class="post-metadata">

**Author:** ![xgantan](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/xgantan/32/66215_2.png) [@xgantan](https://devforum.zoom.us/u/xgantan)\
**Post date:** [May 28, 2025, 1:51pm UTC](https://devforum.zoom.us/t/syncing-audio-and-video-streams/132822/3 "2025-05-28T13:51:48Z")

</div>

I tried setting `video.data_opt` to `4 (mixed video stream using speaker view)` or `5 (mixed video stream using gallery view)`. Then nothing is sent to the client server. Are they supported? If not, when can we expect them to be supported? Thanks.

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [June 30, 2025, 6:08am UTC](https://devforum.zoom.us/t/syncing-audio-and-video-streams/132822/4 "2025-06-30T06:08:11Z")

</div>

@xgantan currently at point of this post, there is only 1 view support, which is type 3. Video Single Active Stream

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [July 21, 2025, 4:07pm UTC](https://devforum.zoom.us/t/syncing-audio-and-video-streams/132822/6 "2025-07-21T16:07:17Z")

</div>

Closed on July 21, 2025, 4:07pm UTC


