Re: Some ideas on SVC support in WebRTC 1.0 (Take 2)

Bernard, Harald, any feedback on my proposal below? Seems it has been 
buried under side discussions on this thread.

Best regards
Sergio

On 11/07/2018 10:38, Sergio Garcia Murillo wrote:
> Could we at least agree that we will only cover the SRST case with no 
> PT-multiplexing, that would simplify things a lot.
>
> If the simple approach is not accepted (just specifying the number of 
> spatial and temporal layer per stream), we could add a svc layer 
> definition within each of the encodings.
>
> For example for VP9 SVC with SL3TL2, it would look something like this 
> (each layer encoding could have other attributes like mas bitrate, 
> proction priority, etc):
>
> var encodings = [
>     {
>         //..other encoding parameters..
>         layers : [
>             {id:"sl0tl0", resolutionScale: 4.0, framerateScale: 2.0 },
>             {id:"sl0tl1", resolutionScale: 4.0, framerateScale: 1.0, 
> dependencies: ["sl0tl0"] },
>             {id:"sl1tl0", resolutionScale: 2.0, framerateScale: 2.0, 
> dependencies: ["sl0tl0"] },
>             {id:"sl1tl1", resolutionScale: 2.0, framerateScale: 1.0, 
> dependencies: ["sl1tl0","sl0tl1"] },
>             {id:"sl2tl0", resolutionScale: 1.0, framerateScale: 2.0, 
> dependencies: ["sl1tl0"] },
>             {id:"sl2tl1", resolutionScale: 1.0, framerateScale: 1.0, 
> dependencies: ["sl1tl0","sl2tl0"] }
>         ]
>     }
> ];
>
> And for simulcast with two simulcast layers, the first with two 
> temporal layers and the high res with three
>
> var encodings = [
>     {
>         rid: "lowres",
>         resolutionScale: 2.0,
>         //..other encoding parameters..
>         layers : [
>             {id:"tl0", framerateScale: 2.0 },
>             {id:"tl1", dependencies: ["tl0"] }
>         ]
>     },
>     {
>         rid: "highres",
>         encodingId: "H0",
>         resolutionScale: 1.0,
>         //..other encoding parameters..
>         layers : [
>             {id:"tl0", framerateScale: 4.0 },
>             {id:"tl1", framerateScale: 2.0, dependencies: ["tl0"] },
>             {id:"tl2", dependencies: ["tl1"] }
>         ]
>     }
> ];
>
>
> If we decide to get rid of the layer dependency definition, as for 
> example VP8 and VP9 requires that each layer depends only on the lower 
> temporal and spatial layer, we could have something like this instead:
>
> var encodings = [
>     {
>         //..other encoding parameters..
>         layers : [
>             {sid:0, tid:0, resolutionScale: 4.0, framerateScale: 2.0 },
>             {sid:0, tid:1, resolutionScale: 4.0, framerateScale: 1.0 },
>             {sid:1, tid:0, resolutionScale: 2.0, framerateScale: 2.0 },
>             {sid:1, tid:1, resolutionScale: 2.0, framerateScale: 1.0 },
>             {sid:2, tid:0, resolutionScale: 1.0, framerateScale: 2.0 },
>             {sid:2, tid:1, resolutionScale: 1.0, framerateScale: 1.0, }
>         ]
>     }
> ];
>
> And for simulcast:
>
> var encodings = [
>     {
>         rid: "lowres",
>         resolutionScale: 1.0,
>         //..other encoding parameters..
>         layers : [
>             {tid:0, framerateScale: 2.0 },
>             {tid:1}
>         ]
>     },
>     {
>         rid: "highres",
>         encodingId: "H0",
>         resolutionScale: 1.0,
>         //..other encoding parameters..
>         layers : [
>             {tid:0, framerateScale: 4.0 },
>             {tid:1, framerateScale: 2.0 },
>             {tid:2 }
>         ]
>     }
> ];

Received on Friday, 13 July 2018 07:59:49 UTC