Open ich0x opened 4 years ago
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.
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.
this also requires an Extractor change @Stypox
@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.
This is kinda cool so on Android 10(+) no extra libraries are needed.
Is it true that in android 10+, AV1 is built-in.
@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.
The first page does show AV1 in the table. Maybe it was updated in the meanwhile.
@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
)?
Dude, Youtube has entire playlists to test AV1. Give me a second.
lol i am in for this feature
Pffft. I am in for this feature as well.
+1
AV1 can be considered out of beta and adopted in popular videos on YouTube, any plans to support AV1 in Newpipe?
@D4v1dH03 See: https://github.com/TeamNewPipe/NewPipeExtractor/pull/706.
BTW, do you have a source for that? Was there a blog post or something?
@D4v1dH03 See: https://github.com/TeamNewPipe/NewPipeExtractor/pull/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
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.
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
@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.
@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
Ah. Exynos 2100 added AV1 decode support. Good to know.
Many phones don't have hw decoder unfortunately but at least they have sw decoder
Bump
Firefox Mobile uses software decoding and it loads faster then Newpipe, official app and the delisted Vanced.
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
@DavidH-Tech Don't quote specific team members unless you're being asked by them for feedback. Those who are supposed to respond will respond.
And don't make duplicate comments across issues and PRs. One place is enough.
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.
Not Qualcomm ones.
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.
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.
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.
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).
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.
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.
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!
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