Re: spice

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



On Thu, Jun 23, 2022 at 02:15:23PM +0800, yipeng@xxxxxxxxxxx wrote:
> Hi,Victor Toso!
> I am learning spice code recently. I have some doubts about
> spice display channel. I hope to get your reply.

You got it. I'm cc'ing spice-devel list which is the best place
to ask for help related to Spice.

> 1. How does spice distinguish between video transmission and
> picture transmission.

If the server is configured for streaming [0], it'll decide to
start a video encoding based on how many updates it is getting
from the Guest. We had a demo about it ages ago:

> 2. in the process of video transmission, is it the number of
> frames of all videos or the changing part of the transmitted
> video.

Not sure I understand the question. The streaming will happen
based on the amount of updates in a specific region of the
Display. Let's say that you are playing a 720x360 video in a 4K
display, only that region of the video is being updating too much
and will be converted to a video stream. If you had two 720x360
videos playing, that's where the options all/filter would change
the behavior, I think. With one, you would get two video streams,
with the other it'd combine them in both.

I'm talking from memory, so I might be wrong with some details.

Note that with most recent Desktop environments like GNOME or
windows 10, there is a lot of 3D happening which is full screen,
that means it is interesting to stream the whole desktop.

> 3. whether the transmission display can be configured to H264
> mode.

It can, but it is software encoding. The default is the mjpeg
encoder. H264, vp8/vp9 is using gstreamer and the code would most
definitely need tweaks and tests to be considered for
production... This is a heads up.

What is your use case?

[0] If using libvirt, that means setting <streaming mode=all> (or
filter). See host video encoding at:


Attachment: signature.asc
Description: PGP signature

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