WebM adaptive streaming

720 views
Skip to first unread message

Frank Galligan

unread,
Mar 14, 2012, 2:23:14 PM3/14/12
to WebM Discussion
I have been working on WebM VOD adaptive streaming for a while now. I posted instructions on how to create and playback a WebM adaptive presentation here goo.gl/8NA9e [1].

If you have any questions/comments/bugs please let me know.

General Notes:
- The player is written in JavaScript using Media Source API version 3  goo.gl/95z8i [2].
- The manifest format is DASH using a proposed informative WebM spec here goo.gl/FtTPV [3].
- The player will switch video streams seamlessly.
- The current player only supports one audio stream.

Thanks,
Frank

Basil Mohamed Gohar

unread,
Mar 14, 2012, 2:41:05 PM3/14/12
to webm-d...@webmproject.org
Is there a working example of this? And would this work in Firefox at
all, or only Chrome with the provided instructions? I skimmed the
various links and saw specs and descriptions, but no usable example/demo
yet, which is why I'm asking.

On 03/14/2012 02:23 PM, Frank Galligan wrote:
> *I have been working on WebM VOD adaptive streaming for a while now. I


> posted instructions on how to create and playback a WebM adaptive
> presentation here goo.gl/8NA9e

> <http://goo.gl/8NA9e>[1].<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/instructions-to-playback-a-webm-dash-presentation>
> <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/instructions-to-playback-a-webm-dash-presentation>


> If you have any questions/comments/bugs please let me know.
>
> General Notes:
> - The player is written in JavaScript using Media Source API version 3

> goo.gl/95z8i <http://goo.gl/95z8i>[2].


> - The manifest format is DASH using a proposed informative WebM spec

> here goo.gl/FtTPV <http://goo.gl/FtTPV>[3].


> - The player will switch video streams seamlessly.

> - The current player only supports one audio stream.*

> --
> You received this message because you are subscribed to the Google
> Groups "WebM Discussion" group.
> To post to this group, send email to webm-d...@webmproject.org.
> To unsubscribe from this group, send email to
> webm-discuss...@webmproject.org.
> For more options, visit this group at
> http://groups.google.com/a/webmproject.org/group/webm-discuss/?hl=en.

Frank Galligan

unread,
Mar 14, 2012, 2:45:53 PM3/14/12
to webm-d...@webmproject.org
Hi Basil,

No public example yet. I'm working on that. This will not work in Firefox as it only works with the Media Source api. Do you know If Firefox has something akin to the Media Source api?

Frank

Basil Mohamed Gohar

unread,
Mar 14, 2012, 2:50:14 PM3/14/12
to webm-d...@webmproject.org
The best I could find is this, which doesn't appear to imply anything
has been implemented yet:

https://wiki.mozilla.org/Features/Platform/AdaptiveBandwidth

On 03/14/2012 02:45 PM, Frank Galligan wrote:
> Hi Basil,
>
> No public example yet. I'm working on that. This will not work in
> Firefox as it only works with the Media Source api. Do you know If
> Firefox has something akin to the Media Source api?
>
> Frank
>
>
> On Wed, Mar 14, 2012 at 2:41 PM, Basil Mohamed Gohar
> <abu_hu...@hidayahonline.org

> <mailto:abu_hu...@hidayahonline.org>> wrote:
>
> Is there a working example of this? And would this work in Firefox at
> all, or only Chrome with the provided instructions? I skimmed the
> various links and saw specs and descriptions, but no usable
> example/demo
> yet, which is why I'm asking.
>
> On 03/14/2012 02:23 PM, Frank Galligan wrote:
> > *I have been working on WebM VOD adaptive streaming for a while
> now. I
> > posted instructions on how to create and playback a WebM adaptive
> > presentation here goo.gl/8NA9e <http://goo.gl/8NA9e>
> >
> <http://goo.gl/8NA9e>[1].<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/instructions-to-playback-a-webm-dash-presentation>
> >
> <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/instructions-to-playback-a-webm-dash-presentation>
> > If you have any questions/comments/bugs please let me know.
> >
> > General Notes:
> > - The player is written in JavaScript using Media Source API
> version 3

> > goo.gl/95z8i <http://goo.gl/95z8i> <http://goo.gl/95z8i>[2].


> > - The manifest format is DASH using a proposed informative WebM spec

> > here goo.gl/FtTPV <http://goo.gl/FtTPV> <http://goo.gl/FtTPV>[3].


> > - The player will switch video streams seamlessly.
> > - The current player only supports one audio stream.*
> >
> > Thanks,
> > Frank
> >
> > [1]
> >
> https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/instructions-to-playback-a-webm-dash-presentation
> >
> > [2]
> >
> http://html5-mediasource-api.googlecode.com/svn/tags/0.3/draft-spec/mediasource-draft-spec.html
> >
> > [3]
> >
> https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "WebM Discussion" group.
> > To post to this group, send email to

