[Spice-devel] Streaming video command line

Alon Levy alevy at redhat.com
Fri Apr 15 08:22:17 PDT 2011


On Thu, Apr 14, 2011 at 03:20:40PM +0200, Andrea Celestino wrote:
> I would like to improve the streaming video performance in Spice, do you
> think that is possible to improve it? In what way?
> Are there documents that describes in detail how spice works with video?

The best I can offer in terms of documentation is the pdfs in the documents
section of spice-space.org, I imagine you are looking for something more,
sorry to disappoint.

The code you are interested in is server/red_worker.c, but that's not very
helpful since that file is huge. Would be nice to split the video related
stuff to a separate file.

worker->streaming_video - determines how we handle streaming video

git grep stream -- server/red_worker.c

I can give you better pointers if you ask more specific questions, but doing
the documentation myself right now.. too much work.

overview of what spice does:
 * determine if a given draw operation (has to be an opaque copy iirc) is
  repeated to the same area.
 * if so, starts a mjpeg encoder and sends the stream to the client

how to improve this (some is on the Features page in spice-space):
 * learn to do various video acceleration apis (windows has it, linux has it)
  * this is by far the best way to go regarding performance, unless you are
  willing to sacrifice cpu for bandwidth in which case I guess you would reencode.
  * otoh this is a pretty large change to multiple parts of spice:
   * you need to update the driver for each platform you choose to support, update the protocol, teach server and client
  * it's definitely on the todo list, but no date set.
 * replace mjpeg with a different encoder
  * if it's just a better performing encoder, clear win.
  * otherwise you get the usual cpu/bw tradeoff.
  * or you could try to learn which encoder fits which stream (based on some
  metric, could be the performance of the encoders themselves)
   * just throwing an idea.

Alon

> 
> 2011/4/11 Alon Levy <alevy at redhat.com>
> 
> > On Mon, Apr 11, 2011 at 03:48:08PM +0200, Andrea Celestino wrote:
> > > Hi,
> > > I have installed Spice and now I'm trying to use it. I'm interested in
> > how
> > > spice manage streaming video. I read that there is the option
> > >
> > > -streaming-video=[all|off|filter]
> > >
> > > Can you explain me the difference between these three option?
> > > Which source file read the command line?
> > > Why I have tried to play a video in a player but i have not notice any
> > > difference between the two options 'off' and 'filter'?
> > >
> >
> > Look at http://cgit.freedesktop.org/spice/spice/tree/server/red_worker.c
> >
> > search for STREAM_VIDEO_FILTER
> >
> > The switch toggles modes for creating streams:
> >  off - never create
> >  all/filter - create either based on smallest size, or just based on
> >  number of consecutive opaque copies to same area.
> >
> > > Thanks very much for the help.
> >
> > > _______________________________________________
> > > Spice-devel mailing list
> > > Spice-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> >
> >

> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel



More information about the Spice-devel mailing list