[foms] WebM Manifest

Steve Lhomme slhomme at matroska.org
Fri Mar 18 09:20:53 PDT 2011


On Fri, Mar 18, 2011 at 4:05 PM, Mark Watson <watsonm at netflix.com> wrote:
>
> On Mar 17, 2011, at 11:52 PM, Steve Lhomme wrote:
>
>> On Fri, Mar 18, 2011 at 12:10 AM, Timothy B. Terriberry
>> <tterribe at xiph.org> wrote:
>>>> In the case you describe the only drawback is that playback is not as
>>>> perfect as it can theoretically be. But that's expected when using
>>>> adaptive streaming anyway.
>>>
>>> The comments I gave before were not meant to be an exhaustive list of
>>> shortcomings. You also need to either a) know enough about the streams
>>> in advance to know whether or not such a switch will be successful
>>> (i.e., if you can't find that information in the manifest, then you'll
>>> need a full keyframe index, exposed in Javascript, which you would
>>> otherwise not need), meaning higher startup costs, etc., or b) you can
>>> try to make such a switch without knowing that it will succeed, and
>>> frequently download a lot of extra data which must be thrown away when
>>> you fail. Either way you add a lot of implementation complexity to do
>>> it. I guess maybe that all still falls under "playback is not as perfect
>>> as it can theoretically be", but that continues all the way down to, "It
>>> doesn't play at all."
>>
>> The manifest usually don't contain all the possible switch points
>> (range information) for each variant. That information is deduced from
>> the index that is loaded at startup (which in binary format will take
>> less space than XML/JSON anyway). I think that's how DASH works and
>> IMO it makes more sense that way.
>
> Yes, the keyframe positions are in the index.
>
> It is certainly possible to provide seamless switching without there being any keyframe alignment, it is just more difficult, involving changes deeper into the media pipeline.

Why would it be more difficult ?
Non Aligned case: You play one stream and then decide you can use more
bandwidth, you look for the next keyframe in the stream you want to
switch to and do the switch at that time
Aligne case: You play one stream and then decide you can use more
bandwidth, you look for the next keyframe in the stream you want to
switch to and do the switch at that time

In short, the fact that they are aligned or not as no effect.

-- 
Steve Lhomme
Matroska association Chairman


More information about the foms mailing list