> webm-d...@webmproject.org <mailto:webm-d...@webmproject.org>.


> > To unsubscribe from this group, send email to
> > webm-discuss...@webmproject.org

> <mailto:webm-discuss%2Bunsu...@webmproject.org>.


> > For more options, visit this group at
> >
> http://groups.google.com/a/webmproject.org/group/webm-discuss/?hl=en.
>
> --
> You received this message because you are subscribed to the Google
> Groups "WebM Discussion" group.
> To post to this group, send email to webm-d...@webmproject.org

> <mailto:webm-d...@webmproject.org>.


> To unsubscribe from this group, send email to
> webm-discuss...@webmproject.org

> <mailto:webm-discuss%2Bunsu...@webmproject.org>.

Ralph Giles

unread,
Mar 14, 2012, 3:34:10 PM3/14/12
to webm-d...@webmproject.org
On 14 March 2012 11:50, Basil Mohamed Gohar
<abu_hu...@hidayahonline.org> wrote:

> The best I could find is this, which doesn't appear to imply anything
> has been implemented yet:

The tracking bug for this is
https://bugzilla.mozilla.org/show_bug.cgi?id=702122. The first set of
patches were posted last week under
https://bugzilla.mozilla.org/show_bug.cgi?id=734546 So progress, but
still a ways from landing.

-r

Frank Galligan

unread,
Mar 14, 2012, 4:39:48 PM3/14/12
to webm-d...@webmproject.org
Nice.


Frank Galligan

unread,
Mar 15, 2012, 10:04:08 PM3/15/12
to webm-d...@webmproject.org
We put up a demo of the WebM DASH adaptive player. This is the link:

Just remember to enable Media Source in "chrome://flags" or the demo will not work.

This demo is not changing resolution because most people won't have the version of Chrome to make it work. Plus you need to start Chrome with a command line parameter.

The bandwidth is capped at 1000Kbps, if you want to change the value just enter a new number into the text box and press the Set button.

If you find any issues (this is a demo so I'm sure there will a few) please file a bug here. http://code.google.com/p/webm/issues/list

Stefan Lederer

unread,
Mar 29, 2012, 12:31:18 PM3/29/12
to webm-d...@webmproject.org, da...@itec.aau.at

Hello Frank,

 

we at the Institute of Information Technology from the Alpen Adria Universität Klagenfurt have been working on a JavaScript-based DASH client fully integrated in the Web browser which is now available at [1]. Moreover it is based on Google Chrome and its Media Source API [2]. At the time when we have worked on this, only WebM was available, thus, the demo is using WebM segments but the implementation is agnostic to the segment format and - as you probably know - Media Source API has been extended towards ISOBMFF segments. Therefore we provide a DASH dataset with ISOBMFF segments on our website [3] which can be used for further experiments. As we are mainly interested in performance evaluations it would be good to use our dataset as a common basis to get objective metrics of the different implementations.

 

Your MPDs provided in [4] look good, but we would have a few minor comments on them:

•             ‘Initialization’ instead of ‘Initialisation’

•             ‘mimeType’ instead of ‘mimetype’

•             you should name it *.mpd instead of *.xml

 

You can also easily check your MPDs using our MPD validator [5] (the profile which you are using is currently not defined in the standard, so you should use ‘urn:mpeg:dash:profile:full:2011’ for our validator)

 

Best Regards

Stefan

 

[1] http://dash.itec.aau.at , http://www-itec.uni-klu.ac.at/dash/?page_id=746

[2] http://html5-mediasource-api.googlecode.com/svn/trunk/draft-spec/mediasource-draft-spec.html

[3] http://www-itec.uni-klu.ac.at/dash/?page_id=207

[4] http://downloads.webmproject.org/adaptive-demo/adaptive/dash-player.html

[5] http://www-itec.uni-klu.ac.at/dash/?page_id=605

 

--

Frank Galligan

unread,
Mar 30, 2012, 5:47:45 PM3/30/12
to webm-d...@webmproject.org, da...@itec.aau.at
Hi Stefan,

This is awesome I will test it out.


On Thu, Mar 29, 2012 at 12:31 PM, Stefan Lederer <ledere...@gmx.at> wrote:

Hello Frank,

 

we at the Institute of Information Technology from the Alpen Adria Universität Klagenfurt have been working on a JavaScript-based DASH client fully integrated in the Web browser which is now available at [1]. Moreover it is based on Google Chrome and its Media Source API [2]. At the time when we have worked on this, only WebM was available, thus, the demo is using WebM segments but the implementation is agnostic to the segment format and - as you probably know - Media Source API has been extended towards ISOBMFF segments. Therefore we provide a DASH dataset with ISOBMFF segments on our website [3] which can be used for further experiments. As we are mainly interested in performance evaluations it would be good to use our dataset as a common basis to get objective metrics of the different implementations.

 

Your MPDs provided in [4] look good, but we would have a few minor comments on them:

•             ‘Initialization’ instead of ‘Initialisation’

Everywhere in the 23009-1 it is labeled 'Initialisation'. Personally I spell it 'Initialize' but I'm from the US. Did this get switched in some updated text?

•             ‘mimeType’ instead of ‘mimetype’

Thanks I will switch.
 

•             you should name it *.mpd instead of *.xml

I will switch this too.
 

 

You can also easily check your MPDs using our MPD validator [5] (the profile which you are using is currently not defined in the standard, so you should use ‘urn:mpeg:dash:profile:full:2011’ for our validator)

I will try this out.

Frank Galligan

unread,
Mar 30, 2012, 6:25:16 PM3/30/12
to webm-d...@webmproject.org, da...@itec.aau.at
I tired it quick, but they only played the first segment for me.  I'm on 19.0.1068.1 dev-m windows. I will see if I can debug what is going on next week.

I also looked at your mpd file. I think you need to change the Representation id's as they must be unique. Also you should move the mimeType, codecs, and startsWithSap from the Representations to the AdaptationSet as they are all the same.

Should the codec attribute be "vp8, vorbis"?

Frank

Stefan Lederer

unread,
Mar 31, 2012, 5:13:40 AM3/31/12
to webm-d...@webmproject.org, da...@itec.aau.at
Hi Frank,

thank you for your feedback!

2012/3/31 Frank Galligan <fgal...@google.com>:


> I tired it quick, but they only played the first segment for me.  I'm on
> 19.0.1068.1 dev-m windows. I will see if I can debug what is going on next
> week.

We tested it on 17.0.963.46 m. There it runs well, but you are right,
on 19.0.1084.1 dev-m (as well as on 18.0.1025.142 m) only the first
segment is played. We will check and fix this.

> I also looked at your mpd file. I think you need to change
> the Representation id's as they must be unique.

Yes, you're right. Thx!

> Also you should move the
> mimeType, codecs, and startsWithSap from the Representations to the
> AdaptationSet as they are all the same.

Yes, definitely a good optimization.

> Should the codec attribute be "vp8, vorbis"?

Yes, we forgot to add 'vorbis' to the codec attribute as we also have
the audio track in the segments. Thx!

>>> •             ‘Initialization’ instead of ‘Initialisation’
>>
>> Everywhere in the 23009-1 it is labeled 'Initialisation'. Personally I
>> spell it 'Initialize' but I'm from the US. Did this get switched in some
>> updated text?

Yes, I was also wondering about this :-). It has been updated to
'Initialization' in the most recent version.

