Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Expose AV1 and allow download & playback #2849

Open
ich0x opened this issue Dec 8, 2019 · 34 comments
Open

Feature Request: Expose AV1 and allow download & playback #2849

ich0x opened this issue Dec 8, 2019 · 34 comments
Labels
device/software specific Issues that only happen on some devices or with some specific hardware/software feature request Issue is related to a feature in the app player Issues related to any player (main, popup and background) requires extractor change This issue requires a change to the extractor

Comments

@ich0x
Copy link

ich0x commented Dec 8, 2019

I have personally tested AV1 playback on an old 2016 Samsung J3 running LOS 14.1 and was successful in finding and playing suitable 480p AV1 videos on youtube using youtube-dl & a dev version of VLC from artifacts.videolan.org/vlc-android/

I have also tested 720p AV1 on a newer 2018 model J4.

However NewPipe completely ignores this format.
I would like to see this format added to NewPipe, incorporating dav1d decoding somehow into exoplayer

@Stypox Stypox added device/software specific Issues that only happen on some devices or with some specific hardware/software feature request Issue is related to a feature in the app player Issues related to any player (main, popup and background) labels Dec 9, 2019
@Redirion
Copy link
Member

ExoPlayer 2.11 will support AV1 through libgav1. But if I recall correctly NewPipe didn't want to include native code dependencies. So it might never get included.

@cool-student
Copy link
Contributor

Android 10 includes an AV1 decoder. This means ExoPlayer already supports AV1 videos on devices running Android 10, but until now, there was no support for devices running older Android versions.

This is kinda cool so on Android 10(+) no extra libraries are needed.

@Redirion
Copy link
Member

this also requires an Extractor change @Stypox

@Stypox Stypox added the requires extractor change This issue requires a change to the extractor label Dec 12, 2019
@wb9688
Copy link
Contributor

wb9688 commented Aug 3, 2020

@fabiorug: No, ExoPlayer doesn't support that. It does have a libgav1 extension though, but we don't want to add native code to NewPipe. That means we won't support it as long as it isn't a built-in feature of Android. We could however add downloading of AV1 videos, if you could provide a link to any video on a service that's currently supported by NewPipe that is encoded by AV1.

@MD77MD
Copy link

MD77MD commented Aug 3, 2020

This is kinda cool so on Android 10(+) no extra libraries are needed.

Is it true that in android 10+, AV1 is built-in.

@wb9688
Copy link
Contributor

wb9688 commented Aug 3, 2020

@MD77MD: https://developer.android.com/guide/topics/media/media-formats#video-codecs doesn't mention anything about AV1 being supported by Android in any version, however https://developer.android.com/about/versions/10/highlights#new_audio_and_video_codecs says it has indeed been added in Android 10.

@opusforlife2
Copy link
Collaborator

opusforlife2 commented Aug 12, 2020

The first page does show AV1 in the table. Maybe it was updated in the meanwhile.

@wb9688
Copy link
Contributor

wb9688 commented Aug 12, 2020

@opusforlife2: Yup, seems like they finally updated it. Anyway could someone link a YouTube video that has an AV1 stream (according to youtube-dl -F)?

@opusforlife2
Copy link
Collaborator

Dude, Youtube has entire playlists to test AV1. Give me a second.

@opusforlife2
Copy link
Collaborator

@Stypox Stypox mentioned this issue Oct 1, 2020
@ghost
Copy link

ghost commented Jan 8, 2021

lol i am in for this feature

@opusforlife2
Copy link
Collaborator

Pffft. I am in for this feature as well.

@ghost
Copy link

ghost commented Mar 8, 2021

+1

@ghost
Copy link

ghost commented Aug 29, 2021

AV1 can be considered out of beta and adopted in popular videos on YouTube, any plans to support AV1 in Newpipe?

@opusforlife2
Copy link
Collaborator

@D4v1dH03 See: TeamNewPipe/NewPipeExtractor#706.

BTW, do you have a source for that? Was there a blog post or something?

@ghost
Copy link

ghost commented Aug 29, 2021

@D4v1dH03 See: TeamNewPipe/NewPipeExtractor#706.

BTW, do you have a source for that? Was there a blog post or something?

I tested a NCS music playlist with youtube-dl -F and discovered that they mostly have AV1 encoded formats available

One of the output shows this

399          mp4        1920x1080  1080p60 3991k , mp4_dash container, av01.0.09M.08@3991k, 60fps, video only, 102.29MiB

And yes I have a blog post
It will most possibly be mandatory that Android TVs support AV1

https://www.digit.in/news/tvs/google-could-require-new-android-tv-devices-to-support-av1-encoding-what-is-av1-encoding-58052.html

@opusforlife2
Copy link
Collaborator

Oh. I've seen that. I thought you meant Google officially declared AV1 out of beta on Youtube or something.

Though just the fact that it's now being used for popular videos means it's probably considered stable.

@utack
Copy link

utack commented Aug 29, 2021

At least the offical Youtube app does stream it when supported in hardware on phones, I guess they do consider it the superior format for that use case

@opusforlife2
Copy link
Collaborator

