Gstreamer lip sync issues

Hi guys,

I’m using the following pipeline for send a stream to the media server Wowza.

gst-launch-0.10 -v v4l2src device=/dev/video1 ! “video/x-raw-yuv, format=(fourcc)YUY2, width=(int)640, height=(int)480, framerate=(fraction)30/1” ! queue ! videorate ! “video/x-raw-yuv, format=(fourcc)YUY2, width=(int)640, height=(int)480, framerate=(fraction)25/1” ! queue ! ffmpegcolorspace ! “video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)25/1, width=(int)640, height=(int)480” ! queue ! x264enc bitrate=500 ! queue ! rtph264pay ! queue ! udpsink host=192.168.0.230 port=8000 sync=true alsasrc ! “audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, channels=(int)2” ! queue ! faac ! queue ! rtpmp4gpay ! udpsink host=192.168.0.230 port=8002 sync=true

I’m not exactly sure about the problem but the final stream (after going thought Wowza) have a lip sync delay of about half a second.

I’ve streamed directly from GStreamer to GStreamer and it doesn’t seem to have any sync problem at all.

Do you know any known incompatibility between these two components?

Thank you in advance.

I know that people have reported lip sync issues with streams coming from different encoders. The streams will playback fine in VLC directly or even RTSP/RTP through Wowza to VLC but in Flash the lip sync is off. We have not determined what causes the issue. A few things that could contribute:

  • Be sure you have set a NetStream.setBufferTime(secs) value in your player of between 2-5 seconds. If you are using one of our example players for playback you are OK.

  • See step#1 of this forum post:

    http://community.wowza.com/t/-/57

  • Try turning off B-frames.

  • Be sure the stream has a consistent frame rate (some encoders will change the frame rate on the fly)

  • Try the new Flash player 10.1 beta 2. They have updated the H.264 decoder

    I hope this helps.

    Charlie