[Spice-devel] [PATCH v9 00/24] Add GStreamer support for video streaming

Francois Gouget fgouget at codeweavers.com
Thu Jan 21 03:03:17 PST 2016


On Thu, 21 Jan 2016, Gerd Hoffmann wrote:

>   Hi,
>  
> > Changes from v7:
> > * When the client has support for GStreamer video codecs it now 
> >   checks the presence of each supported codec before advertising support 
> >   for it.
> 
> ... and the server picks one codec which is supported by both client and
> gstreamer, with the codec priorities being configurable, is that
> correct?  So things keep working if gstreamer happens to have no h264
> support (due to the patent mess) on either side?

Yes.

The client checks which gstreamer decoding pipelines it can successfully 
build, which means the required GStreamer plugins are present, and 
advertises support for the corresponding codecs.

Then the server picks the first codec in its preferences list which the 
client advertised support for.

For instance the server administrator could set 
'SpiceVideoCodecs=gstreamer:h264;spice:mjpeg' so that priority is given 
to h264 (maybe he got hardware encoding working for it on his system) 
with a fallback to plain mjpeg to remain compatible with most clients, 
but no VP8 (maybe he does not have hardware encoding for it and does not 
want the extra CPU load).

Another administrator may want to avoid patent issues and set 
'gstreamer:vp8;spice:mjpeg', and yet another prioritize low CPU usage 
and only accept 'spice:mjpeg'.

As illustrated above I have opted to have the server administrator in 
control of the codec to use because the encoding part is the most taxing 
and only him knows what works well for his server based on hardware 
encoding capabilities and number of concurrent sessions. He will also 
usually have an idea of the bandwidth his clients have: if it's a 
virtual desktop system serving clients over a LAN then bandwidth is 
probably not an issue he'd probably pick mjpeg. If he's administering a 
streaming gaming service over the Internet, then bandwidth usage would 
be paramount and he would make sure to prioritize h264 and/or vp8, and 
maybe go so far as to disable mjpeg support (and he would make sure to 
get hardware encoding support).

-- 
Francois Gouget <fgouget at codeweavers.com>


More information about the Spice-devel mailing list