Brussels / 1 & 2 February 2014


Media redirection for Spice remote computing solution

Project Melange: optimizing media stream processing for media players and VoIP clients in virtual desktop infrastructures


  • Common media processing use cases
  • Red Hat Spice overview
  • Description of media stream processing problem in VDI
  • Media redirection concept description
  • Media redirection prototype description and demo
  • Feature evolution plan

Discussion topics:

  • Architecture & design considerations (Apache Thrift vs D-Bus)
  • New Spice APIs for virtual channels and overlay rendering
  • Fault-tolerance practices (crash, disconnect)

Handling of media streams is suboptimal in virtual desktop infrastructures if it is done at virtual machines. Consider two main use cases:

  • Playback of a media stream from remote server e.g. user watches Youtube
  • IP telephony e.g. user makes a video call

In both cases media streams are not delivered to the user's device directly but transcoded at the virtualization server. This results in increased network load, server CPU load (less VM density), quality loss of media streams. A solution for this problem, Media Redirection for Red Hat Spice remote computing system is proposed. A separate project Melange has been created.

Solution concept introduces following components: Media Engine and RPC-like service at user's device, Media Engine stubs and RPC-like client at Guest OS. To integrate the solution with Spice, new Spice APIs are proposed: API for establishing virtual channels and API for overlay rendering.

Two prototypes of Media Redirection are under development in Melange project: a demo audio player from GStreamer and a demo softphone based on Google WebRTC internal audio engine. Audio player will utilize D-Bus for RPC, the softphone will use Apache Thrift.

The event will be interesting for remote computing system developers and users (in particular, Red Hat Spice), RPC system developers and users, media engine developers, media player and IP telephony client developers

Note: the authors are NOT working for Red Hat, this work is being done by volunteers in their spare time.


Fedor Lyakhov