[Spice-commits] server/gstreamer-encoder.c

Frediano Ziglio fziglio at kemper.freedesktop.org
Sat Oct 29 09:34:34 UTC 2016

 server/gstreamer-encoder.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 96818da95d607603627f51c83345d5635290d387
Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Thu Oct 27 19:04:27 2016 +0200

    streaming: Limit the h264 image compression level
    When uncapped x264enc can compress the frames beyond recognition in low
    bitrate situation. Beyond the set limit the gains are modest and it is
    better to drop frames to reduce the bit rate further.
    Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c
index d575c67..641ae96 100644
--- a/server/gstreamer-encoder.c
+++ b/server/gstreamer-encoder.c
@@ -932,11 +932,14 @@ static gboolean create_pipeline(SpiceGstEncoder *encoder)
         /* - Set tune and sliced-threads to ensure a zero-frame latency
          * - qp-min ensures the bitrate does not get needlessly high.
+         * - qp-max ensures the compression does not go so high that the video
+         *   is unrecognizable. When that threshold is reached it is better to
+         *   drop frames to lower the bit rate further.
          * - Set speed-preset to get realtime speed.
          * - Set intra-refresh to get more uniform compressed frame sizes,
          *   thus helping with streaming.
-        gstenc_opts = g_strdup("byte-stream=true aud=true qp-min=15 tune=4 sliced-threads=true speed-preset=ultrafast intra-refresh=true");
+        gstenc_opts = g_strdup("byte-stream=true aud=true qp-min=15 qp-max=35 tune=4 sliced-threads=true speed-preset=ultrafast intra-refresh=true");
         /* gstreamer_encoder_new() should have rejected this codec type */

More information about the Spice-commits mailing list