Closed
Bug 833023
Opened 11 years ago
Closed 10 years ago
Implement VP9 video decoder in Firefox
Categories
(Core :: Audio/Video, enhancement)
Core
Audio/Video
Tracking
()
VERIFIED
FIXED
mozilla28
Tracking | Status | |
---|---|---|
relnote-firefox | --- | 28+ |
People
(Reporter: markus.popp, Assigned: j)
References
(Blocks 1 open bug)
Details
(Keywords: dev-doc-needed, feature)
Attachments
(1 file, 2 obsolete files)
4.66 KB,
patch
|
kinetik
:
review+
|
Details | Diff | Splinter Review |
VP9, being an open and royalty free video compression standard and the successor of VP8 has recently been implemented in Chromium, and should be supported by Firefox too. http://src.chromium.org/viewvc/chrome?view=rev&revision=172738
Updated•11 years ago
|
Component: General → Video/Audio
Product: Firefox → Core
Updated•11 years ago
|
Whiteboard: [fuzzing:?]
Updated•11 years ago
|
Whiteboard: [fuzzing:?] → [fuzzing:]
Updated•11 years ago
|
Whiteboard: [fuzzing:] → [fuzzing:queue:rforbes]
Comment 1•11 years ago
|
||
Should this be marked parity with Chrome? Chrome supports VP9 as of version 25. http://en.wikipedia.org/wiki/VP9
Comment 2•11 years ago
|
||
Announced today: The VP9 bitstream is to be finalized in June. http://blog.webmproject.org/2013/05/vp9-codec-nears-completion.html https://groups.google.com/a/webmproject.org/forum/?fromgroups=#!topic/webm-discuss/UzoX7owhwB0
http://www.youtube.com/watch?v=K6JshvblIcM Hope VP9 decoding support can be implemented soon, VP9 is big improvement over VP8.
"Chromium has VP9 decoding support enabled by default in latest chrome builds." and youtube already begin to encode video on vp9 come on mozilla, you was late for h264, now you are late for vp9 ...
Comment 5•11 years ago
|
||
The final bitstream codec hasn't even been released yet. It's due to be released tomorrow actually. https://groups.google.com/a/webmproject.org/forum/?fromgroups=#!topic/webm-discuss/UzoX7owhwB0 What Google has put in Chrome already was the test/beta versions. When the spec is final we'll evaluate inclusion in Firefox.
Comment 6•11 years ago
|
||
https://groups.google.com/a/webmproject.org/forum/#!msg/webm-discuss/UzoX7owhwB0/XVIZVDG9rm0J Google has just enabled in chromium - VP9 by default
Updated•11 years ago
|
Alias: vp9
Assignee | ||
Comment 8•11 years ago
|
||
needs https://github.com/kinetiknz/nestegg/pull/13 to be pulled into mozilla-central tree and libvpx with vp9 support (i.e. via --with-system-libvpx)
Comment 9•11 years ago
|
||
Thanks, Jan! I've filed bug 918550 about updating our in-tree libvpx.
Comment 10•11 years ago
|
||
Adding Bug 884275 to allow for proper script detection of VP9 support in Fx.
Depends on: 884275
Assignee | ||
Comment 11•10 years ago
|
||
- rebase patch on top of inbound + Bug 918550 - add vpx_codec_vp9_dx/vpx_codec_vp9_cx to layout/media/symbols.def.in
Attachment #807350 -
Attachment is obsolete: true
Attachment #8341614 -
Flags: review?(cpearce)
Comment 12•10 years ago
|
||
Comment on attachment 8341614 [details] [diff] [review] 0001-add-vp9-support_v2.patch Review of attachment 8341614 [details] [diff] [review]: ----------------------------------------------------------------- Please make the following changes, and then request review from kinetik, he reviews WebMReader. ::: content/media/webm/WebMReader.cpp @@ +281,4 @@ > Cleanup(); > return NS_ERROR_FAILURE; > } > + mVideoCodec = nestegg_track_codec_id(mContext, track); To reduce the cleanup paths, please change this block to: vpx_codec_iface_t* dx = nullptr; mVideoCodec = nestegg_track_codec_id(mContext, track); if (mVideoCodec == NESTEGG_CODEC_VP8) { dx = vpx_codec_vp8_dx(); } else if (mVideoCodec == NESTEGG_CODEC_VP9) { dx = vpx_codec_vp9_dx(); } if (!dx || vpx_codec_dec_init(&mVP8, dx, nullptr, 0)) { Cleanup(); return NS_ERROR_FAILURE; } Please also rename WebMReader::mVP8 to mVPX.
Attachment #8341614 -
Flags: review?(cpearce) → feedback+
Assignee | ||
Comment 13•10 years ago
|
||
Attachment #8341614 -
Attachment is obsolete: true
Attachment #8342033 -
Flags: review?(kinetik)
Updated•10 years ago
|
Attachment #8342033 -
Flags: review?(kinetik) → review+
Comment 15•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/e070e04b0795
Assignee: nobody → j
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Comment 16•10 years ago
|
||
Setting relnote? assuming this is on by default for everyone (pending Bug 947325 for Linux).
relnote-firefox:
--- → ?
Keywords: feature
Comment 17•10 years ago
|
||
Yes, that's correct. Also setting dev-doc-needed for https://developer.mozilla.org/docs/HTML/Supported_media_formats &c.
Keywords: dev-doc-needed
Comment 18•10 years ago
|
||
Hi Jan, does this feature require manual QA? If that is the case, could you please advise on how should I proceed with the validation of this feature? The following aspects would be very useful: 1. Automation coverage for this feature. 2. Things to keep in mind while verifying and performing regression testing. 3. Anything else you think that might help me verify this feature.
Flags: needinfo?(j)
Assignee | ||
Comment 19•10 years ago
|
||
(In reply to Andrei Vaida, QA [:AndreiVaida] from comment #18) > Hi Jan, does this feature require manual QA? > > If that is the case, could you please advise on how should I proceed with > the validation of this feature? The following aspects would be very useful: > 1. Automation coverage for this feature. > 2. Things to keep in mind while verifying and performing regression testing. > 3. Anything else you think that might help me verify this feature. (a) Adding Automated testing is tracked in Bug 949525 (b) Manual verification can be done i.e. with content/media/test/vp9.webm to verify visually that it plays back correctly. (once Bug 949525 is fixed)
Flags: needinfo?(j)
Comment 20•10 years ago
|
||
Thank you Jan. I was able to successfully verify this feature using the latest Aurora (BuildID: 20131213004002) on Windows 7 x64, Mac OS X 10.9 and Ubuntu 13.10 x64, with the files "vp9cake.webm" and "vp9.webm" from Bug 949525. Also, I'm not sure if the following notes are relevant at this point, but I thought they were worth mentioning: - Google Chrome cannot playback the two *.webm files attached to Bug 949525. - http://www.youtube.com/html5 states that the latest Aurora does not support "MSE & WebM VP9". I will test this feature further when additional test files will be available.
QA Contact: andrei.vaida
Assignee | ||
Comment 21•10 years ago
|
||
(In reply to Andrei Vaida, QA [:AndreiVaida] from comment #20) > - Google Chrome cannot playback the two *.webm files attached to Bug 949525. This is due to the opus audio track. Opus Support is Chrome currently broken: https://code.google.com/p/chromium/issues/detail?id=104241 > - http://www.youtube.com/html5 states that the latest Aurora does not > support "MSE & WebM VP9". For MSE support, check Bug 881512
Comment 23•10 years ago
|
||
Jan, I noticed that all the VP9-encoded test files previously attached to Bug 949525 are currently marked as obsolete. Are there any new video samples available for testing purposes? Or maybe a page featuring an embedded video of the same format?
Flags: needinfo?(j)
Comment 24•10 years ago
|
||
(In reply to Andrei Vaida, QA [:AndreiVaida] from comment #23) > Jan, I noticed that all the VP9-encoded test files previously attached to > Bug 949525 are currently marked as obsolete. Are there any new video samples > available for testing purposes? Or maybe a page featuring an embedded video > of the same format? http://base-n.de/webm/VP9%20Sample.html
Assignee | ||
Comment 25•10 years ago
|
||
(In reply to Andrei Vaida, QA [:AndreiVaida] from comment #23) > Jan, I noticed that all the VP9-encoded test files previously attached to > Bug 949525 are currently marked as obsolete. Are there any new video samples > available for testing purposes? Or maybe a page featuring an embedded video > of the same format? The files attached to Bug 949525 are still good test files, they are part of the automated test suite and only marked as obsolete since they where included in the patch that got committed: https://bugzilla.mozilla.org/show_bug.cgi?id=949525#c10
Flags: needinfo?(j)
Comment 26•10 years ago
|
||
(In reply to Alex Xu from comment #24) > http://base-n.de/webm/VP9%20Sample.html Thanks Alex! (In reply to Jan Gerber from comment #25) > (In reply to Andrei Vaida, QA [:AndreiVaida] from comment #23) > The files attached to Bug 949525 are still good test files, > they are part of the automated test suite and only marked > as obsolete since they where included in the patch that got committed: > https://bugzilla.mozilla.org/show_bug.cgi?id=949525#c10 Hi Jan, thank you for clarifying this.
Updated•10 years ago
|
Updated•10 years ago
|
Flags: sec-review?(cdiehl)
Whiteboard: [fuzzing:queue:rforbes]
Comment 27•10 years ago
|
||
The feature was thoroughly tested and all the associated test cases were successfully executed, uncovering minor issues only. The latest smoke tests performed on Firefox 28 Beta 1 also uncovered no major issues.
Blocks: 968809
Status: RESOLVED → VERIFIED
Comment 28•10 years ago
|
||
Adding in-testsuite+ since this is covered automatically by content/media/test/can_play_type_webm.js content/media/test/manifest.js content/media/test/mochitest.ini content/media/test/vp9.webm content/media/test/vp9cake.webm tracked in bug 949525.
Flags: in-testsuite+
Comment 29•10 years ago
|
||
Jan, I was running some smoke tests on this feature to make sure that everything is working as expected before its release, when I stumbled over the following error that's being thrown in the Browser Console of both latest Aurora (Build ID: 20140306004001) [1] and latest Nightly (Build ID: 20140305170806) [2]: (Browser Console error) > Media resource https://moztrap.mozilla.org/media/attachments/2014/01/22/vp9cake.webm > could not be decoded. The latest Beta (Build ID: 20140303165517) [3] seems to be running the vp9-encoded video sample from that URL [4]. [1] Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 [2] Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:30.0) Gecko/20100101 Firefox/30.0 [3] Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 [4] https://moztrap.mozilla.org/media/attachments/2014/01/22/vp9cake.webm
Flags: needinfo?(j)
Assignee | ||
Comment 30•10 years ago
|
||
https://moztrap.mozilla.org/media/attachments/2014/01/22/vp9cake.webm is not the version that is checked into hg content/media/test/vp9cake.webm My guess would be that you are not testing with the latest version of vp9cake.webm. An earlier version was in fact invalid and is explicitly not support anymore (Bug 951770) I am able to play the version that is in mozilla-central: http://hg.mozilla.org/mozilla-central/raw-file/d2dac18d0562/content/media/test/vp9cake.webm
Flags: needinfo?(j)
Comment 31•10 years ago
|
||
Yes, confirmed. the version moztrap is serving has incorrect opus headers and is correctly rejected by aurora and nightly.
Comment 32•10 years ago
|
||
Jan, Ralph - thank you for clarifying this, I was indeed accidentally running an outdated version of vp9cake.webm.
Comment 33•10 years ago
|
||
It's not normal that after disabling "media.webm.enabled" and "media.encoder.webm.enabled" youtube shows that MSE & WebM VP9 is supported and videos start to play in webm/VP9 format, right? ("WebM VP8" is shown to be not supported)
Comment 34•10 years ago
|
||
(In reply to avada from comment #33) > It's not normal that after disabling "media.webm.enabled" and > "media.encoder.webm.enabled" youtube shows that MSE & WebM VP9 is supported > and videos start to play in webm/VP9 format, right? Try setting media.mediasource.enabled to false.
Comment 35•10 years ago
|
||
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #34) > Try setting media.mediasource.enabled to false. But what if I only want to disable VP9. Which is a valid reason because it has exorbitant CPU usage and no hardware acceleration, and as such is unplayable. Disabling whole webm is already a sacrifice, but not a great one since youtube (the de facto web video site) mostly moved to VP9. But if I disable MSE too I loose most of the higher resolution/quality videos. (Ignoring the fact that for now since bug 1027875 landed both vp9 and AVC youtube videos play without audio and only for 32 seconds.)
Comment 36•10 years ago
|
||
(In reply to avada from comment #33) > It's not normal that after disabling "media.webm.enabled" and > "media.encoder.webm.enabled" youtube shows that MSE & WebM VP9 is supported > and videos start to play in webm/VP9 format, right? That does sounds like an oversight. If you'd like it to apply both (or have separate prefs for each codec) please file a new bug. That's easier to track than followup on old, fixed bugs.
Comment 37•10 years ago
|
||
(In reply to avada from comment #35) > But what if I only want to disable VP9. Which is a valid reason because it > has exorbitant CPU usage and no hardware acceleration, and as such is > unplayable. > Disabling whole webm is already a sacrifice, but not a great one since > youtube (the de facto web video site) mostly moved to VP9. > But if I disable MSE too I loose most of the higher resolution/quality > videos. MP4 does not work with MSE yet so you should disable MSE if you don't want WebM.
Comment 38•10 years ago
|
||
(In reply to Ralph Giles (:rillian) from comment #36) > That does sounds like an oversight. If you'd like it to apply both (or have > separate prefs for each codec) please file a new bug. That's easier to track > than followup on old, fixed bugs. Bug 1035622 now covers this.(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #37)
Comment 39•10 years ago
|
||
Turning off MSE is wise. None of it works well at the moment.
Comment hidden (spam) |
Comment 41•9 years ago
|
||
Any idea, what I still only get VP8 videos with FF36 on youtube limited to 360p, while Chrome receives VP9 streams with up to 1080p? Also on youtube.com/html5 I get "MSE & WebM VP9" = disabled.
Comment 42•9 years ago
|
||
(In reply to Clemens Eisserer from comment #41) > Any idea, what I still only get VP8 videos with FF36 on youtube limited to > 360p, while Chrome receives VP9 streams with up to 1080p? > > Also on youtube.com/html5 I get "MSE & WebM VP9" = disabled. The place for support is support.mozilla.org Anyway, because it's disabled, because it's not fully enable implemented.media.mediasource.enabled in about:config. Then you'll get all resolutions.
Comment 43•9 years ago
|
||
(In reply to avada from comment #42) > The place for support is support.mozilla.org > Anyway, because it's disabled, because it's not fully enable > implemented.media.mediasource.enabled in about:config. Then you'll get all > resolutions. Well this got effed... Supposed to be "enable media.mediasource.enabled"
MSE is not supported in Firefox 36. MSE support for MP4 is enabled 37 beta for Mac and Windows Vista and up.
Comment 45•9 years ago
|
||
Will MSE für VP9 be enabled anytime soon on Linux?
(In reply to Clemens Eisserer from comment #45) > Will MSE für VP9 be enabled anytime soon on Linux? Not soon.
Comment 47•9 years ago
|
||
Hmm, even with enable media.mediasource.enabled, VP9 playback on Youtube has all kinds of issues on Linux. Unfortunately it seems, Firefox is not a good choice for youtube.com-users running Linux currently :/
Comment 48•9 years ago
|
||
(In reply to Clemens Eisserer from comment #47) > Unfortunately it seems, Firefox is not a good choice for youtube.com-users > running Linux currently :/ I just use the HTML5 Video Everywhere addon to force Firefox's built in video player instead of YouTube's crappy one and I've disabled webm and set it to only use mp4. Works fantastically better. YMMV A new bug for Linux issues should probably be filed instead of commenting here further.
Comment 49•9 years ago
|
||
For those wondering how to enable MSE & WebM VP9 in Firefox nightly, you must leave: media.webm.enabled=true (default) media.mediasource.enabled=true (default) You must change: media.mediasource.webm.enabled=true (user-set)
Comment 50•9 years ago
|
||
(In reply to Luke from comment #49) > For those wondering how to enable MSE & WebM VP9 in Firefox nightly, you > must leave: > > media.webm.enabled=true (default) > > media.mediasource.enabled=true (default) > > You must change: > > media.mediasource.webm.enabled=true (user-set) Same works on Fx37, nightly not required.
Comment 51•9 years ago
|
||
Are the directions in #49 platform agnostic? Or are they Windows specific? I want to get this working under Linux.
Comment 52•9 years ago
|
||
(In reply to Scott Baker from comment #51) > Are the directions in #49 platform agnostic? Or are they Windows specific? I > want to get this working under Linux. All the webm stuff is generally platform agnostic. The decoder is built-into Firefox. It's just the h.264 & mp3 stuff that's platform dependent.
Comment 53•9 years ago
|
||
I should have been more specific. Are the MediaSource options platform agnostic?
Comment 54•9 years ago
|
||
(In reply to Scott Baker from comment #53) > I should have been more specific. Are the MediaSource options platform > agnostic? The same prefs need to be set as in comment 49, but one is defaulted to off still. If you turn it all on it should work though. (youtube.com/html5 says "MSE & WebM VP9" is enabled for me, at least)
Comment 55•9 years ago
|
||
(In reply to Dave Garrett from comment #54) > (In reply to Scott Baker from comment #53) > > I should have been more specific. Are the MediaSource options platform > > agnostic? > > The same prefs need to be set as in comment 49, but one is defaulted to off > still. If you turn it all on it should work though. (youtube.com/html5 says > "MSE & WebM VP9" is enabled for me, at least) Same here. Also, if you right click you can click on the video, click on "stats for nerds" and you will see the codec is vp9 (assuming the video exists in vp9).
Comment 56•9 years ago
|
||
At least for me, youtube with VP9 doesn't work reliable in Firefox. From time to time clips don't continue loading and are stuck at e.g. 30%, also when jumping inside a clip it quite often simply does not play any further after some jumps.
Comment 57•9 years ago
|
||
(In reply to Clemens Eisserer from comment #56) > At least for me, youtube with VP9 doesn't work reliable in Firefox. > From time to time clips don't continue loading and are stuck at e.g. 30%, > also when jumping inside a clip it quite often simply does not play any > further after some jumps. I haven't seen that, yet. What are your PC specs, out of curiosity?
Comment 58•9 years ago
|
||
Mediasource Extensions is very much still a work in progress. https://bugzilla.mozilla.org/show_bug.cgi?id=778617
(In reply to Clemens Eisserer from comment #56) > At least for me, youtube with VP9 doesn't work reliable in Firefox. > From time to time clips don't continue loading and are stuck at e.g. 30%, > also when jumping inside a clip it quite often simply does not play any > further after some jumps. That is why it is disabled in nightly.
Comment 60•9 years ago
|
||
something bad about MSE & Webm VP9 is that youtube only delivers VP8 360p :/ so that I need to enforce the Flash Player on Linux to get better quality Is someone still working on this? (since the last post is from april)
Comment 61•9 years ago
|
||
I opened a bug for the specific isse I'm experiencing with MSE & Web VP9 on Fedora 21 with Firefox 38.0.5
(In reply to Djfe from comment #60) > Is someone still working on this? (since the last post is from april) This feature is VP9 support in Firefox and is complete hence the closed bug and no further comments in this bug. MSE support is being tracked in bug 778617.
Comment 63•9 years ago
|
||
oh I totally forgot to copy&paste the bugzilla link here: https://bugzilla.mozilla.org/show_bug.cgi?id=1173179 is the description ok?
Chris - I don't think we should be tracking MSE related issues on this bug because they're outside of the scope of what was originally done here.
Updated•9 years ago
|
Updated•7 years ago
|
Alias: vp9
Updated•6 years ago
|
Flags: sec-review?(cdiehl)
You need to log in
before you can comment on or make changes to this bug.
Description
•