
Firefox brings smooth video playback with the fastest AV1 decoder - clouddrover
https://hacks.mozilla.org/2019/05/firefox-brings-you-smooth-video-playback-with-the-worlds-fastest-av1-decoder/
======
clouddrover
AV1's been making good progress in Firefox. This 1080p60 video has gone from
being essentially unplayable in AV1 to now being _almost_ perfect on my 5-year
old, AVX2 enabled laptop in Firefox 68 beta:

[https://www.youtube.com/watch?v=Fmdb-
KmlzD8](https://www.youtube.com/watch?v=Fmdb-KmlzD8)

My system consistently drops frames at the point the jeep drives up the hill
and then recovers for the remainder of the video. Other than that it's fine.

You can enable AV1 on YouTube via TestTube
([https://www.youtube.com/testtube](https://www.youtube.com/testtube)) and you
can check if a video is in AV1 via right clicking on the video and selecting
Stats for Nerds. If it's AV1 the codec will be "av01".

~~~
vitorgrs
Here on Firefox it just goes up to 480p...

~~~
SimeVidas
I’m not sure if it’s because I’m on Firefox Nightly, but I get 1080p@60.

Proof: [https://i.imgur.com/JoT2wsM.png](https://i.imgur.com/JoT2wsM.png).

~~~
vitorgrs
Not doubting you. I guess is just some hardware detection? Or don't know...
[https://imgur.com/a/8nTkQEj](https://imgur.com/a/8nTkQEj)

------
shmerl
On Linux Firefox suffers from lack of hardware decoding and encoding (it
doesn't plug into vaapi), which makes performance quite bad on laptops. I
suspect something like WebEx, for example, works horribly in result. Or may be
it's just Cisco not doing a good job. Conferencing experience with their
WebRTC client in Firefox on Linux is horrendous.

~~~
kvark
We were just talking about VA on Linux. There is a chance for it to be enabled
soon.

~~~
shmerl
Oh, that's great to hear! I thought this might come into focus, once WebRender
is officially released.

By the way, how is the progress for WebRender over Vulkan?

~~~
kvark
Current state of Vulkan port is that the correctness is on par with GL, minus
a few driver bugs. We still need to re-architect WebRender a bit in order to
get the performance advantage over GL.

------
skunkworker
With Firefox 67 on a quad core Mac I'm getting solid video playback on AV1 on
Youtube 1080p

If you want to test this right now, here is how to enable AV1 in Youtube and
test videos.

Goto the youtube testtube page and click "Always Prefer AV1"
[https://www.youtube.com/testtube](https://www.youtube.com/testtube)

AV1 Beta Launch Playlist

[https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZ...](https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS)

And click "stats for nerds", if it's working it should show "av01" under the
Codecs tab.

[https://i.imgur.com/eKTFaYU.png](https://i.imgur.com/eKTFaYU.png)

~~~
rutierut
Thanks, I used the Halo video[0] to compare, a couple of notes. \- Youtube
seems to have limited the AV1 support to 1080p, 1440/2160p are not available,
anyone any idea why? \- The load on my CPU (MB Pro 2018 quad-core/ FF DE
67.0b9) seems about the same but I do seem to be dropping significantly less
frames, not sure though.

[0] [https://www.youtube.com/watch?v=Fmdb-
KmlzD8&list=PLyqf6gJt7K...](https://www.youtube.com/watch?v=Fmdb-
KmlzD8&list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS&index=6)

~~~
chupasaurus
> Youtube seems to have limited the AV1 support to 1080p, 1440/2160p are not
> available, anyone any idea why?

They probably don't reencode 1440+p (there are 8K videos too) in AV1 as of
yet.

------
eridius
No mention of power efficiency though. Hardware decoders are good for more
than just performance.

------
w0utert
On the one hand this is great, it's hard to argue that it isn't a good thing
to have a very fast CPU-based AV-1 decoder built into Firefox.

On the other hand, I'm wondering how long this decoder will be relevant,
especially considering it could still take a while before AV-1 video will be
widespread on the web. I fully expect everyone and the kitchen sink will have
hardware decoding before long, which is vastly superior over any software
implementation.

~~~
Veedrac
> our latest figures showing that 11.8% of video playback in Firefox Beta used
> AV1

It seems remarkably popular already.

~~~
acdha
YouTube started testing AV1 - I would not be surprised to learn that’s most of
that number alone. Video format market share is tricky to measure because just
a few sites like YouTube, Netflix, Vimeo, Twitch, etc. represent a huge
fraction of the total streaked bandwidth even though there are so many other
sites which publish video on the web.

~~~
ehsankia
Yeah, last I remember, Netflix and Youtube alone use something like 50% of the
internet's entire bandwidth. Video is pretty data heavy though so I'm sure
there's a huge push to switch to something more efficient.

------
whereareyouwow
About half of the frames get dropped for me.
[https://i.imgur.com/MeLQXST.png](https://i.imgur.com/MeLQXST.png)

------
jl6
Has anybody published an analysis that clearly demonstrates AV1’s compression
efficiency over HEVC?

I’ve seen claims of benefits, and analysis versus h.264, but not the clear
evidence that HEVC is going to become obsolete.

~~~
clouddrover
Here's one. See the "High Quality (AV1) Report":

[http://www.compression.ru/video/codec_comparison/hevc_2018/](http://www.compression.ru/video/codec_comparison/hevc_2018/)

As for HEVC's obsolescence, Leonardo Chiariglione, founder and chairman of
MPEG, thinks AV1 has the bigger future because HEVC's licensing is too messy:

[http://blog.chiariglione.org/a-crisis-the-causes-and-a-
solut...](http://blog.chiariglione.org/a-crisis-the-causes-and-a-solution/)

------
lousken
still can't get smooth 4k60fps vp9 playback when using speed more than 1.5x on
youtube, meanwhile in chrome it works fine

~~~
cptskippy
I know you're serious but it's hard to take that complain seriously.

~~~
lousken
I mean it's the only way u can watch steve from gamers nexus without falling
asleep from his voice, great content otherwise...

~~~
cptskippy
I don't need to see Steve in 4k60fps though... I mean his hair flips are epic
and all but still.

~~~
lousken
True, but if I am watching videos I'm feeling lazy and I shouldn't have to
turn down resolution just for his videos because they're in 60fps instead of
30 when in Chrome it works fine (I'm using tampermonkey script which switches
all videos to the highest resolution with 4k as a limit).

------
kirvyteo
Any updates on the free hw decoder by Google? I am hoping to test it on a FPGA
(if possible)

------
teilo
So this basically brings Firefox on par with Chromium, which was already using
dav1d?

------
newsoul2019
Why isn't there a sample?

~~~
clouddrover
Try it on YouTube. Turn on AV1 via TestTube:
[https://www.youtube.com/testtube](https://www.youtube.com/testtube)

Try the AV1 test playlist:
[https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZ...](https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS)

And you'll find many other YouTube videos encoded in AV1 up to 720p. Try
popular music videos or movie trailers for examples. Check that it's AV1 by
right clicking on the video and selecting Stats for Nerds.

------
fireattack
Wish they could fix full-range video (for any format) playback first :/

~~~
kevingadd
I've filed bugs about this before, part of the problem is that every node in
the chain needs to handle video ranges correctly. Once you introduce hardware
decoders you can be in bad shape here because the range becomes a guess.
Depending on which GPU vendor you have and what OS you're on, there may be a
system-wide default output range (and a separate default for videos without
range information), and the range assumptions may depend on application. If
you use nerdy video compositors like madVR you can get them to tell you how
much info they have on video ranges, and in many cases the answer is 'none' so
they guess. At least on Windows, it is a fact that some of the range issues
are not under Firefox's control, because some of this stuff is delegated to
the decoder and to the video driver. (You can configure it in NVIDIA's Control
Panel application, fwiw.)

In practice people seem to solve this by just using limited range all the time
because it's much better to have limited range content displayed without
expansion than to have full range content erroneously limited->full expanded
and have a bunch of the range destroyed. If you try to stream to Twitch, for
example, they tell you to use limited range, and it will look VERY bad in most
players (not just Firefox!) if you disregard the advice. I've also had
problems with full range uploads to YouTube that can't be attributed to
Firefox.

EDIT: Checked my bug history. For the NVIDIA + Windows + Firefox combo, here
is the workaround for range issues along with an explanation of why Mozilla
has no way to fix it in this scenario.
[https://bugzilla.mozilla.org/show_bug.cgi?id=1229304#c8](https://bugzilla.mozilla.org/show_bug.cgi?id=1229304#c8)

~~~
fireattack
Firefox does not support full-range video _at all_ , even with software
decoding.

See bug ticket:
[https://bugzilla.mozilla.org/show_bug.cgi?id=1459526](https://bugzilla.mozilla.org/show_bug.cgi?id=1459526)
Or just test this:
[https://bug1459526.bmoattachments.org/attachment.cgi?id=8984...](https://bug1459526.bmoattachments.org/attachment.cgi?id=8984703)

Firefox's video support in general is pretty poor compared to Chrome. It
doesn't support RGB or 4:4:4/4:2:2 YUV video either.

>here is the workaround

I knew that bug too, but that's a different story. That is about Firefox
having problem to playback _limited range_ video properly with nV graphic card
(and it's partially nVidia's fault than Firefox).

Chrome used to have that bug too, but they have fixed it.

(Firefox team on the other hand, didn't plan to fix it for Win7 at least:
[https://bugzilla.mozilla.org/show_bug.cgi?id=1410693#c1](https://bugzilla.mozilla.org/show_bug.cgi?id=1410693#c1)
).