@utack Have you seen that on Mediatek Dimensity phones? As far as I know, those are the only chips that support AV1 hardware decoding right now.

@utack
Copy link

utack commented Aug 29, 2021

@opusforlife2 I have seen it on my Galaxy S21, the european Exynos edition has a 4k60 capable AV1 decoder

And on my Samsung Tizen "The Frame" TV as well, but I am not sure if that app is considered offical

@opusforlife2
Copy link
Collaborator

Ah. Exynos 2100 added AV1 decode support. Good to know.

@ghost
Copy link

ghost commented Feb 14, 2022

Many phones don't have hw decoder unfortunately but at least they have sw decoder

@BurhanBudak
Copy link

Bump

Firefox Mobile uses software decoding and it loads faster then Newpipe, official app and the delisted Vanced.

@Plugdemholes-Imeanpatchdembugs

I too would be interested, just because the higher pixel density of the tablets makes it easier to see some difference in the encoding result :P

@opusforlife2

This comment was marked as resolved.

@Crystal-RainSlide
Copy link
Contributor

Crystal-RainSlide commented Mar 24, 2024

Note: Starting from 2023, mid-level phones and beyond should be mostly capable of decoding (at least) 720p AV1 video, both hw and sw decoding.

@opusforlife2
Copy link
Collaborator

Not Qualcomm ones.

@n-ce
Copy link

n-ce commented Apr 15, 2024

My phone is entry level so I downloaded a video player to play an AV1 video file via software decoding, to my surprise it was running on hardware decoding. Later found out Android 14 supports it natively so I hope this will be taken seriously now for the compose refactor.

@robzorua
Copy link

robzorua commented May 5, 2024

There's no need to support VLC's libdav1d anymore because Google/YouTube will force it to Android even if you're using entry level, they will change their libgav1 to libdav1d.

https://www.androidauthority.com/android-update-av1-videos-3420418/

The only problem is why they put AV1 to MP4 not with WEBM/OPUS? WEBM/OPUS/AV1 will give better compression I hope they'll re-encode all their videos to WEBM/AV1.

@n-ce
Copy link

n-ce commented May 5, 2024

The only problem is why they put AV1 to MP4 not with WEBM/OPUS? WEBM/OPUS/AV1 will give better compression I hope they'll re-encode all their videos to WEBM/AV1.

MP4 / WEBM are just containers it doesn't matter much. VP9 didn't support the MP4 container format so I'm guessing they did this to generalize the AV1 codec among people. Btw I download AV1(+Opus) videos via yt-dlp all the time and they are all contained by WEBM.

@Ciancy28
Copy link

Ciancy28 commented May 5, 2024

VP9 didn't support the MP4 container format

Actually it did, and Google Photos as an example, uses vp9+aac in mp4 container when downloading videos that were uploaded in storage saver mode.

Btw I download AV1(+Opus) videos via yt-dlp all the time and they are all contained by WEBM.

That's because yt-dlp automatically remuxes stuff when it makes sense, since opus audio is already webm and av1 can be contained in webm, it decides to remux av1 in the same webm container, downloading a single av1 format without audio gives you av1 in mp4 container (as expected, since av01 is listed as mp4 when looking at the formats list)
yt-dlp also remuxes in .mkv when downloading opus+h264, but of course youtube doesn't offer such format natively.

are just containers it doesn't matter much

this part is correct, there's a negligeable amount of overhead using mp4 instead of webm but it is only measurable on very short low quality videos (and even there, we are talking few kilobytes).

@Plugdemholes-Imeanpatchdembugs

Since the end of 2022, half year after I posted, I finally got a graphics card with AV1 decoding capability, I also added enhanced-h264ify which has the option to disable h264, VP8, VP9 or AV1.
I now have always VP8 and VP9 disabled, so I'm usually limited to max. 1080p for h264 but when a AV1 video plays you notice the difference instantly even though my standard playback resolution is only 1080p. But to my regret I have to say YT basicly only seems to encode videos that get uploaded with at least 1440p as AV1 and by my own observation I'd say I'm lucky when every 25th video I'm watching got encoded as AV1.
So I currently don't see a trend that YT wants to increase AV1 encoded content to sub 1440p videos... maybe we are more lucky by the end of 2027.

@n-ce
Copy link

n-ce commented May 25, 2024

But to my regret I have to say YT basicly only seems to encode videos that get uploaded with at least 1440p as AV1.

That is not true YT now encodes a variety of videos in AV1, they just don't give it to all viewers. 4/5 videos nowadays are encoded in AV1. The rest of them either don't have enough views or is not satisfying an unknown metric that I don't understand yet.
To test the 4/5 claim, just switch to 240p/144p.

@Plugdemholes-Imeanpatchdembugs
Copy link

Plugdemholes-Imeanpatchdembugs commented May 25, 2024

Can only speak to what I've personally observed since end of 2022. Didn't expect 240p/144p is still in demand anyways.
If I'm wrong all the better!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
device/software specific Issues that only happen on some devices or with some specific hardware/software feature request Issue is related to a feature in the app player Issues related to any player (main, popup and background) requires extractor change This issue requires a change to the extractor
Projects
None yet
Development

No branches or pull requests

15 participants