GNOME Bugzilla – Bug 529672
Big latency and bad framerate while mixing multiple live streams
Last modified: 2010-09-23 18:39:19 UTC
Please describe the problem: When mixing multiple live streams with non-live streams the output framerate is inconsistent and a big latency gain (10s+ for QCIF output) is achieved. Steps to reproduce: 1. 2 client machines: with pipeline: gst-launch videotestsrc ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,format=\(fourcc\)AYUV,width=176,height=144 ! ffmpegcolorspace ! ffenc_h263 ! rtph263pay ! udpsink port=some_port host=mixer_host 2. on the mixer host side: gst-launch udpsrc port=some_port1 ! gstrtpjitterbuffer ! rtph263depay ! ffdec_h263 ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,format=\(fourcc\)AYUV,width=88,height=72 ! mix. gst-launch udpsrc port=some_port1 ! gstrtpjitterbuffer ! rtph263depay ! ffdec_h263 ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,format=\(fourcc\)AYUV,width=176,height=144 ! mix. videomixer name=mix. ! ffmpegcolorspce ! ximagesink Actual results: The output framerate is not smooth. Big latency gain. Expected results: The output video should be smooth, with as little latency as possible Does this happen every time? yes Other information:
A more simple trigger (if you have a camera): gst-launch-0.10 videotestsrc ! videomixer name=mix ! ffmpegcolorspace ! xvimagesink hdv1394src ! decodebin ! ffmpegcolorspace ! mix. Framerate is one every few seconds for both sources. One processor is thoroughly saturated, others are idle. Launching each stream with separate instances presents two windows operating acceptably with ample processor headroom. Mixing two test or pre-recorded sources performs acceptably. version: 0.10.10.4 videomixer hdv1394src version: 0.10.21 gst-launch-0.10 videotestsrc ffmpegcolorspace xvimagesink decodebin gnome version: 2.24.1
I didn't test your pipelines, but I believe this should be fixed with the new videomixer2 element in gst-plugisn-good git: commit bcfd60a8d200e3f18d6260e1a6d71835d76036fb Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Mon Jul 26 16:07:15 2010 +0200 videomixer2: Add videomixer2 element This is based on collectpads2 and is synchronizing all streams based on the running time. New features compared to old videomixer: * Synchronizing frames on the running time * Improved and simplified negotiation * Full QoS support * Variable framerate support Fixes bug #626048, #624905. Please re-open if it's still an issue.
Note that the support for live streams is still suboptimal. But it should work better now