[Spice-devel] [PATCH spice-server 00/28] adaptive video streaming

Marc-André Lureau mlureau at redhat.com
Wed Feb 27 07:08:41 PST 2013



----- Mensaje original -----
> I understand from libjpeg documentation that by default the luminance
> is
> downsampled by a factor of 2, and the chrominance by a factor of 4.
> So
> we can try downsampling the luminance by a factor of 4.

or even more arbitrary downscaling before jpeg.

> > For high resolution video (>720p) the videos codecs are _real_
> > hogs. I use to run cpu/qos quality of video codecs, and libvp8 at
> > that time wasn't able to do real time 1080p even on our fastest
> > hardware (using 8 xeon cores iirc). It wasnt't very good at
> > running on multiple threads. I can imagine it may have improved
> > for the past 2 years. (x264 with realtime quality level was ~4x
> > faster iirc).
> >
> It is worth trying. I know that there are live streaming applications
> that use it, so it may have improved in the last years.

Note sure if this is very representative, but I would do analysis like this before any plan.

perf stat gst-launch videotestsrc pattern=snow num-buffers=250 ! 'video/x-raw-yuv,width=1024,height=768,framerate=25/1' ! vp8enc threads=1 quality=5 speed=7 ! fakesink

On a i5 CPU M 540 @ 2.53GHz × 4 , 10 sec. of video 1024x768 at 25fps encoding time with a single thread: 39 seconds (speed=7) to 14min! (speed=0, the default):

Encoding time can vary a lot depending on input. With pattern=ball I get a ~6 to ~14s encoding time, depending on speed parameter. And libvp8 seems better at scaling on multiple thread, but is it really what VDI hosts would want?

Acceptable? that's a question to ask before using any video codecs. My wild guess today is no, but with good GPU encoder perhaps.


More information about the Spice-devel mailing list