Testing latency =============== The following commands can be used for testing the end-to-end latency of the server: Server: ------- $ ./stp-server -p 8000 PUT stream: ----------- $ gst-launch-1.0 -e videotestsrc is-live=TRUE ! videoscale ! \ video/x-raw, height=120, width=160 ! timeoverlay font-desc="80px" ! tee name=t \ t. ! queue ! videoconvert ! theoraenc ! oggmux ! souphttpclientsink location="http://localhost:8000/somepath?type=http" \ t. ! queue ! videoconvert ! xvimagesink GET stream: ----------- $ gst-launch-1.0 souphttpsrc location="http://localhost:8000/somepath" ! \ decodebin ! videoconvert ! videoscale ! autovideosink Launch as many GET streams as necessary. For multiple PUT streams, just change "somepath" to something else. If you start seeing messages such as this on the GET stream, you've exceeded the computer's realtime encoding/decoding capability: gstbasesink.c(2791): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstXvImageSink:autovideosink0-actual-sink-xvimage: There may be a timestamping problem, or this computer is too slow.