[Spice-devel] Is the data after USB camera redirection compressed?

Frediano Ziglio freddy77 at gmail.com
Thu Feb 4 13:46:55 UTC 2021


Il giorno gio 4 feb 2021 alle ore 12:56 lx <lxlenovostar at gmail.com> ha scritto:
>
>
>
> Uri Lublin <uril at redhat.com> 于2021年2月2日周二 下午10:32写道:
>>
>> On 2/2/21 2:50 PM, lx wrote:
>> >
>> >
>> > Uri Lublin <uril at redhat.com <mailto:uril at redhat.com>> 于2021年1月31日周
>> > 日 下午9:48写道:
>> >
>> >     On 1/30/21 1:25 PM, lx wrote:
>> >      > Frediano Ziglio <freddy77 at gmail.com <mailto:freddy77 at gmail.com>>
>> >     于2021年1月29日周五 下午6:39写道:
>> >      >
>> >      >> Il giorno gio 28 gen 2021 alle ore 01:45 lx
>> >     <lxlenovostar at gmail.com <mailto:lxlenovostar at gmail.com>> ha
>> >      >> scritto:
>> >      >>>
>> >      >>>
>> >      >>> Uri Lublin <uril at redhat.com <mailto:uril at redhat.com>> 于2021年1
>> >     月27日周三 下午11:47写道:
>> >      >>>>
>> >      >>>> On 1/27/21 4:22 AM, lx wrote:
>> >      >>>>> Hi all:
>> >      >>>>>          If I redirect USB camera to virtual machine, I think
>> >     we send
>> >      >>>>> original URB to virtual machine by USB channel.
>> >      >>>>> Is this understanding correct? If we want to improve the user
>> >      >> experience,
>> >      >>>>> we need to compress URB data?
>> >      >>>>
>> >      >>>> Hi,
>> >      >>>>
>> >      >>>> If you build with lz4 enabled (both client and server),
>> >      >>>> then it should use lz4 to compress the data.
>> >      >>>>
>> >      >>>> There is no functionality to create
>> >      >>>> a video stream out of raw data.
>> >      >>>>
>> >      >>>> Can the USB camera be configured to send a compress stream?
>> >      >>>>
>> >      >>>> Uri.
>> >      >>>>
>> >      >>>
>> >      >>>    Hi:
>> >      >>>     USB camera can support MJPG and YUV.   I think H264 is
>> >     better than
>> >      >> MJPG. So Can we
>> >      >>> let spice support H264 ? Is this feasible?
>> >      >>>
>> >      >>
>> >      >> This is independent from SPICE, if the camera send compressed data
>> >      >> already SPICE will just
>> >      >> forward compressed data in whatever format is in USB.
>> >      >> If the camera supports MJPEG and YUV choose MJPEG, YUV is not
>> >      >> compressed (just a different color
>> >      >> space than RGB, often taking less bits but still not compressed).
>> >      >>
>> >      >> Frediano
>> >      >>
>> >      >
>> >      > If the camera chooses YUV, can we encode it to H264 in SPICE? Is this
>> >      > feasible?
>> >
>> >     Currently, SPICE does not do look at USB data.
>> >
>> >
>> > Hi:
>> >
>> > What do you mean spice just forward USB protocol data?
>>
>> SPICE does look at USB headers, configurations, etc.
>>
>> I meant that SPICE does not look at data that is
>> being transferred. So for example, it does
>> not know if the data coming from the camera is YUV,
>> RGB, MJPEG or other.
>>
>> To answer your question above more clearly:
>> Currently it's not possible to H264-encode the
>> YUV data coming from the camera.
>> It is feasible to add code that does it.
>> If possible, it's best if the camera sends an encoded video stream.
>>
>> Uri.
>>
> Hi all:
>         I know ICA/RDP is better than spice, when they redirect the USB  camera devices. This is beacuse
>  ICA/RDP encode video stream, so the effect is so good? Or how can we optimize spice to achieve their results?
>
> Thank you
>
> btw: I know ICA/RDP support few devices.
>

Hi,
   what exactly do you mean by "I know ICA/RDP is better than spice",
I mean, did you
personally try and works better? Did you do some measurement? Is just
some comments
on Internet?

I didn't try personally (I don't have ICA solution installed) but you
could run a test to check for
compression:
- run a program in the VM to record camera video without showing on the screen
- start monitoring traffic (like tcpdump, or just some network
statistic program)
- let the recording goes for a predefined amount of time
- stop monitoring.
- look at the amount of traffic generated.
If the amount of traffic is less they are compressing (not said they
are video compressing,
maybe only as raw data better than us). If they are compressing A LOT
(like 5 times)
probably they are using video compression (unless they found a way to
reduce frame rate).

It could be that they detect camera and optimize specifically the
dialog with the VM.

Other reasons could be less pipeline having a lower latency or some
sort of QoS for the
network.

Frediano


More information about the Spice-devel mailing list