Skip to content

[bug][reproductible in sample app] VP8/VP9 codecs do not work on intel-mac safari #1975

Description

@dganzella

Describe the bug

Describe the bug

VP8/VP9 codecs do not work on intel-mac safari - they either show green screens or a still frame of the publisher on all the subscriber videos.

Image Image

In Livekit Sample app:

Image

Reproduction

To Reproduce

Enter a meeting with a user using an intel-mac, on safari browser. Observe the videos.

Logs

Nothing special appear in the logs.

System Info

**Platform information**
Whatever is in https://livekit.github.io/client-sdk-flutter/ as of today.

*** IMPORTANT ***
The issue is observable only in macs with intel chipset, when using Safari.

Severity

blocking all usage of LiveKit

Additional Information

*** IMPORTANT ***
The issue is observable only in macs with intel chipset, when using Safari.

Activity

  1. lukasIO commented on Jun 23, 2026

    @lukasIO
    Contributor

    thanks for the report.

    Can you please share the Safari version that you're using? It might be related to that.
    If possible, try to update Safari to the latest available version for your OS and see if that helps

  2. dganzella commented on Jun 26, 2026

    @dganzella
    Author

    thanks for the report.

    Can you please share the Safari version that you're using? It might be related to that. If possible, try to update Safari to the latest available version for your OS and see if that helps

    Its the lastest version. we tired multiple versions. Does not matter OS or safari version -- what matters is being or not in a mac with an intel chipset.

  3. lukasIO commented on Jun 26, 2026

    @lukasIO
    Contributor

    we've tried to reproduce this on an intel chip mac book with Safari and it didn't reproduce.

    Could you please double check:

    • does this also happen with vp8 or exclusively with vp9
    • which exact Safari version are you using
  4. dganzella commented on Jun 29, 2026

    @dganzella
    Author

    we've tried to reproduce this on an intel chip mac book with Safari and it didn't reproduce.

    Could you please double check:

    • does this also happen with vp8 or exclusively with vp9
    • which exact Safari version are you using

    Im gonna make a video for you.
    Meanwhile can you post the specs of the mac you are using so I know its a pre 2018 mac?

    more details:

    • We are using VP9 with simulcast: true
  5. dganzella commented on Jun 30, 2026

    @dganzella
    Author
  6. dganzella commented on Jun 30, 2026

    @dganzella
    Author
  7. dganzella commented on Jul 30, 2026

    @dganzella
    Author

    @lukasIO any updates on the matter?

  8. dganzella commented on Jul 30, 2026

    @dganzella
    Author

    we've tried to reproduce this on an intel chip mac book with Safari and it didn't reproduce.

    Could you please double check:

    • does this also happen with vp8 or exclusively with vp9
    • which exact Safari version are you using

    Happens with VP8 As well as VP9
    Version: 26.5.2 (20624.2.5.18.7)

  9. chuckills commented on Aug 7, 2026

    @chuckills

    This has been an issue on Intel Macs with Safari, since I can remember. It has a problem decoding VP8 so anything that falls back to encoding with VP8 will be an issue. VP9 remote clients are fine in my experience, so long as they don't fall back on the encode. I have a Chromebook that does and it seems that ANY device running Safari on a codec other than VP8.

    Something to note that I tested out a fair while back is that we had a prototype version of our software that used PlayCanvas with MediaSoup (now use Unity WebGL with LiveKit). I decided to go back and reproduce on that, which it did. So I suspect it is a deeper WebRTC issue.

    @lukasIO the reproduction is:

    • Set up a client that encodes with VP8 on any platform
    • Connect to that client with an Intel Mac running Safari
    • On the Intel Mac, you should see that the other client camera doesn't render properly
    • Other devices will render a VP8 encode from an Intel Mac Safari, so long as they themselves are not using one

    Feel free to correct if I'm wrong. The fix I suspect, wait for Apple to dump support for Intel devices

  10. 1egoman commented on Aug 27, 2026

    @1egoman
    Contributor

    @lukasIO and I have been working on this one in the background over the past few months. We've still been unable to reproduce it at all after extensive testing, and are fairly strongly of the impression (as @chuckills suggested) that this is a low level webrtc / hardware issue. Maybe it could be a hardware acceleration problem that only manifests on some specific device models, and not outright on all intel macbooks?

    One option we have discussed internally - if we can figure out how to reproduce this and come up with a means of determining reliably whether a given client will go into this failure state or not, we could signal this flag to the SFU and use it to avoid offering VP8/VP9 for these clients.

    @dganzella I think figuring this "indicator" out and writing a function which can be called and determine this at connection time is probably the next step that needs to be done to move this issue forward. If you're able to reproduce this reliably, maybe you have some clues as to what that function could be checking for?

  11. dganzella commented on Aug 31, 2026

    @dganzella
    Author

    @lukasIO and I have been working on this one in the background over the past few months. We've still been unable to reproduce it at all after extensive testing, and are fairly strongly of the impression (as @chuckills suggested) that this is a low level webrtc / hardware issue. Maybe it could be a hardware acceleration problem that only manifests on some specific device models, and not outright on all intel macbooks?

    One option we have discussed internally - if we can figure out how to reproduce this and come up with a means of determining reliably whether a given client will go into this failure state or not, we could signal this flag to the SFU and use it to avoid offering VP8/VP9 for these clients.

    @dganzella I think figuring this "indicator" out and writing a function which can be called and determine this at connection time is probably the next step that needs to be done to move this issue forward. If you're able to reproduce this reliably, maybe you have some clues as to what that function could be checking for?

    Well the issues we found were in devices distributed here in Brazil and also in India. I wonder if that maybe has something to do with it?

    I sent the print screen of the 2018 mac mini model, does yours differs in an any capacity (at least CPU/GPU wise?)

    But I also have been looking into every information I can find available in the browser agent and other global information variables, and I was not able to find one piece of information to single out these machines. It would probably be doable with a native macOS application / electron application, though, but that would not solve our case.

    anyway, @1egoman thanks for the reply.

    Ps. the exact model with issues is Macmini8,1 ;

    https://support.apple.com/111912

    @1egoman can you send me the exact model of the devices you are using to test and cannot reproduce?

  12. chuckills commented on Sep 1, 2026

    @chuckills

    My devices are in Australia. Specifically a MacBook Pro 2020, i5 CPU with Iris Plus 645 GPU and an old 2014 Mac Mini. We have a couple of other devices in the organisation too. They're also in Australia but I'm not sure of their models.

  13. 1egoman commented on Sep 1, 2026

    @1egoman
    Contributor

    can you send me the exact model of the devices you are using to test and cannot reproduce

    We don't have many intel macs left for testing at livekit, so I've been attempting to reproduce on a personal 2019 16" macbook pro:

    Image
  14. lukasIO commented on Sep 2, 2026

    @lukasIO
    Contributor

    But I also have been looking into every information I can find available in the browser agent and other global information variables, and I was not able to find one piece of information to single out these machines. It would probably be doable with a native macOS application / electron application, though, but that would not solve our case

    Yeah, this is the main problem this boils down to and why we haven't issued a targeted fix here so far.
    Sorry that this is still an open problem for you, but at its current state (no reproduction on our side + no idea what to use as a signal for this) we are out of ideas how to address it.

    While I realise this might not be ideal for a bunch of reasons, the most practical solution on your side might be to use h264 for now.
    We're happy to pick up the work on this and work on a fix if you find a way to single out the affected machines from within the browser context.

  15. chuckills commented on Sep 2, 2026

    @chuckills

    The issues we faced is that several Android devices we have would refuse to encode in h264 so other users would just get a white square, and still Safari (and perhaps Firefox) -> Intel Safari would still suffer because of fallback to vp8. Our strategy was to use vp9 for the greatest coverage and advise our Intel Mac users to use Chrome.

    And like I said earlier, wait for Apple to drop support for Intel. Which won't be long

  16. dganzella commented on Sep 4, 2026

    @dganzella
    Author

    Exacly, h264 has many, many more issues. Video issues, screen share issues (white screen), freezing, and its random and in many different devices. h264 is not a solution whatsoever, we tested that already. Besides its also proprietary which we want to avoid if at all possible.

    Our stategy is also to use vp9 and advise our intel mac users to use chrome for now.

    Mankind ill needs a saviour such as h264

  17. dganzella commented on Sep 4, 2026

    @dganzella
    Author

    can you send me the exact model of the devices you are using to test and cannot reproduce

    We don't have many intel macs left for testing at livekit, so I've been attempting to reproduce on a personal 2019 16" macbook pro:

    Image

    huh, ours is 2018. I wonder if they need to be 2018 or lower.

  18. dganzella commented on Sep 4, 2026

    @dganzella
    Author

    But I also have been looking into every information I can find available in the browser agent and other global information variables, and I was not able to find one piece of information to single out these machines. It would probably be doable with a native macOS application / electron application, though, but that would not solve our case

    Yeah, this is the main problem this boils down to and why we haven't issued a targeted fix here so far. Sorry that this is still an open problem for you, but at its current state (no reproduction on our side + no idea what to use as a signal for this) we are out of ideas how to address it.

    While I realise this might not be ideal for a bunch of reasons, the most practical solution on your side might be to use h264 for now. We're happy to pick up the work on this and work on a fix if you find a way to single out the affected machines from within the browser context.

    ... me? 🫠

    Woudnt it make more sense for you guys to poke the big guns there to find and buy you a used 2018 8,1 intel mac mini so you guys can properly debug and see if there is an actual workaround? Now that you know that its something that happens for sure and its not an implementation error on our part?

    I could ship mine (its not even with me, its with the QAs) from brazil to the US but im fairly sure it would be cheaper and easier for you guys to buy ones yourselves there. But please let me know, I do think we could arrange if its the only option.

    Besides, even if I do find this signal myself, you guys would implement it without double checking yourselves? it makes no sense, you guys need to properly test it there. 🫠

    Moreover, does the fixing need to be pre-emptive? You guys could also explore the path of noticing that the frames are not being processed and then send a signal to the server to receive in a different format. It would be a good fallback for this issue and maybe future issues, although I understand this code is somewhat risky.

  19. chuckills commented on Sep 4, 2026

    @chuckills

    huh, ours is 2018. I wonder if they need to be 2018 or lower.

    No, my Macbook Pro is a 2020 model

  20. dganzella commented on Sep 4, 2026

    @dganzella
    Author

    huh, ours is 2018. I wonder if they need to be 2018 or lower.

    No, my Macbook Pro is a 2020 model

    I see. so it seems its not all mac intel, just some random assortment of mac intels. sheesh this makes this even harder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions