For reference, I had some hardware availability numbers over in the I2S 
thread for H265 in WebRTC 
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/dc0e11bc-5ca2-47f8-b01b-0deedb3a1038n%40chromium.org>
.

On Tuesday, March 4, 2025 at 3:12:33 PM UTC+1 朱思达 wrote:

> Given your example, it seems like `video/mp4;codecs="hev1.1.6.L120.90"` is 
> supported by Chrome but not Safari, while the opposite is true for 
> `video/mp4;codecs="hvc1"`.
>
> AFAIK, Safari doesn't support HEVC MediaRecorder encoding. If you are 
> talking about decoding, for decoding, safari supports both  
> `video/mp4;codecs="hvc1"` and  `video/mp4;codecs="hvc1.1.6.L120.90"` 
> mimetypes, but technically, the "full" mimetypes is an ISO standard (Please 
> refer to: ISO/IEC 14496-15:2019 - Annex E), and `video/mp4;codecs="hvc1"` 
> is not incorrect.
>
> For MediaRecorder.isTypeSupported(), will we have the same situation? Are 
> these strings clearly defined by specs and tested in WPT?
>
> They are defined in 
> https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/mediacapture-record/MediaRecorder-canvas-media-source.https.html;l=16
>  and 
> ISO/IEC 14496-15:2019 - Annex E.
>
> Best regards,
> Sida
> From: "Philip Jägenstedt"<foo...@chromium.org>
> Date: Tue, Mar 4, 2025, 17:18
> Subject: Re: [External] Re: [blink-dev] Re: Intent to Ship: H26x Codec 
> support updates for MediaRecorder
> To: "朱思达"<zhu...@bytedance.com>
> Cc: "Markus Handell"<hand...@google.com>, "Dale Curtis"<
> dalec...@chromium.org>, "Ashley Gullen"<ash...@scirra.com>, "Mike Taylor"<
> mike...@chromium.org>, "blink-dev"<blin...@chromium.org>
> Thank you Sida for that breakdown, it's good to know we're not overlooking 
> any encoding or decoding surface.
>
> The most important question here is the one of royalty-free codecs vs 
> non-RF codecs, and the API owners will discuss this again alongside the 
> WebRTC intent.
>
> Poking a bit at the details, however, is it really the case that even when 
> Chrome and Safari support playing the same file, there's no codecs strings 
> that they both claim support for? Given your example, it seems 
> like `video/mp4;codecs="hev1.1.6.L120.90"` is supported by Chrome but not 
> Safari, while the opposite is true for `video/mp4;codecs="hvc1"`.
>
> For MediaRecorder.isTypeSupported(), will we have the same situation? Are 
> these strings clearly defined by specs and tested in WPT?
>
> Best regards,
> Philip
>
> On Thu, Feb 20, 2025 at 4:33 AM 朱思达 <zhu...@bytedance.com> wrote:
>
>> Is decoding HEVC in 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?
>>
>>
>> The correct codec string should be `video/mp4;codecs="hev1.1.6.L120.90"`, 
>> that's why 'video/mp4; codecs=hvc1' is rejected on Chromium. You could 
>> try the code below to test the support:
>>
>> ```javascript
>> const video = document.createElement('video'); 
>> if (video.canPlayType('video/mp4;codecs="hev1.1.6.L120.90"') === 
>> 'probably') { 
>>   console.log('HEVC is supported!');
>> }
>>
>> if (MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')) { 
>>   console.log('HEVC is supported!');
>> }
>> ```
>>
>> For video decoding context, there are four major API FYI: 
>>
>>    1. <video> + File.
>>    2. <video> + MSE.
>>    3. WebCodecs.
>>    4. WebRTC.
>>
>>
>> The HEVC support for the first three APIs has been enabled by default in 
>> M107 (On all platforms including: Windows, macOS, Linux, Android, 
>> ChromeOS). For the WebRTC API, there's activity happening to progress 
>> towards.
>>
>> Are there contexts where HEVC is not yet supported that aren't covered by 
>> this intent? WebRTC comes to mind, but are there any others?
>>
>>
>> For video encoding context, there are three major API FYI:
>>
>>    1. WebCodecs.
>>    2. MediaRecorder.
>>    3. WebRTC.
>>
>>
>> The HEVC support for the WebCodecs API has been enabled by default in 
>> M130 (On WIndows, macOS, Android), and for the WebRTC API, there's 
>> activity happening to progress towards.
>> From: "Markus Handell"<hand...@google.com>
>> Date: Thu, Feb 20, 2025, 03:40
>> Subject: [External] Re: [blink-dev] Re: Intent to Ship: H26x Codec 
>> support updates for MediaRecorder
>> To: "Philip Jägenstedt"<foo...@chromium.org>
>> Cc: "Dale Curtis"<dalec...@chromium.org>, "Ashley Gullen"<
>> ash...@scirra.com>, "Mike Taylor"<mike...@chromium.org>, "blink-dev"<
>> blin...@chromium.org>, "朱思达"<zhu...@bytedance.com>
>> I'll need to defer definitive answers regarding <video> and MSE questions 
>> to Dale. But selecting video/mp4;codecs=hvc1.1.6.L186.B0,opus as format on 
>> https://webrtc.github.io/samples/src/content/getusermedia/record/ with 
>> MediaRecorderHEVCSupport enabled yields a video that plays back in the same 
>> window.
>>
>> > 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?
>>
>> Correct, WebRTC doesn't yet have support but there's activity happening 
>> to progress towards support though. What's the context of the question 
>> though, interoperability? Recorded content from MediaRecorder can't 
>> immediately be used with WebRTC connections.
>>
>> > Do we already support AV1 in every context where HEVC is supported or 
>> is planned?
>>
>> Both WebRTC and MediaRecorder have had AV1 support for a long time. I'll 
>> need to defer MSE & video support statements to Dale.
>>
>>
>> On Wed, Feb 19, 2025 at 6:02 PM Philip Jägenstedt <foo...@chromium.org> 
>> wrote:
>>
>>> 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 <
>>> blin...@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 <dalec...@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 <mike...@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>
>>>>>>>>
>>>>>>>> <http://crbug.com/40276507>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>
>>>>>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1924066. Standards 
>>>>>>>> position request link: 
>>>>>>>> <https://github.com/mozilla/standards-positions/issues/1174>
>>>>>>>> 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>
>>>>>>>> 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
>>>>>>>>
>>>>>>>> <http://crbug.com/40276507>crbug.com/40276507
>>>>>>>>
>>>>>>>> Link to entry on the Chrome Platform Status
>>>>>>>>
>>>>>>>> <https://chromestatus.com/feature/6375884229181440>
>>>>>>>> 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+...@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+...@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+...@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/81f2bc89-38e2-4699-a43f-fc7433915132n%40chromium.org.

Reply via email to