Roughly https://www.chromium.org/audio-video/ covers the codecs that should be _possible_ to work throughout Chrome APIs (modulo WebRTC):
- Video decode and encode support should ideally be (and has historically been) symmetric. - HEVC has been a temporary exception here as it requires work from WebRTC and MediaRecorder to integrate. - Android doesn't ship a software H.264 encoder, so is limited to working Android implementations. - Not all platforms have a working / performant H.265 encoder. - Audio encode is limited to Opus (everywhere) and AAC (where OS support exists). - Note: The above is for Chrome only, Chromium builds don't enable any proprietary codecs (even when supported by hardware) by default due to licensing requirements. I.e., Chromium does not ship AAC, H.264, or H.265 support. - WebRTC is more complicated, but mostly covers the codecs above plus some speech specific codecs IIRC. - dale On Wed, Feb 26, 2025 at 9:05 AM Alex Russell <slightly...@chromium.org> wrote: > For transparency, I'm disinclined to make the proprietary vs. open codecs > situation worse just because Apple is harming the ecosystem in an > unaccountable way. > > It would be helpful in making a decision about this if we understood the > full matrix of what is supported where, and under what conditions. Does > such a spreadsheet exist? > > Thanks, > > Alex > > On Friday, February 21, 2025 at 12:17:53 AM UTC-8 > philipp...@googlemail.com wrote: > >> https://webrtc.github.io/samples/src/content/getusermedia/record/ >> just got an "upload locally" button (thanks Harald!) which makes >> tinkering easier - download in one browser, upload in the other. >> >> "interop" for MediaRecorder is an both an issue and an interesting >> concept. >> The issue has gotten "better" when it comes to container formats since >> Chromium started supporting MP4 in addition to webm mid-2024-ish. >> For audio codecs there is still a "divide" with Safari insisting on AAC >> from what I can see (https://webkit.org/blog/11353/mediarecorder-api/; >> despite >> supporting Opus in WebRTC). >> >> Unlike in WebRTC there is no codec negotiation protocol (apart from >> humans) when you send files recorded with MediaRecorder so >> quite often a file upload service in the path may do transcoding anyway. >> >> Am Mi., 19. Feb. 2025 um 09:02 Uhr schrieb Philip Jägenstedt < >> foo...@chromium.org>: >> >>> Hi, >>> >>> The API owners (Dan, Alex, Vlad, Yoav, Mike, Chris, Daniel, me) >>> discussed this today. We'd like to understand a bit better where HEVC is >>> already supported and what contexts don't yet support it. >>> >>> As mentioned, HEVC (encode and decode) is already supported in >>> WebCodecs. The tests on wpt.fyi are failing >>> <https://wpt.fyi/results/webcodecs?label=master&label=experimental&aligned&q=h265>, >>> but presumably that's because the VMs the tests run in don't have the >>> required hardware support. I tried a few of the tests and they pass on my >>> own Mac machine. >>> >>> Is decoding HEVC in a plain <video> supported? I tried >>> `document.createElement('video').canPlayType('video/mp4; codecs=hvc1')` >>> which returns "probably" in Safari, but the empty string in Chrome. I can't >>> tell from https://caniuse.com/hevc if I should expect it to be >>> supported or not. >>> >>> And how about in MSE? >>> >>> Are there contexts where HEVC is not yet supported that aren't covered >>> by this intent? WebRTC comes to mind, but are there any other? >>> >>> Note that HEVC is called out as an example in the Blink principles of >>> web compatibility >>> <https://docs.google.com/document/d/1RC-pBBvsazYfCNNUSkPqAVpSpNJ96U8trhNkfV0v9fk/edit?tab=t.0#heading=h.prafhtr7ekmt>. >>> Wherever >>> royalty-free codecs like AV1 can be used, that's definitely preferable for >>> the Chromium project and the web. Do we already support AV1 in every >>> context where HEVC is supported or is planned? >>> >>> Best regards, >>> Philip >>> >>> On Wed, Feb 12, 2025 at 4:33 PM 'Markus Handell' via blink-dev < >>> blink-dev@chromium.org> wrote: >>> >>>> > Could you please request the various security, privacy, enterprise, >>>> etc. bits in your chromestatus entry? >>>> >>>> Done! >>>> >>>> On Tue, Feb 11, 2025 at 7:40 PM Dale Curtis <dalecur...@chromium.org> >>>> wrote: >>>> >>>>> Sorry about that. Historically video codec changes were handled via >>>>> internal processes since they were aspects of the underlying Chromium >>>>> platform. Especially so in the case of HEVC where it requires hardware >>>>> support. Going forward all video codec changes will use the Blink process. >>>>> >>>>> - dale >>>>> >>>>> On Tue, Feb 11, 2025 at 9:12 AM Ashley Gullen <ash...@scirra.com> >>>>> wrote: >>>>> >>>>>> As a web developer interested in Chrome's video encoding capabilities >>>>>> with both WebCodecs and MediaRecorder, I had no idea until reading this >>>>>> that Chrome actually already shipped support for HEVC encoding with >>>>>> WebCodecs in M130 - it doesn't appear to be listed on >>>>>> chromestatus.com. Could Google make sure significant updates like >>>>>> this are noted there? Otherwise important updates can pass us right by! >>>>>> >>>>>> On Tue, 11 Feb 2025 at 16:09, Mike Taylor <miketa...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> Could you please request the various security, privacy, enterprise, >>>>>>> etc. bits in your chromestatus entry? >>>>>>> On 2/11/25 3:56 AM, 'Markus Handell' via blink-dev wrote: >>>>>>> >>>>>>> CC Dale Curtis as well. >>>>>>> >>>>>>> On Tuesday, February 11, 2025 at 9:56:11 AM UTC+1 Markus Handell >>>>>>> wrote: >>>>>>> >>>>>>>> Contact emails: >>>>>>>> >>>>>>>> zhu...@bytedance.com >>>>>>>> >>>>>>>> hand...@google.com >>>>>>>> >>>>>>>> Explainer: >>>>>>>> >>>>>>>> Explainer: Codec support updates for MediaRecorder >>>>>>>> <https://docs.google.com/document/d/1YijhqWaeI118xqZV6Fd-UtqWpGDc-vFfFS6Dg4JEEqc/edit?tab=t.0> >>>>>>>> >>>>>>>> crbug.com/40276507 >>>>>>>> >>>>>>>> TAG review: >>>>>>>> >>>>>>>> N/A, small incremental change >>>>>>>> >>>>>>>> Summary: >>>>>>>> >>>>>>>> Support for HEVC platform encoding was added in WebCodecs in >>>>>>>> Chromium M130. As a follow-up, support has been added to the >>>>>>>> MediaRecorder >>>>>>>> API in Chromium. The API now supports both MP4 and Matroska muxer types >>>>>>>> with different HEVC and H.264 mime type specifications. HEVC encoding >>>>>>>> is only >>>>>>>> supported if the user's device and operating system provide the >>>>>>>> necessary >>>>>>>> capabilities. >>>>>>>> >>>>>>>> Link to “Intent to Prototype” >>>>>>>> >>>>>>>> N/A, small incremental change and going directly for shipping. >>>>>>>> >>>>>>>> Risks >>>>>>>> >>>>>>>> Interoperability and Compatibility >>>>>>>> >>>>>>>> Gecko: Firefox 136 recently added support for decoding HEVC videos, >>>>>>>> see https://bugzilla.mozilla.org/show_bug.cgi?id=1924066. >>>>>>>> Standards position request link: >>>>>>>> https://github.com/mozilla/standards-positions/issues/1174 >>>>>>>> >>>>>>>> WebKit: No official signal but note that MacBooks/iPhones have >95% >>>>>>>> HW encode/decode support of H265 and that Safari has added support for >>>>>>>> this >>>>>>>> codec in adjacent web APIs such as WebRTC. Standards position request >>>>>>>> link: >>>>>>>> https://github.com/WebKit/standards-positions/issues/460 >>>>>>>> >>>>>>>> Web developers: Positive. Support implemented by ByteDance & Intel. >>>>>>>> >>>>>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)? >>>>>>>> >>>>>>>> The support is currently limited to Windows, macOS and Android >>>>>>>> hosts. ChromeOS and Linux support may follow in the future when/if >>>>>>>> their >>>>>>>> platform codec availability allows. >>>>>>>> >>>>>>>> Is this feature fully tested by web-platform-tests? >>>>>>>> >>>>>>>> Yes, the existing test suite >>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/mediacapture-record/> >>>>>>>> was extended with cases for the new codec strings. >>>>>>>> >>>>>>>> Tracking bug >>>>>>>> >>>>>>>> crbug.com/40276507 >>>>>>>> >>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>> >>>>>>>> https://chromestatus.com/feature/6375884229181440 >>>>>>>> >>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "blink-dev" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to blink-dev+unsubscr...@chromium.org. >>>>>>> To view this discussion visit >>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/edc31811-00da-4410-bfc7-b224bb825e4fn%40chromium.org >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/edc31811-00da-4410-bfc7-b224bb825e4fn%40chromium.org?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "blink-dev" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to blink-dev+unsubscr...@chromium.org. >>>>>>> To view this discussion visit >>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/cb683232-ef5e-47f4-93fa-3e8809a0d2b5%40chromium.org >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/cb683232-ef5e-47f4-93fa-3e8809a0d2b5%40chromium.org?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "blink-dev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to blink-dev+unsubscr...@chromium.org. >>>> To view this discussion visit >>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJjiFfG4zq4_mUknwsG%2BLetoM_RE1fiqFKVjkAyLJ4GpSUUkCw%40mail.gmail.com >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJjiFfG4zq4_mUknwsG%2BLetoM_RE1fiqFKVjkAyLJ4GpSUUkCw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "blink-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to blink-dev+unsubscr...@chromium.org. >>> >> To view this discussion visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYcNt017garh4Ps-LLJRmO1DbsHvt7yZT19Yj-feXifmDA%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYcNt017garh4Ps-LLJRmO1DbsHvt7yZT19Yj-feXifmDA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPUDrwcCrrZbWCJL03j3B_QG7u%2BdW2r79fOcd2ijEZAwXrMyqg%40mail.gmail.com.