13:55:07 RRSAgent has joined #me 13:55:07 logging to https://www.w3.org/2020/06/02-me-irc 13:55:13 Zakim has joined #me 13:55:26 takio has joined #me 13:57:18 kazho has joined #me 13:59:43 RobSmith has joined #me 13:59:47 kaz has joined #me 14:01:30 present+ Francois_Daoust 14:01:32 scribe: tidoust 14:01:47 present+ Kaz_Ashimura, Andreas_Tai, Barbara_Hochgesang, Chris_Needham, Francois_Daoust, Garret_Snger, Huaqi, John_Riviello 14:01:54 Garrett_Singer has joined #me 14:01:55 Agenda: https://lists.w3.org/Archives/Public/public-web-and-tv/2020May/0027.html 14:01:55 JohnRiv has joined #me 14:01:58 Larry_Zhao has joined #me 14:02:06 SteveBecker has joined #ME 14:02:20 present+ Kazuhiro_Hoya, Larry_Zhao, Pierre, 14:02:24 Meeting: Media & Entertainment IG call 14:02:30 RRSagent, makes logs public 14:02:30 I'm logging. I don't understand 'makes logs public', tidoust. Try /msg RRSAgent help 14:02:31 Igarashi has joined #me 14:02:34 RRSagent, make logs public 14:02:38 Yajun_Chen has joined #me 14:02:47 present+ Rob_Smith, Steve_Becker, Takio_Yamaoka, Will_Law, Fuqiao_Xue 14:02:47 pal has joined #me 14:03:05 BarbH has joined #ME 14:03:10 present+ Yajun_Chen, Yash_Khandelwal 14:03:30 nigel has joined #me 14:03:35 Topic: Agenda 14:03:46 Larry_Zhao_ has joined #me 14:03:46 cpn: Main topic is Client-side video editing proposal. 14:03:56 atai has joined #me 14:04:02 i/Main/scribenick: tidoust/ 14:04:17 present+ Tatsuya_Igarashi 14:04:30 Present+ Nigel_Megitt_BBC 14:04:30 ... Most of the call today will be about that. We can leave some time in the end for general status update on topics of interest: media integration guidelines, bullet chatting. 14:04:38 ... Also, TPAC plans if time allows. 14:04:50 Topic: Client-side video editing (MediaBlob) 14:05:12 cpn: Welcome folks from Microsoft who are behind the proposal 14:05:35 Larry_Zhao__ has joined #me 14:05:39 Agenda: https://lists.w3.org/Archives/Public/public-web-and-tv/2020May/0027.html 14:05:51 -> https://github.com/WICG/video-editing/blob/master/readme.md Client-side video editing explainer 14:06:13 -> https://github.com/w3ctag/design-reviews/issues/514 TAG review on Client-side video editing 14:06:19 present+ Gary_Katsevman 14:06:19 present+ Gary_Katsevman 14:06:29 Johnsim has joined #me 14:06:46 Yash: SDE at Microsoft. Steve Becker is also here. 14:07:04 rrsagent, draft minutes 14:07:04 I have made the request to generate https://www.w3.org/2020/06/02-me-minutes.html kaz 14:07:14 ... We'll go through current issues, the solution, a case study, and relationship with WebCodecs. 14:07:50 ... JS libraries are not able to take advantage of optimizations. 14:08:24 ... Using MediaRecorder is another path. To get 15mn of video, you need 15mn of recording, which is problematic. 14:08:45 ... With cloud-based processing, process affects the bandwidth since video needs to be sent back and forth. 14:09:01 ... There could be a queue delay too, for instance as happens in Youtube. 14:09:13 ... We are proposing an API called MediaBlob. 14:09:34 ... Simply pass a blob to the constructor who will detect the media stream settings. 14:09:40 present+ Estella_Oncins 14:09:44 ... "duration" gives the duration. 14:10:53 ... We're also propositing editing ooperations separately, such as trim, concat (list of MediaBlob to one MediaBlob), split (one > two MediaBlob), finalize 14:11:03 ... [showing code example] 14:11:21 s/Huaqi/Huaqi_Shan 14:11:44 ... Creating a MediaBlob and operation, which we can trim, concat, and finalize to run the actual editing operation. 14:12:07 ... The whole thing takes 728ms, in the browser. 14:12:20 ... The API is easy to use with MediaRecorder the File API. 14:12:43 ... No need to have specific knowledge about media concepts, codec licensing issues, etc. 14:13:04 present+ Harneet_Sidhana 14:13:19 ... Flipgrid is owned Microsoft company. 14:13:29 present+ John_Simmons 14:13:46 ... Flipgrid use of MediaBlob allowed them to multiply video editing capacities by 40. 14:14:14 Igarashi has joined #me 14:14:16 Larry_Zhao has joined #me 14:14:20 ... WebCodecs is a powerful API that provides support for live gaming, RTC and others. It provides transcoding. But no support for demux operations. 14:14:36 present+ Mounir_Lamouri 14:15:00 ... For instance, with WebCodecs, you may need an external demuxer. 14:15:18 ... And then WebCodecs and an external muxer in the end. 14:15:45 ... With MediaBlob, for transcoding, trimming and so on, we don't need any external demuxer/muxer. 14:16:01 ... MediaBloc exists on the Edge browser, and is under Original Trials. 14:16:03 present+ Paul_Adenot 14:16:28 s/MediaBloc/MediaBlob 14:16:38 present+ Pierre-Anthony_Lemieux 14:16:38 Igarashi has joined #me 14:16:51 q+ 14:17:02 Questions - Impact on AV1 versus V9? 14:17:05 cpn: In this group, we've been aware of this work for some time. The trigger for the invitation is you starting the TAG review last week. 14:17:12 q? 14:17:31 Questions - Other browser beyond Chromium? 14:17:31 ... I'd like to invite questions, and then we could talk about professional use cases that the IG is currently exploring. 14:17:43 q+ will 14:17:46 ack will 14:18:04 Will: On MediaBlobOperation, why is that abstraction necessary? 14:18:52 Yash: We wanted to align with things done in WebGL. Another reason was batching, but maybe not necessary. 14:18:55 Question - Have you reviewed in the Media WG and WebGPU CG? 14:19:08 Will: OK, I would argue that the coupling does not look necessary. 14:19:34 ... Also, finalize can be very heavy. It may do transcoding, which may take time. Why not expose that more explicitly? 14:19:42 Yash: That's good feedback. 14:19:59 Will: What sort of containers do you support? I would hope CMAF-based. 14:20:00 q? 14:20:17 Yash: Right now, HEIF MP4, [missed] 14:20:30 s/[missed]/WebM/ 14:21:02 Igarashi: About use cases, can this be applied to file uploading cases? How to create a MediaBlob in these cases? 14:22:15 Yash: I don't have an example right here, but can update the explainer to clarify this situation 14:22:51 Igarashi: This MediaBlobOperation may depend on the media type. Are there some media capabilities detection that may be needed to know whether an operation is supported? 14:23:19 Yash: That is good feedback. If Mime sniffing does not work, the creation operation will fail. 14:23:53 Igarashi: The "finalize" operation may take time. In some cases, it may be useful to reduce the bitrate. Would translating be supported on top of transcoding? 14:24:12 Yash: We did think about it. We're still in the process of deciding whether it would be useful or not. 14:24:37 ... We're looking for feedback on whether that's useful to expose this. 14:24:39 q? 14:24:43 ack iga 14:24:44 q? 14:24:47 q+ 14:25:03 ack kaz 14:25:44 kaz: Possible additional APIs for "create" and "delete" for MediaBlob, and possibly "send" 14:26:13 Yash: Basically, since we're inheriting the Blob API, all of these should be easy for us. 14:27:01 Igarashi: I think it's possible to use trim and concatenate to cut some portion of media. 14:27:16 q+ 14:27:26 kaz: My question was more about the object itself, not chunks within the media stream. 14:27:48 Igarashi: split, concat enables any kind of video editing. 14:28:23 Yash: Why do you think we should have a "delete" operation? trim and split seem to be the right answers there. Do you think that "delete" would be useful? 14:28:34 q+ 14:28:44 Igarashi: It depends on performances. If a "delete" operation is much more efficient, then it should be considered. 14:28:48 s/stream/stream. so Yash's clarification on inheriting the Blob API is OK by me./ 14:28:59 ack nigel 14:29:02 q? 14:29:15 q+ 14:29:36 nigel: A quick reflexion on the conversation. concat takes in a sequence of MediaBlob, rather than the result of MediaBlobOperations. 14:29:39 s/"delete" operation?/"delete" operation for part of the media blob in addition to the proposed "trim" and "split"?/ 14:30:16 Igarashi has joined #me 14:30:22 ... It seems you're partly in the world of MediaBlob and partly in the world of MediaBlobOperation. 14:30:50 Yash: The editing only happens when "finalize" gets called. 14:31:29 nigel: So if I want to concat the result of a trim, then I need to call "finalize" to individual MediaBlobs? 14:32:06 ... If the MediaBlob you need to pass to concat is the result of a split, it seems strange that you can't prepare all operations in advance. 14:32:12 Yash: I see your point. 14:32:24 add me to question queue 14:32:41 q? 14:32:54 nigel: long long time is a number of milliseconds. Have you thought about rounding issues that you might get with certain frame rates? It seems easy to have a frame rounding error. 14:33:13 ... 29.99ms frame rate is often used. 14:33:26 ... I'm just concerned that there may be rounding errors. 14:33:32 s/29.99/29.997 14:33:42 Yash: We haven't thought about that, but that's something we'll look into. 14:33:47 ack pal 14:33:57 q+ 14:34:08 pal: Wanted to echo Nigel's two points. Instead of a sequence of operations on blobs, have you considered a playlist approach? 14:34:17 q+ 14:34:42 ... The idea with the playlist model is that it's easier to pass around and to include multiple tracks instead of just one big track which is a multiplex of mulitple ones. 14:34:51 +1 to the playlist idea, also the playlist itself might be a usefully serialisable thing 14:35:05 ... I would also really use rationale numbers for time. 14:35:26 Yash: Thanks, we already have someone who filed an issue around that, we'll look into it. 14:35:35 present+ Ali_C_Begen 14:35:49 q? 14:36:30 nigel: The playlist itself is something that could be easily serialized/deserialized as well. Imagine that you're doing an editing session and wants to apply it to other media files. 14:36:56 -> https://github.com/WICG/video-editing/issues/13 Why does it not make sense just to create playlist? #13 14:37:02 cpn: Presumably, we can raise issues against the GitHub repo to provide feedback. 14:38:19 Johnsim: For media containers, HEIF was scribed (probably incorrectly, bad scribe!). Are image formats supported? 14:38:30 Yash: We're not supporting any image format for now. 14:38:39 Johnsim: So that was a mistake, ok. 14:39:18 BarbH: Besides Chromium, is this something that is also being socialized with other browser vendors, e.g. Apple? 14:39:37 Yash: We have reached out to Apple, not yet with Firefox. 14:39:40 q? 14:39:46 ack Johnsim 14:40:09 BarbH: Have you gone to the Media WG? The reason I'm suggesting it is that Apple actively participates there, and could give feedback there. 14:40:30 w? 14:40:33 s/w?// 14:40:34 q? 14:40:34 xfq has joined #me 14:40:37 ack cpn 14:41:02 cpn: For eventual standardization, after incubation, that would probably be the appropriate place to take this. I reached out to Apple for today. Looking at early proposals is what the IG does, so that's the right place to get feedback! 14:41:54 BarbH: Have you also reached out to the tools vendors that are doing video editing today? Adobe is very active in the W3C and they have video editing tools for instance. 14:42:06 q+ 14:42:14 ... They're not the only ones. 14:42:24 rrsagent, draft minutes 14:42:24 I have made the request to generate https://www.w3.org/2020/06/02-me-minutes.html xfq 14:42:43 Yash: We have not reached out to video editing tools, but this is something that we will start looking into. Engaging with other browser vendors as well. 14:43:11 pal: Part of what we're doing today is bringing awareness about this proposal to a wider media community. 14:43:34 cpn: Right and Media Production is one topic that the IG is currently exploring. 14:43:49 ... Connections with Adobe would be good. 14:43:58 BarbH: I'll see what I can do. 14:44:04 q? 14:44:07 ack takio 14:44:18 takio: I filed issue #13 last night. I'd like to confirm that issue. 14:44:25 https://github.com/WICG/video-editing/issues/13 14:45:21 ... Quick question: Sometimes, operations need transcoding. Sometimes, they don't, right? 14:45:45 Yash: Right, for trim, we will do possibly partial transcoding to re-create an I-Frame for instance. 14:46:16 takio: The user cannot distinguish whether transcoding happens or not, this is perhaps problematic. 14:46:30 asynchronous api using promis should be considered 14:46:37 Yash: Thank you, I think we got feedback some feedback here on "finalize". 14:47:09 ... When transcoding takes place, things may take place, we'll add some abort handler. 14:47:13 q? 14:47:15 cpn: Progress events would be nice too. 14:47:18 ack kaz 14:48:02 the need to transcode depends on the input formats as well as the output formats: concat([type 1 blob, type 2 blob]) must transcode at least one. What format do you get at the output? 14:48:06 kaz: TV broadcasters might have some potential opinion from their viewpoint. They may be using hardware-based editors which might have powerful capabilities. They may have opinions on this software-based approach. 14:48:31 Yajun_Chen has joined #me 14:49:08 proxy editing would be useful for professional editing 14:49:26 cpn: Right, typically with cloud-based edition, we'll send time points on which to run operations on the server, with the client seeing a "proxy" representation. 14:49:34 q+ 14:49:44 ... I see the main use case being user generated content (Youtube et al.). 14:49:50 mediaBlob oiled be useful for proxy editing 14:50:15 pal: In terms of editing, there's surprisingly few differences between professional and "casual" editing: codecs perhaps, and some special effects. 14:50:16 s/oiled/editing/ 14:50:45 i/mediaBlob/kaz: yeah, potential gap between "professional use" and "customer use", etc./ 14:50:52 ... In terms of playlist, there are a number. One is OTIO, originally from Pixar but now open-source. 14:51:09 I'm prefer playlist. If do so, we can chose client side or server side transcoding. 14:51:14 ... All of these playlist models look different, but they're all the same at the end of the day. 14:51:34 ... Main differences are support for transitions (for audio and video). 14:51:45 s/I'm prefer/I prefer/ 14:51:54 ... Other than that, they're all the same. That's also why I'm encouraging exploring a playlist approach. 14:51:56 thanks kaz. 14:52:01 s/can chose/can choose/ 14:52:24 s/thanks kaz// 14:52:59 cpn: Clearly, there's a lot of interest in this API and also in WebCodecs. If people are interested, maybe we can ask some of the editors behind WebCodecs to have a closer look at the API to see where they are and how it maps to some of the use cases that we have. 14:53:21 ... It seems we have some useful feedback to provide. 14:53:37 pal: What are your next steps? 14:53:50 ... Where would you want the work to happen? 14:54:25 cpn: Are you looking for more input from media companies? 14:55:21 Yash: Immediate next step is figuring out the story with WebCodecs. Google's perspective seems that MediaBlob only provides demuxing/muxing, with the rest being covered by WebCodecs. 14:55:51 Even if editing into same codec, it will need to be re-encode if GOP is too long... 14:55:59 cpn: Interesting, lots of open questions. Here, we're happy to host these kinds of conversations. My suggestion would be that we continue this discussion certainly among media companies. You're very welcome to be part of it. 14:56:25 pal: Yash, would you like us to try to setup a meeting with the right folks? 14:56:42 Yash: I think that would be good. 14:56:44 q+ 14:57:01 Harneet: I think we should start by evaluating the classes of scenarios that we're trying to enable. 14:57:09 q- 14:57:25 ... I don't think that the goal is to replicate everything that Adobe can do in editing tools, for instance. 14:57:34 ... It's more to enable common basic needs. 14:58:09 proxy editing should be added to the use cases of media blob 14:58:13 ... As a next step, we need to evaluate the pros and cons of MediaBlob vs. WebCodecs. 14:58:39 ... I think there is room for a simple API that provides basic video editing capabilities on the Web. 14:59:07 ... Is there interest in this level of media editing? Or is interest more on high-end video editing capabilities? 14:59:46 ... Is there level of interest from the industry on concat, trim, split? 14:59:56 q+ 15:00:07 q- later 15:00:12 ... We don't envision MediaBlob to be used in professional media editing, too complex for the API. 15:00:17 ack pal 15:00:48 pal: I'd like to dispel that myth. I believe they can be supported with very minimal changes. The challenge in front of us is can we go a little beyond to cover much broader use cases? 15:00:50 +1 15:01:09 Harneet: We'd love to hear about that. 15:01:39 ... We'd like not to require deep media knowledge to be able to use the API. 15:01:52 pal: But that's a good requirement also for professional applications. 15:02:18 proxy editing does not require professional codes 15:02:38 Harneet: Do you have a discussion area? We'd love to get all the feedback through issues on the GitHub repo. 15:02:50 ... If you can file issues on this repo, that would be great. 15:03:00 cpn: Very happy to do that. 15:03:24 [Side discussion on sharing slides] 15:03:25 q? 15:04:23 ack k 15:04:23 kaz: We have many stakeholders from media industries, which can help clarify use cases, requirements and gaps. From time to time, we can revisit this discussion. 15:04:39 Topic: Media Integration guidelines 15:05:17 cpn: We're out of time, but note we started some work on guidelines for integration of media APIs on devices with limited hardware capabilities. 15:06:05 JohnRiv: I migrated issues from the original CTA WAVE discussions. I haven't integrated comments from Dan yet. 15:06:29 cpn: OK, so this is a call for participation to get involved in this work! 15:07:04 Topic: Bullet Chatting 15:07:21 Huaqi: The CG completed the use cases and gap analysis. 15:07:38 ... We discussed two rendering ways. 15:07:57 ... CSS way seems to be preferred by vendors, so we're exploring that more thoroughly. 15:08:23 cpn: Thank you. 15:08:48 RRSagent, draft minutes v2 15:08:48 I have made the request to generate https://www.w3.org/2020/06/02-me-minutes.html tidoust 15:09:38 xfq has joined #me 15:09:50 RRSAgent, make minutes 15:09:50 I have made the request to generate https://www.w3.org/2020/06/02-me-minutes.html xfq 15:11:17 RRSAgent, make minutes v2 15:11:17 I have made the request to generate https://www.w3.org/2020/06/02-me-minutes.html xfq 15:12:07 FYI, here is the Media Integration Guidelines repo: https://github.com/w3c/me-media-integration-guidelines 15:14:25 xfq has joined #me 15:38:22 atai has left #me 15:41:12 Chair: Chris, Pierre, Igarashi 15:41:19 rrsagent, make minutes v2 15:41:19 I have made the request to generate https://www.w3.org/2020/06/02-me-minutes.html cpn 16:03:53 tidoust_ has joined #me 17:31:00 Zakim has left #me