Evaluating Fluendo timeshifter

Krzysztof Konopko krzysztof.konopko at youview.com
Wed Nov 7 09:28:08 PST 2012


Let me just add that if I use a TS file as a source, then the
timeshifter sees a burst of 18800 buffers and everyone's happy,

So it seems to me that this is something to do with my udpsrc being slow
and trickling rather than streaming. Is there any buffering that could
remedy this situation?

Kris

On 07/11/12 17:18, Krzysztof Konopko wrote:
> Hi,
> 
> I'm trying to make some real-life experiments with the Fluendo
> timeshifter. I stream raw video from my laptop video camera, encode and
> mux it into MPEG-TS and then stream it as UDP packets from the "server"
> machine. On the receiver I use the following pipeline:
> 
> gst-launch-1.0 -v --gst-debug-no-color --gst-debug=flu*:5 \
>     udpsrc do-timestamp=false port=10000 \
>        
> caps='application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)MP2T-ES'
> \
>     ! queue ! rtpmp2tdepay \
>     ! tsparse \
>     ! queue \
>     ! identity name=probe-before-timeshifter silent=false \
>     ! flumpegshifter \
>     ! identity name=probe-after-timeshifter silent=false \
>     ! decodebin \
>     ! identity name=probe-after-decoder silent=false \
>     ! queue ! autovideosink sync=false
> 
> The problem is that the rendered video is very jerky. The timeshifter
> collects TS packets until it fills the cache slot (32kB) and than hands
> over to the decoder:
> 
> # tsparse
> (probe-before-timeshifter:sink) (11280 bytes, dts: none, pts:none,
> duration: none, ... )
> (probe-before-timeshifter:sink) (2068 bytes, dts: none, pts:none,
> duration: none, ... )
> (probe-before-timeshifter:sink) (3008 bytes, dts: none, pts:none,
> duration: none, ... )
> ...
> 
> # timeshifter
> (probe-after-timeshifter:sink) (32768 bytes, dts: none, pts:none,
> duration: none, offset: 131072, offset_end:  163840, flags: 00000000 )
> 
> # decoder
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:01.040000000,
> pts:0:00:01.040000000, duration: 0:00:00.040000000, ... )
> WARNING: from element ...:autovideosink0-actual-sink-xvimage: A lot of
> buffers are being dropped.
> Additional debug info: ...:autovideosink0-actual-sink-xvimage: There may
> be a timestamping problem, or this computer is too slow.
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:01.080000000,
> pts:0:00:01.080000000, duration: 0:00:00.040000000, ... )
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:01.120000000,
> pts:0:00:01.120000000, duration: 0:00:00.040000000, ... )
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:01.160000000,
> pts:0:00:01.160000000, duration: 0:00:00.040000000, ... )
> ...
> 
> If I remove the timeshifter, I get delayed but smooth video output.
> 
> gst-launch-1.0 -v --gst-debug-no-color --gst-debug=flu*:5 \
>     udpsrc do-timestamp=false port=10000 \
>        
> caps='application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)MP2T-ES'
> \
>     ! queue ! rtpmp2tdepay \
>     ! tsparse \
>     ! queue \
>     ! identity name=probe-before-decoder silent=false \
>     ! decodebin \
>     ! identity name=probe-after-decoder silent=false \
>     ! queue ! autovideosink sync=false
> 
> The tsparse end decoder elements work interchangeably.
> 
> (probe-before-decoder:sink) (2632 bytes, dts: none, pts:none, duration:
> none, ... )
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:00.731522222,
> pts:0:00:00.731522222, duration: 0:00:00.040000000, ... )
> (probe-before-decoder:sink) (2256 bytes, dts: none, pts:none, duration:
> none, ... )
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:00.801255555,
> pts:0:00:00.801255555, duration: 0:00:00.040000000, ... )
> (probe-before-decoder:sink) (2632 bytes, dts: none, pts:none, duration:
> none, ... )
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:00.867966666,
> pts:0:00:00.867966666, duration: 0:00:00.040000000, ... )
> (probe-before-decoder:sink) (2068 bytes, dts: none, pts:none, duration:
> none, ... )
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:00.933966666,
> pts:0:00:00.933966666, duration: 0:00:00.040000000, ... )
> (probe-before-decoder:sink) (2444 bytes, dts: none, pts:none, duration:
> none, ... )
> (probe-after-decoder:sink) (115200 bytes, dts: 0:00:00.997777777,
> pts:0:00:00.997777777, duration: 0:00:00.040000000, ... )
> 
> Maybe the "real-life" source is too slow/pessimistic? Is there anything
> else I'm getting wrong?
> Any ideas/suggestions?
> 
> Thanks,
> Kris
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 



More information about the gstreamer-devel mailing list