Best regards
Stefan

Stefan Lederer

unread,
Apr 2, 2012, 12:02:39 PM4/2/12
to webm-d...@webmproject.org, da...@itec.aau.at
Hi Frank,

> 2012/3/31 Frank Galligan <fgal...@google.com>:
> > I tired it quick, but they only played the first segment for me.  I'm
> > on
> > 19.0.1068.1 dev-m windows. I will see if I can debug what is going on
> > next week.
>
> We tested it on 17.0.963.46 m. There it runs well, but you are right, on
> 19.0.1084.1 dev-m (as well as on 18.0.1025.142 m) only the first segment
is
> played. We will check and fix this.

Our HTTP requests for segments were based on the progress event of the
MediaSource API. Unfortunately this approach does not work anymore on the
newer releases of Chrome. We corrected our solution and used the opportunity
to implement a separate download buffer in JavaScript and an associated
segment request management.

Best Regards
Stefan
http://dash.itec.aau.at

Stefan Lederer

unread,
Apr 3, 2012, 10:20:20 AM4/3/12
to webm-d...@webmproject.org
Hi Frank,

we are currently trying to use Iso Base Media File Format based
segments with the MediaSource API. Is this already implemented in
Chrome 19.0.1084.1 dev-m?

This example uses a simple MPD with one represenation containing only
a video track: http://www-itec.uni-klu.ac.at/dash/js/dashtest-ibmff.html

Unfortunately it doesn't start to decode any frames. Is there a
decoder logfile somewhere to check for errors?

Thx and best regards
Stefan

btw.: is there a seperate mailing list for the MediaSource API?

2012/4/2 Stefan Lederer <ledere...@gmx.at>:

Frank Galligan

unread,
Apr 4, 2012, 9:55:29 AM4/4/12
to webm-d...@webmproject.org
Hi Stefan,

Unfortunately Chrome's Media Source does not have support for BMFF. I think the video tag should throw a decode error with what you are doing. If it doesn't could you create a bug in the Chromium bug tracker?

Currently general Media Source API questions would probably be best handled on W3C web-and-tv http://lists.w3.org/Archives/Public/public-web-and-tv/ or maybe on Whatwg http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/.

Frank


Reply all
Reply to author
Forward
0 new messages