LGTM3

On Monday, March 10, 2025 at 7:33:20 PM UTC+1 Chris Harrelson wrote:

> LGTM2
>
> On Mon, Mar 10, 2025 at 9:20 AM Philip Jägenstedt <foo...@chromium.org> 
> wrote:
>
>> The API owners discussed this again last week, considering it 
>> alongside H265 (HEVC) codec support in WebRTC. We invited Dale Curtis, 
>> Frank Galligan, and Henrik Boström to better understand the situation.
>>
>> The case for supporting HEVC is that it can result in a better user 
>> experience if supported in hardware, and Henrik provided some numbers on 
>> that in the WebRTC thread. From a platform perspective, one might also say 
>> that web apps are at a disadvantage to native apps if they can't use the 
>> same device capabilities.
>>
>> It remains the case that we prefer royalty-free (RF) codecs and don't 
>> want to disincentivize their adoption/use. AV1 has already been supported 
>> for a long time and is in wide use, so the risk in this case seems small. 
>> An important point is that web developers cannot depend on HEVC support 
>> exclusively, given the support numbers that Henrik shared.
>>
>> To avoid setting a precedent for future non-RF codecs, approval for HEVC 
>> in the remaining contexts comes with some caveats:
>>
>>    - The approval is only for exposing OS-provided HEVC support, not for 
>>    other OS-provided codecs, and not for browser-provided HEVC.
>>    - That there is a well established alternative in AV1 is important.
>>    - We're open to mitigations like Finch-disabling support for a 
>>    percentage of users to ensure that HEVC support cannot be taken for 
>> granted.
>>    
>> LGTM1 with those caveats.
>>
>> On Wed, Mar 5, 2025 at 6:50 PM Henrik Boström <h...@google.com> wrote:
>>
>>> 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/CAARdPYcX26Vuu5_MuRGJuqk3TWUo6RVQCvP_pGPAJp_UBdn5MA%40mail.gmail.com
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYcX26Vuu5_MuRGJuqk3TWUo6RVQCvP_pGPAJp_UBdn5MA%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/96199164-90b4-42ef-99ef-2154d5e082e4n%40chromium.org.

Reply via email to