[Spice-devel] [PATCH v5 00/20] Add GStreamer support for video streams

Francois Gouget fgouget at codeweavers.com
Thu Sep 3 07:13:51 PDT 2015


On Thu, 3 Sep 2015, Frediano Ziglio wrote:
[...]
> One thing that scare me with this set of patches are the variability of some
> codecs. For current formats there is just a capabilities exchange like "I
> support this format", "ok, I'll use it". But what would happen if h264 is
> enabled and the server start encoding with parameters which the client
> cannot support? Think about a thin client wanting to connect. Thin client
> is expecting baseline profiles but then server try to push high profile
> streams and the client cannot handle it although can handle h264?

To solve this issue we should decide what profiles must be supported by 
clients claiming to support H264, and arrange for the server to only 
send those profiles.

There we can either shoot for minimizing the requirements on the client, 
or for the profile that will provide the maximum performance for the few 
clients that support it (e.g. desktop clients).

IMHO the performance gain from MJPEG is sufficient in itself so it makes 
more sense to shoot for the widest compatibility. More than likely by 
the time we need more performance the world will have moved to a new 
codec anyway (e.g. h265).

Now all we have to do is pick a profile and adjust the x264enc 
parameters accordingly.

For instance Android supports the Baseline Profile and so does iOS so we 
could standardise on that.

 * Baseline Profile (BP)
   https://developer.android.com/guide/appendix/media-formats.html

 * H.264 Baseline Level 3.0, Baseline Level 3.1, Main Level 3.1, and High Profile Level 4.1.
   https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html


Wikipedia seems to have a relatively complete list of standard profiles:
https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles


There's less information about VP8 profiles. I'm not sure there's such a 
notion there.

-- 
Francois Gouget <fgouget at codeweavers.com>


More information about the Spice-devel mailing list