SPICE: New ways to remote desktops WITH GSTREAMER INTEGRATION

Pavel Grunt

Victor Toso

SPICe PROTOCOl

SPICe PROTOCOL

SPICE Protocol

client

SERVER

remote desktop

  • Display
  • Input (keyboard, mouse)
  • Cursor (shape, position)
  • Sound (playback, record)
  • USB

SPICe DISPLAY

SPICE Protocol

client

Server

remote desktop

SPICe DISPLAY

SPICE Server

VIDEO Driver

remote desktop

SPICe DISPLAY

SPICE Protocol

client

Server

remote desktop

SPICe DISPLAY

SPICE Protocol

client

Server

remote desktop

SPICe DISPLAY

Demo!

SPICe DISPLAY

SPICE STREAMING: GStreamer

Too many updates in a region? It can be converted to a stream!

  • ​MJPEG is supported for several years
  • Support to VP8, H264 with GStreamer (thanks fgouget)
  • GStreamer ?

SPICE STREAMING: GStreamer

GStreamer is a framework for multimedia applications

  • Pipeline based -> Very flexible
  • Extensible through plugins

gst-launch-1.0 videotestsrc ! autovideoconvert ! autovideosink

SPICE STREAMING: GStreamer

appsrc

video encoder

appsink

client

Updates

GStreamer in server

SPICE STREAMING

who BENEFITS FROM INTEGRATION with GSTREAMER 

 

  • mobile and thin clients as gpu acceleration is always present
  • html clients as major browsers support gpu accelation
  • cpu: due hardware encoding/decoding possibilities

SPICE STREAMING

whole desktop

Demo!

SPICE STREAMING

SPICE STREAMING

FUTURE

  • Better handling hardware encoding and decoding with gstreamer-vaapi
  • Dynamic changes based on network conditions

THANK you!

Victor Toso <victortoso@redhat.com>
Pavel Grunt <pgrunt@redhat.com>

SPICE: New ways to remote desktops

By Victor Toso de Carvalho

Internal

SPICE: New ways to remote desktops

DevConf.cz 2017