<div dir="ltr"><div>Hi,</div><div>I'm trying to understand what is the correct way to synchronize two live sources when one of them may (or may not) start with an offset.<br></div><div>In my specific case, audio and video is being captured from one device. However the initial video frame might not always be output immediately; it is only created when something changes on the device, so its possible to start receiving audio before video.<br><br></div><div>My pipeline currently looks something like this:<br><br>appsrc is-live=true do-timestamp=true block=true \<br>! h264parse disable-passthrough=true config-interval=-1 \<br>! queue \<br>! mp4mux name=mux max-raw-audio-drift=50000000000 interleave-time=50000000000 faststart=true fragment-duration=100 \<br>! appsink wait-on-eos=true \<br><span class="gmail-pl-s">alsasrc device=<device> </span>! audio/x-raw,channels=2 |<br>! queue ! audioconvert ! audioresample ! audiorate tolerance=500000000 \<br>! fdkaacenc perfect-timestamp=true ! audio/mpeg,mpegversion=4 \<br>! mux.audio_1<br><br></div><div>When the audio and video both come in at the same time, they are synced. But when the video starts with a delay w.r.t. the audio, then the resulting mp4 seems to have that delay as the offset between the audio and the video; ie: it will play as if the video was supposed to start at the same time as the audio.<br><br></div><div>Thanks!<br></div><div>-stepan<br></div></div>