[gst-devel] synchronize rtp audio and video

Francesco Argese kekko84 at gmail.com
Mon Feb 2 17:48:30 CET 2009


Hi all,

I'm using Gstreamer to stream a video flow, compressed with mpeg4, and
an audio flow, compressed with mp3. I send these two flows packing
them respectively with the relative rtp payloader. I have two
pipelines, one for the receiver and another for the sender that
include both video and audio in a manner similar to the examples i
have found on the site.

For example:
gst-launch gstrtpbin name=rtpbin \
        v4l2src ! ffmpegcolorspace ! ffenc_h263 ! rtph263ppay !
rtpbin.send_rtp_sink_0 \
                  rtpbin.send_rtp_src_0 ! udpsink port=5000
                \
                  rtpbin.send_rtcp_src_0 ! udpsink port=5001
sync=false async=false    \
                  udpsrc port=5005 ! rtpbin.recv_rtcp_sink_0
                \
        audiotestsrc ! amrnbenc ! rtpamrpay ! rtpbin.send_rtp_sink_1
                \
                  rtpbin.send_rtp_src_1 ! udpsink port=5002
                \
                  rtpbin.send_rtcp_src_1 ! udpsink port=5003
sync=false async=false    \
                  udpsrc port=5007 ! rtpbin.recv_rtcp_sink_1


It works but i have a problem of synchronization: the video is in
advance of 1 second against the audio. How can i try to solve this
problem? Is it sufficient to set sync of the udpsink to true for all
the udpsink present? And what is the difference between async and
sync? I haven't yet understood what clock refers to.

Thanks in advance
Francesco Argese




More information about the gstreamer-devel mailing list