-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
AV1 support #1670
Comments
Hi @aixinaxc It works today! You can call we don’t have a packetizer yet however. If you are interested in contributing that would be great. Then we can turn on by default. thanks |
Is there a depacketizer? |
Reference: |
Do any browsers implement it yet? |
Chrome does Release Announcement It looks like this could be implement pretty quickly! Payload Header is all we need to worry about. For testing we should add a var args optional parameters to the ivfwriter like SampleBuilder that allows someone to set the FOURCC |
It has been available in Check these articles for details: http://webrtcbydralex.com/?s=Av1 Some people have been able to set up AV1 encoding on Chrome Canary, as explained here: https://medooze.medium.com/mastering-the-av1-svc-chains-a4b2a6a23925 |
Confirmed, I've just managed to push an AV1 flow through Galène. Essentially, it consisted in adding
at the right point in the code. The browser is Brave 1.23.71 based on Chromium 90 (just because it's the easiest way to get a recent build of Chromium with H.264 support for Debian, please don't take that as an endorsment of Brave or of anything related to cryptocurrencies). There are a few things that I find weird:
I haven't looked at the packet contents yet, so I don't know if they're generating useful dependency descriptors (without that, it's going to be tricky to detect keyframes). I also haven't looked at how difficult it would be to write a depacketiser. And if you're wondering — the CPU usage is high (25% of a four-core laptop for a single flow), but not prohibitive. |
There's no dependency descriptor (or perhaps I'm not negotiating it correctly). |
One requirement for AV1 support is to add support to our IVFWriter. We should add a |
I think there's also an issue with the samplebuilder. The samplebuilder
assumes that it is enough to concatenate packet bodies, but I don't think
that's going to work for AV1, since the size of the last OBU in a packet
is omitted.
|
maybe useful: https://github.com/NadeenUdantha/DependencyDescriptor
https://gist.github.com/NadeenUdantha/a864b617c19639e8cc506684a2d95745 |
any news regarding AV1 codec support ? chrome sdp video line indeed includes -> "AV1/90000" (not AV1X any more starting with chrome 91 and above) in order to manipulate chrome default encoder or my libWebRTC based streamer app I put in "m=video" line the following order starting with payload 35 / 36 (chrome/libwebrtc regsiter AV1 under this payload type id) so default codec priority is AV1 -> vp8 -> vp9 -> h264 etc... can i ask you guys to add this to ion-sfu as soon as possible? AV1 outperforms vp8 quite easily with both quality and bandwidth usage...with minimal CPU overhead/impact...when dealing with Camera HD/High Res streaming, I also use AV1 for streaming Screen Share (1920X1080...) working prety nice as well.... many thanks! |
Thanks for the info. I've just adapted Galene to the new name jech/galene@6fbdf0e |
I don't think it is enough-> buffer.go:switch b.mime {
helpers.gotype VP8 struct {
} |
I think there might be a misunderstanding. This bug tracker is about Pion, a WebRTC library. This issue is about changes to Pion WebRTC that might be required for full AV1 support. Galene and Ion-SFU are two distinct projects that use Pion. Galene has basic support for AV1, even though the support in Pion is incomplete. I have no idea about Ion-SFU. If you have patches against Pion to submit, you should submit them here. If you have patches against Ion-SFU, you should submit them at https://github.com/pion/ion-sfu |
Dear Juliusz, |
Also include example Resolves pion#1670
When will AV1 support be added to webrtc?
The text was updated successfully, but these errors were encountered: