<div dir="ltr">Hi, <div><br></div><div>I am trying to implement a video chat using GStreamer on Windows 10. I intend to use gstreamer C API, but for now I am just using the command line for basic testing. In order to keep video and audio in sync, I am muxing them using mpegtsmux and then sending them via RTP. It works fine, but the latency is pretty high (I think it's about 1 second).<div><br></div><div>My sending pipeline is as follows:</div><div> </div><div>gst-launch-1.0 mpegtsmux name=mux ! rtpmp2tpay ! udpsink host=127.0.0.1 port=5555^<br> wasapisrc ! audioresample ! audioconvert ! avenc_aac ! queue ! mux.^<br> ksvideosrc ! videoconvert ! x264enc tune=zerolatency ! h264parse config-interval=-1 ! queue ! mux.^<br> <br></div><div>My receiving pipeline is as follows:</div><div><br></div><div>gst-launch-1.0^<br> udpsrc address=127.0.0.1 port=5555 caps="application/x-rtp" ! rtpmp2tdepay ! tsdemux name=demux^<br> demux. ! queue ! avdec_aac ! audioresample ! audioconvert ! wasapisink low-latency=true^<br> demux. ! queue ! h264parse ! avdec_h264 ! videoconvert ! autovideosink<br></div><div><br></div><div>Questions:</div><div>1. Is this the correct approach for a video chat or should I use separate streams for audio and video?</div><div>2. If this is the correct approach, am I using the correct muxer or should I use something else such as asfmux?</div><div>3. If this is the correct approach and the correct muxer, is there something I can do in order to reduce the latency?</div><div><br></div><div><br></div></div></div>