SPICE: New ways to remote desktops WITH GSTREAMER INTEGRATION

Victor Toso

SPICE

 

Spice

SPICE could be divided into 4 different components:
  • Client - A spice application to connect to the remote VM

  • Server - A library used in the host to share the VM

  • Guest - A (remote) virtual machine running in the host

  • Protocol - the specification in the communication of the three other components

SPICe PROTOCOL

SPICE Protocol

client

SERVER

remote desktop

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

SPICe PROTOCOL

SPICE Protocol

client

Server

QEMU

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
  • 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

appsrc

video decoder

appsink

GStreamer in Client

SPICE STREAMING: GStreamer

Updates

Video Stream

playbin

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
  • Dynamic changes based on network conditions
  • RTP (Real-time transport protocol)

THANK you!

  • Codeweavers (www.codeweavers.com)

  • Pavel Grunt

Victor Toso <victortoso@redhat.com>

Special thanks:

SPICE: New ways to remote desktops

By Victor Toso de Carvalho

Internal

SPICE: New ways to remote desktops

DevConf.cz 2017