ximagesrc and RTP streaming, evaluate solution and performance

Arnaud Loonstra arnaud at sphaero.org
Wed May 6 07:57:18 UTC 2020


I've done a setup like that with h264 rtp streaming with very little 
latency (hardly visible). It was with lower resolutions however! What 
definitely matters is using x264enc zerolatency option!

On 03-05-2020 20:41, alexxtasi wrote:
> Hi all
> My use case is grab the screen of a system and stream over the network
> (gigabit) to another machine and I am evaluating gstreamer as a solution,
> which I think is the only one. Cause I am new in gstreamer, I try some
> pipelines based on examples over the web.
> 
> So far, I found out that my case includes
> - the source machine (mostly with resolution 1080p or 720p and 25fps) :
> ximagesrc <--> videoconvert <--> x264enc <--> rtph264pay <--> udpsink
> - the receiver:
> udpsrc <--> rtph264depay <--> avdec_h264 <--> videoconvert <--> videoscale
> <--> ximagesink
> 
> and the exact pipelines I've tested, are:
> - source
> gst-launch-1.0 ximagesrc use-damage=0 \
> 	! video/x-raw,framerate=25/1 \
> 	! videoscale method=0 \
> 	! video/x-raw \
> 	! videoconvert \
> 	! x264enc \
> 	! rtph264pay \
> 	! udpsink host=192.168.1.5 port=5601
> (for windows machine I used gdiscreencapsrc and video/x-raw,format=I420)
> 
> - receiver
> gst-launch-1.0 -e udpsrc port=5601 caps="application/x-rtp,
> media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264,
> payload=96" \
> 	! rtpjitterbuffer \
> 	! rtph264depay \
> 	! avdec_h264 \
> 	! videoconvert \
> 	! videoscale \
> 	! ximagesink sync=false
> 
> The results till now are disappointing, the delay is unacceptable. And since
> I understand this happening while testing in a single machine (my pc and a
> vm inside), this also happens and in a pc - raspberryPi test. Even when
> raspberryPi sends low resolution (720 × 480) and framerate (10fps), which I
> think is weird !!
> 
> Some could argue that raspberryPi isn't power enough for this, but there are
> cases that it is a part of a gstreamer pipeline (underwater vehicles
> streaming video from rpi to the ground pc using gstreamer).
> In such a case I based my pipeline. The main difference is they use v4l2src
> on the raspberryPi instead of ximagesrc, but the solution is working.
> 
> While searching this mail list, I found some topics about poor performance
> in ximagesrc :
> -  ximagesrc performance
> <http://gstreamer-devel.966125.n4.nabble.com/ximagesrc-performance-td4657884.html>
> -  ximagesrc performace issue
> <http://gstreamer-devel.966125.n4.nabble.com/ximagesrc-performace-issue-td4658073.html>
> -  ximagesrc at 144 fps
> <http://gstreamer-devel.966125.n4.nabble.com/ximagesrc-at-144-fps-td4694010.html>
> as far as I understand from these, ximagesrc is old and also has many tricks
> as "use-damage=false".
> 
> My questions are:
> 1- those delays, are the result of bad configuration of my pipelines ? (eg
> use of rtpjitterbuffer, videoscale method=0, etc)
> 2- if yes, what pipeline should I use ?
> 3- is ximagesrc the appropriate element for my use case and  also is this
> use case feasible at all ?
> 
> thanks in advance
> 
> 
> 
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 


More information about the gstreamer-devel mailing list