Re: [PATCH 0/11] Add GStreamer and VP8 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 25/05/2015 17:07, Fabio Fantoni ha scritto:
Il 21/05/2015 10:34, Fabio Fantoni ha scritto:
Il 13/05/2015 22:20, Francois Gouget ha scritto:
This is a followup on Jeremy White's concept patch to use GStreamer:
http://www.spinics.net/lists/spice-devel/msg10030.html

There is still a lot of work ahead but this patches series has all the 
infrastructure so we're sending it out to verify that it looks ok.

First, with this patch series:
 1. You can use the SpiceVideoCodecs option in the xorg.conf file (or
    $XSPICE_VIDEO_CODECS) to set your video encoder and codec 
    preferences. The default is still the builtin MJPEG encoder.

 2. You can do the same from QEmu by setting the video-codecs option.

 3. Clients can expose new display capabilities to advertise that 
    they support either or both of the MJPEG and VP8 codecs. The new 
    server will automatically pick a codec they support based on the 
    above preference list. Older clients that don't advertise these new 
    capabilities will automatically get an MJPEG stream. So old and new 
    clients and servers should all be compatible.

 4. The GTK and and HTML5 clients have been updated to support both 
    MJPEG and VP8.

 5. Using GStreamer as the video encoder should work well for either 
    codecs as long as the stream does not hit your network connection's 
    bandwidth limit. Essentially this means it should be ok on LANs and 
    fast WiFi networks. This should even work with multiple clients.


There's one known issue in the framework: if the Spice server and 
clients have no codec in common, red_display_create_stream() will set 
video_encoder to NULL and that's not handled well. Currently this should 
really not happen as all clients support MJPEG and we have the builtin 
MJPEG encoder as a fallback. The root of the issue is that the 
red_display_create_stream() callers assume it will never fail. But I 
don't know how to change that yet.


The GStreamer backend still has a number of limitations:
 1. It's still based on GStreamer 0.10. I don't think moving to 1.0 
    will be a problem, if anything it should help (famous last words).
    For instance support for dynamically changing the bitrate appears to 
    be better in 1.0.

 2. It still does not have any rate control but should work fine as long 
    as the bandwidth is sufficient. The issue with rate control is that, 
    at least in 0.10, GStreamer encoders don't like bitrate changes, 
    need some time after each change to actually match the new bitrate, 
    still tend to exceed it from time to time, and sometimes just won't 
    get anywhere near it. Part of these issues are likely to be bugs in 
    the current implementation and it should be possible to work around 
    most others.


Feedback would be greatly appreciated.


Cheers,

Thanks for improving spice, I tried your patches, I applied the
spice-gtk, spice-protocol and I updated the git submodule to use right
spice-protocol but make of spice-common/common generate a new enum.h and
override the spice-protocol patch failing the spice-gtk build with vp8
codec undefined.
Seems that also a spice-common patch (at least in spice.proto) is needed
but missed in the patch serie posted.


Some days ago I tested spice server and client updated and compatibility
with older of both seems ok.
Today I finally tested with video-codecs=gstreamer:vp8.
The video image often freezes for a moment (or probably until next imput
event or something).
qemu log have only some of this as particular:
Spice-Warning **: gstreamer_encoder.c:189:construct_pipeline: GStreamer
error: nessun elemento «appsrc»

You need full logs of spice server and/or spice with debug enabled?

If you need other informations/tests tell me and I'll post them.

Thanks for any reply and sorry for my bad english.


I solved the previous error installing gstreamer0.10-plugins-bad package, libav instead in debian is present only with gstreamer 1.0.
After din't show gstreamer warning anymore but still have image freeze and also spice-gtk crash after open video fullscreen, here the full gdb datas:
http://pastebin.com/idTkZLh0

After I tried with gstreamer using ffmpeg, vp8 doesn't crashed, probably was problem of gstreamer0.10-plugins-bad but "image freeze" problem remain

gstreamer:mjpeg seems similar to spice:mjpeg, both with some artifacts probably caused by mjpeg itself.


About vp8 image freeze here some seconds of gst log debug on spice-gtk when problem happen: http://pastebin.com/PP2R43Yf
Using spice:vp8 seems only have low performance.


If you need other informations/tests tell me and I'll post them.

Thanks for any reply and sorry for my bad english.

Attachment: smime.p7s
Description: Firma crittografica S/MIME

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

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]